166 research outputs found

    Adapting Microservices in the Cloud with FaaS

    Get PDF
    This project involves benchmarking, microservices and Function-as-a-service (FaaS) across the dimensions of performance and cost. In order to do a comparison this paper proposes a benchmark framework

    Decision criteria between microservice and monolithic architecture

    Get PDF
    Abstract. In the contemporary software market companies face a challenge of continuously developing and delivering their products quickly. To answer this challenge the correct software architecture must be chosen. The conservative approach is a monolithic architecture, where all the code base is in a single unit. This approach offers simplicity and rapid initial deployment but faces challenges when companies need to scale their software. A more novel approach is a microservice architecture, which was enabled by the growth of cloud infrastructure. This architecture offers higher scalability and autonomy but brings with it a higher level of complexity. In this study I conducted a literature review to examine both architectures to understand the advantages and disadvantages of both approaches. The intent was to get a clear understanding of the underlying criteria that companies need to consider when making an architectural related decision. The current literature revealed that the advantages and disadvantages of both architectures are quite well known, but there is ambiguity regarding the criteria that is outside of the functional requirements discovered during the design phase. This study offers a baseline to further study decision criteria regarding monolithic and microservice cloud-based applications. Further studies can be done to further examine the criteria on a more detailed and practical level

    Architecture for Analysis of Streaming Data

    Full text link
    While several attempts have been made to construct a scalable and flexible architecture for analysis of streaming data, no general model to tackle this task exists. Thus, our goal is to build a scalable and maintainable architecture for performing analytics on streaming data. To reach this goal, we introduce a 7-layered architecture consisting of microservices and publish-subscribe software. Our study shows that this architecture yields a good balance between scalability and maintainability due to high cohesion and low coupling of the solution, as well as asynchronous communication between the layers. This architecture can help practitioners to improve their analytic solutions. It is also of interest to academics, as it is a building block for a general architecture for processing streaming data

    Cloud Architecture Evaluation

    Get PDF
    Cloud computing has introduced numerous ways to build software systems in the cloud environment. The complexity of today’s system architectures require architecture evaluation in the designing phase of the system, in the implementation phase, and in the maintenance phase. There are many different architecture evaluation models. This thesis discusses three different evaluation models: architecture tradeoff analysis method, cost-benefit analysis method, and AWS Well-Architected framework. The AWS Well-Architected framework is deeply evaluated by performing an architectural evaluation for the case study software: Lixani 5. This thesis introduces and compares the opportunities for cloud architecture evaluation by literature review, case study, and interviews with experts. The thesis begins with introduction to cloud computing, cloud architecture models and architecture evaluation methods. An architecture evaluation for a case study software is then carried out. This thesis also contains interviews with experts, producing knowledge on how the system architecture is being evaluated in the field. The research methods used in the thesis are literature review, case study, and expert interviews. This thesis attempts to describe and assess the architecture evaluation models by using the research methods. In addition, this thesis introduces and discusses the case study software – Lixani 5 – and its architectural decisions. Based on research in the thesis it was noted that all three studied software architecture evaluation models are suitable options for reviewing software architecture. All models included positive and negative aspects and none of them was seen as superior compared to the others. Based on the interviews with experts it was noted that there are also multiple other efficient ways to evaluate the system architecture than the models discussed in the thesis. These ways included a technology audit template and a proof-of-concept culture

    Revitalizing Legacy Systems: Extracting Key Features for Software Transplantation

    Get PDF
    The creation of intelligent software depends on the ability to transfer software without any restrictions. In this article, a crucial stage in software engineering, the feature extraction for effective software transplantation, is discussed. As hardware, operating systems, or other factors change, it is commonly necessary to move software from one environment to another. It is vital to identify and extract the relevant software characteristics, which might be challenging given how complex software is, in order to carry out efficient software transplantation. On the other hand, the procedure to extract these attributes from the software might be time-consuming and need extensive understanding. To address this, we propose a transplantation strategy that prioritizes automation with the help of AWS. Our approach involves an agent running on the application server (on-premises). It performs the task of feature identification, extraction and deployment on AWS Cloud. Currently, our strategy is confined to Java and .NET applications

    Serverless computing

    Get PDF
    Serverless computing has emerged as a new mindset when it comes to cloud computing, promising efficient resource utilization, automatic scaling, and cost optimization for a wide range of applications. This thesis explores the adoption, performance, and cost considera tions of deploying applications that use intend to use serverless functions, one of the leading Serverless types. This thesis starts by providing an overview of Serverless computing, including its key advan tages and disadvantages and the rising adoption it has gained throughout the recent years. It presents a comprehensive comparison of various Serverless platforms and discusses the unique features offered by each. After this context phase, this thesis presents a design section composed by a migration guide that allows developers to transition from a traditional application to one that takes advan tage of serverless benefits. The guide outlines best practices and step-by-step instructions, facilitating the adoption of Serverless computing in real-world scenarios. Using the previously created guide, the next section carries out a practical use case: the mi gration of complex computational logic from a traditional Java application to AWS Lambda functions. Performance evaluations are conducted, considering metrics such as the execution duration and the amount of concurrent executions. These findings are then evaluated next to the costs associated with deploying and running Java applications in a virtual machine or with a Serverless architecture. While Serverless computing is quite promising, networking issues often arise in practice, affecting the overall efficiency of Serverless applications. This thesis addresses these chal lenges, identifying the installation and migration difficulties, how to overcome them, and what are the expected limitations, while proposing potential solutions. In summary, this thesis offers valuable insights into the adoption, performance, and cost opti mization of Serverless computing for Java applications. It provides a roadmap for developers looking to take advantage of the benefits of Serverless computing in their projects
    • …
    corecore