12 research outputs found

    An empirical study of architecting for continuous delivery and deployment

    Get PDF
    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

    Continuous Deployment Transitions at Scale

    Get PDF
    Predictable, rapid, and data-driven feature rollout; lightning-fast; and automated fix deployment are some of the benefits most large software organizations worldwide are striving for. In the process, they are transitioning toward the use of continuous deployment practices. Continuous deployment enables companies to make hundreds or thousands of software changes to live computing infrastructure every day while maintaining service to millions of customers. Such ultra-fast changes create a new reality in software development. Over the past four years, the Continuous Deployment Summit, hosted at Facebook, Netflix, Google, and Twitter has been held. Representatives from companies like Cisco, Facebook, Google, IBM, Microsoft, Netflix, and Twitter have shared the triumphs and struggles of their transition to continuous deployment practices—each year the companies press on, getting ever faster. In this chapter, the authors share the common strategies and practices used by continuous deployment pioneers and adopted by newcomers as they transition and use continuous deployment practices at scale

    An investigation of green software engineering

    Get PDF
    The urgency of sustainability concerns has intensified in recent years, sounding alarm bells over the planet's condition and prompting nearly every industry and practice to reassess their contributions to the climate crisis. Software engineering is not immune to this scrutiny. Software engineering practices significantly affect the environment and may not align with sustainability goals. Although sustainability is a relatively recent focus in software engineering, it has garnered increased attention, with numerous studies addressing various concerns and practices. Green software engineering aspires to develop dependable, enduring, and sustainable software that fulfills user requirements while minimizing environmental impacts. As this green paradigm gains traction in software engineering, practitioners must incorporate sustainability considerations into future software designs. However, despite the surge in green software engineering research, a universally accepted definition and framework remain elusive. This paper outlines green software engineering by explaining its principles, challenges, and methods for measuring and evaluating software effectiveness in this context

    Software development using DevOps tools and CD pipelines : a case study

    Get PDF
    The objective of this study is to get insight on the usage of automated build and deployment pipelines by software development teams at Avaintec Oy in the context of DevOps methodologies. Automated deployments are used widely in today’s software development and they allow for complex installation operations and testing to be done in a time-saving manner as less manual work is required. While there is a lot of research in the area of DevOps and automation pipelines, standardised ways of working and best practices are still vague in many ways. Studying the effects of DevOps and the use of the automation pipelines in the scope of the development team is important to establish practices and ways of working that can best support the work of the developers and also be cost effective for the companies. The research methods of this study are a literature review of the most recent literature on using automation in software development, and a case study of the process of taking DevOps methodologies and a Continuous Deployment pipeline into use at Avaintec Oy. The literature is analysed with the help of a theme matrix. The case study was conducted by interviewing selected members of development teams at Avaintec. The interviews were recorded and transcribed, and then analysed with a theme matrix. The output from the literature review is reflected to the output from the interviews in the case study section. The conclusions from this study indicate that development teams find DevOps and DevOps pipelines useful, despite the learning curve in the new tools and methodologies and the amount of initial setup work. The evolution of an automated build and deployment pipeline should be continuous and pipelines should be built incrementally, both of which were true for the studied case. The engagement of developers to the Operations side is a challenge present in both literature and the studied case, as developers at times are not that familiar with the pipeline. Apart from the pipeline, products should also be developed to be suitable for DevOps and automatic deployments, microservices seem to provide advantage in this

    Atualização do Processo de Entrega de Portais

    Get PDF
    The integration and deployment of an application is a regular activity in many organizations, creating value for a client and helping developers validate their work. This process, once completely manual, became automated nowadays, and it is possible to build, test and deploy an application without any human interaction. Although some organizations might still study the pros and cons, the truth is that Continuous Integration, Deployment and Delivery are a part of many organizations, helping quickly discover errors or deliver a correction or version without disrupting the work of its users. Grasshopper SI, an organization based in Maia with 17 years, did not have these processes implemented in any of its projects. To evaluate the impact of these practices in the organization, different approaches were studied and then applied the best approach to a single project, while searching for a way to reduce the downtime between updates. This dissertation describes the whole process performed, from research to evaluation, while also evaluating the benefits and disadvantages of applying these techniques.A integração e disponibilização de uma aplicação é um processo regular em várias organizações, ajudando as mesmas a criar valor para clientes e ajudando os desenvolvedores a validar o seu trabalho. Outrora, o processo era completamente manual, dependendo sempre de uma equipa dedicada ou dos próprios desenvolvedores; contudo, hoje em dia existem soluções de automatização, permitindo construir, testar e entregar uma aplicação sem nenhuma interação humana. Apesar de algumas organizações estudarem ainda as vantagens e desvantagens dos processos, a verdade é que os processos de Integração, Disponibilização e Entrega Contínua são uma parte de várias organizações, ajudando-as a descobrir rapidamente erros ou a entregar correções ou novas versões sem interromper o trabalho dos seus utilizadores. A Grasshopper SI, uma organização sediada na Maia com 17 anos, não possuía nenhum destes processos em nenhum dos seus projetos. De modo a avaliar o impacto destas práticas na organização, foram estudadas diferentes técnicas e abordagens, sendo que as melhores práticas foram aplicadas a um projeto existente na mesma. Em paralelo, foi estudada a possibilidade de reduzir o tempo de indisponibilidade durante uma atualização da aplicação. Esta dissertação descreve todo o processo realizado, desde pesquisa até avaliação, enquanto era realizada a avaliação das vantagens e desvantagens das técnicas aplicadas

    Examination of Adoption Theory on the DevOps Practice of Continuous Delivery

    Get PDF
    Many organizations have difficulty adopting advanced software development practices. Some software development project managers in large organizations are not aligned with the relationship between performance expectancy, effort expectancy, social influence, and facilitating conditions, as moderated by experience, with intent to adopt the DevOps practice of continuous delivery. The purpose of this study was to examine the statistical relationships between the independent variablesâperformance expectancy, effort expectancy, social influence, and facilitating conditions, as moderated by experienceâand the dependent variable of behavioral intent to adopt a continuous delivery system. Venkatesh, Morris, Davis, and Davis\u27s unified theory of acceptance and use of technology provided the theoretical framework. A stepwise multiple linear regression analysis was performed on survey data from 85 technical project managers affiliated with LinkedIn project management groups. The analysis reflected that only performance expectancy was significant in predicting intent to adopt continuous delivery. The findings may contribute to social change by providing project managers with the information they need to support organizational change, collaboration, and facilitation. The knowledge gained may additionally help organizations develop operational efficiency, competitive advantage, and generate higher value to their clients and society
    corecore