3,132 research outputs found
Migrating to Cloud-Native Architectures Using Microservices: An Experience Report
Migration to the cloud has been a popular topic in industry and academia in
recent years. Despite many benefits that the cloud presents, such as high
availability and scalability, most of the on-premise application architectures
are not ready to fully exploit the benefits of this environment, and adapting
them to this environment is a non-trivial task. Microservices have appeared
recently as novel architectural styles that are native to the cloud. These
cloud-native architectures can facilitate migrating on-premise architectures to
fully benefit from the cloud environments because non-functional attributes,
like scalability, are inherent in this style. The existing approaches on cloud
migration does not mostly consider cloud-native architectures as their
first-class citizens. As a result, the final product may not meet its primary
drivers for migration. In this paper, we intend to report our experience and
lessons learned in an ongoing project on migrating a monolithic on-premise
software architecture to microservices. We concluded that microservices is not
a one-fit-all solution as it introduces new complexities to the system, and
many factors, such as distribution complexities, should be considered before
adopting this style. However, if adopted in a context that needs high
flexibility in terms of scalability and availability, it can deliver its
promised benefits
An empirical study of architecting for continuous delivery and deployment
Recently, many software organizations have been adopting Continuous Delivery
and Continuous Deployment (CD) practices to develop and deliver quality
software more frequently and reliably. Whilst an increasing amount of the
literature covers different aspects of CD, little is known about the role of
software architecture in CD and how an application should be (re-) architected
to enable and support CD. We have conducted a mixed-methods empirical study
that collected data through in-depth, semi-structured interviews with 21
industrial practitioners from 19 organizations, and a survey of 91 professional
software practitioners. Based on a systematic and rigorous analysis of the
gathered qualitative and quantitative data, we present a conceptual framework
to support the process of (re-) architecting for CD. We provide evidence-based
insights about practicing CD within monolithic systems and characterize the
principle of "small and independent deployment units" as an alternative to the
monoliths. Our framework supplements the architecting process in a CD context
through introducing the quality attributes (e.g., resilience) that require more
attention and demonstrating the strategies (e.g., prioritizing operations
concerns) to design operations-friendly architectures. We discuss the key
insights (e.g., monoliths and CD are not intrinsically oxymoronic) gained from
our study and draw implications for research and practice.Comment: To appear in Empirical Software Engineerin
Software Sustainability in the Age of Everything as a Service
The need for acknowledging and managing sustainability as an essential quality of software systems has been steadily increasing over the past few years, in part as a reaction to the implications of ``software eating the world\u27\u27. Especially the widespread adoption of the Everything as a Service (*aaS) model of delivering software and (virtualized) hardware through cloud computing has put two sustainability dimensions upfront and center. On the one hand, services must be sustainable on a technical level by ensuring continuity of operations for both providers and consumers despite, or even better, while taking into account their evolution. On the other hand, the prosuming of services must also be financially sustainable for the involved stakeholders
ICT-based reforms in local government decision-making in the gram panchayats of Kerala
The beneficial impact of computerisation can be felt in all elements that contribute to decision-making in panchayats in the state of Kerala. However, even though computerisation is bringing about immense improvements compared to traditional administrative practices, but scope still remains for further improvement. Instead of the 'as it is' computerisation that is mostly carried out a process based approach is needed
Towards Supporting the Extended DevOps Approach through Multi-cloud Architectural Patterns for Design and Pre-deployment - A Tool Supported Approach
Recently the world of Cloud Computing is witnessing two major trends: Multi-cloud applications pushed by the increasing diversity of Cloud services leading to hybrid infrastructures and the DevOps paradigm, promising increased trust, faster software releases, and the ability to solve critical issues quickly (Steinborn, 2018). This paper presents a solution for merging and adapting both trends so that the benefits for software developers and operators are multiplied. The authors describe a tool-supported approach to extend the DevOps philosophy with the objective of supporting the design and pre-deployment of multi-cloud software applications. The paper begins with the presentation of the theoretical concepts, the proceeds with the description of the developed tools and the discussion of the validation performed with a sandbox application.The project leading to this paper has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 731533
Microservices Architecture Enables DevOps: an Experience Report on Migration to a Cloud-Native Architecture
This article reports on experiences and lessons learned during incremental migration and architectural refactoring of a commercial mobile back end as a service to microservices architecture. It explains how the researchers adopted DevOps and how this facilitated a smooth migration
- …