CADET: Debugging and Fixing Misconfigurations Using Counterfactual Reasoning

Total Page:16

File Type:pdf, Size:1020Kb

CADET: Debugging and Fixing Misconfigurations Using Counterfactual Reasoning CADET: Debugging and Fixing Misconfigurations using Counterfactual Reasoning Md Shahriar Iqbal∗ Rahul Krishna∗ Mohammad Ali Javidian University of South Carolina Columbia University Purdue University [email protected] [email protected] [email protected] Baishakhi Ray Pooyan Jamshidi Columbia University University of South Carolina [email protected] [email protected] Abstract Swap Mem. Swap Memory Modern computing platforms are highly-configurable with thou- sands of interacting configuration options. However, configuring GPU Resource these systems is challenging and misconfigurations can cause un- 512 Mb Latency 1Gb Memory Pressure expected non-functional faults. This paper proposes CADET (short 2Gb 3Gb for Causal Debugging Toolkit) that enables users to identify, ex- 4Gb Latency plain, and fix the root cause of non-functional faults early and in a GPU Growth GPU Growth principled fashion. CADET builds a causal model by observing the (a) (b) (c) performance of the system under different configurations. Then, it uses casual path extraction followed by counterfactual reason- Figure 1: Observational data (in Fig.1a) (incorrectly) shows ing over the causal model to (a) identify the root causes of non- that high GPU memory growth leads to high latency. The trend functional faults, (b) estimate the effects of various configuration is reversed when the data is segregated by swap memory. options on the performance objective(s), and (c) prescribe candi- date repairs to the relevant configuration options to fix the non- functional fault. We evaluated CADET on 5 highly-configurable systems by comparing with state-of-the-art configuration optimiza- heat dissipation [15, 71, 74, 84]. The sheer number of modalities tion and ML-based debugging approaches. The experimental results of software deployment is so large that exhaustively testing every indicate that CADET can find effective repairs for faults in multiple conceivable software and hardware configuration is impossible. non-functional properties with (at most) 13% more accuracy, 32% Consequently, identifying the root cause of non-functional faults is higher gain, and 13× speed-up than other ML-based performance notoriously difficult [35] with as much as 99% of them going unno- debugging methods. Compared to multi-objective optimization ap- ticed or unreported for extended durations [4]. This has tremendous proaches, CADET can find fixes (at most) 8× faster with comparable monetary repercussions costing companies worldwide an estimated or better performance gain. Our study of non-functional faults re- $5 trillion in 2018 and 2019 [34]. Further, developers on online fo- ported in NVIDIA’s forum shows that CADET can find 14% better rums are quite vocal in expressing their dissatisfaction. For example, repairs than the experts’ advice in less than 30 minutes. one developer on NVIDIA’s developer forum bemoans: “I am quite upset with CPU usage on TX2 [8],” while another complained, “I 1 Introduction don’t think it [the performance] is normal and it gets more and more Modern computing systems are highly configurable and can seam- frustrating [7].” Crucially, these exchanges provoke other unan- lessly be deployed on various hardware platforms and under differ- swered questions, such as, “what would be the effect of changing arXiv:2010.06061v2 [cs.SE] 8 Mar 2021 ent environmental settings. The configuration space is combinatori- another configuration ‘X’? [2].” Therefore, we seek methods that ally large with 100s if not 1000s of software and hardware configura- can identify, explain, and fix the root cause of non-functional faults tion options that interact non-trivially with one another [38, 49, 99]. early in a principled fashion. Unfortunately, configuring these systems to achieve specific goals Existing work. Much recent work has focused on configuration is challenging and error-prone. optimization, which are approaches aimed at finding a configura- Incorrect configuration (misconfiguration) elicits unexpected in- tion that optimizes a performance objective [29, 72, 86, 100, 105]. teractions between software and hardware resulting non-functional Finding the optimum configuration using push-button optimization faults, i.e., faults in non-functional system properties such as latency approaches is not applicable here because they do not give us any and energy consumption. These non-functional faults—unlike reg- information about the underlying interactions between the faulty ular software bugs—do not cause the system to crash or exhibit configuration options that caused the non-functional fault. This an obvious misbehavior [75, 82, 94]. Instead, misconfigured sys- information is sought after by developers seeking to address these tems remain operational while being compromised, resulting severe non-functional faults [82, 93]. performance degradation in latency, energy consumption, and/or Some previous work has used machine learning-based perfor- mance modeling approaches [36, 86, 87, 96]. These approaches are ∗Joint First Author adept at inferring the correlations between certain configuration Preprint, October, 2020, ARXIV Md Shahriar Iqbal, Rahul Krishna, Mohammad Ali Javidian, Baishakhi Ray, and Pooyan Jamshidi options and performance, however, they lack the mathematical lan- as (or better than) the best configuration discovered by the opti- guage to express how or why the configuration options affect perfor- mization techniques. Further, CADET can find effective repairs for mance. Without this, we risk drawing misleading conclusions. They faults in multiple performance objectives (i.e., latency and energy also require significant time to gather the training samples, which consumption) with accuracy and gain as high as 16% and 36%, re- grows exponentially with the number of configurations [56, 103]. spectively, than other ML-based performance debugging methods. Limitations of existing work. In Fig.1, we present an example Compared to multi-objective optimization approaches, CADET can to help illustrate the limitations with current techniques. Here, find repairs 5× faster while having similar performance gain. Fi- the observational data gathered so far indicates that GPU memory nally, with a case study, we demonstrate that CADET finds 14% growth is positively correlated with increased latency (as in Fig.1a). better repairs than the experts’ advice in 24 minutes. An ML-model built on this data will, with high confidence, predict Contributions. In summary, our contributions are as follows. that larger GPU memory growth leads to larger latency. However, • We propose CADET, a novel causal diagnostics, and fault mitiga- this is counter-intuitive because higher GPU memory growth should, tion tool that identifies the root causes of non-functional faults and in theory, reduce latency not increase it. When we segregate the recommends repairs to resolve non-functional faults. same data on swap memory (as in Fig.1b), we see that there is in- • Our empirical results, conducted on on 5 highly configurable deed a general trend downward for latency, i.e., within each group systems deployed on 3 architecturally different hardware, CADET of swap memory, as GPU memory growth increases the latency de- outperforms current state-of-the-art ML-based diagnostics and op- creases. We expect this because GPU memory growth controls how timization approaches in terms of efficacy (+16% accuracy and +36% much memory the GPU can “borrow” from the swap memory. De- gain) and speed (up to 13× faster). CADET was also adept at han- pending on resource pressure imposed by other host processes, a dling both single- and multi-objective performance faults. resource manager may arbitrarily re-allocate some swap memory; • We offer a manually curated performance fault dataset (called this means the GPU borrows proportionately more/less swap mem- Jetson Faults) and accompanying code required to reproduce our ory thereby affecting the latency correspondingly. This is reflected findings at https://git.io/JtFNG. by the data in Fig.1b. If the ML-based model were to consult the available data (from Fig.1a) unaware of such underlying factors, these models would be incorrect. With thousands of configurations, inferring such nuanced information from optimization or ML-based 2 Motivation approaches would require a considerable amount of measurements and extensive domain expertise which can be impractical, if not 2.1 A real-world example impossible, to possess in practice. This section illustrates the challenges both users and component Our approach. In this paper, we design, implement, and evalu- developers face when configuring and composing complex systems ate CADET (short for Causal Debugging Toolkit). CADET uses with a concrete issue report from the NVIDIA forum [6]. Here, a causal structural discovery algorithms [91] to construct a causal user notices some strange behavior when trying to transplant their model using observational data [78]. Then, it uses counterfactual code for real-time computation of depth information from stereo- reasoning over the causal model to (a) identify the root causes of cameras from NVIDIA Jetson TX1 to TX2. Since TX2 has twice the non-functional faults, (b) estimate the effects of various config- computational power, they expected at least 30% lower latency, but urable parameters on the non-functional properties, and (c) pre- observed 4 times higher latency. The user indicates working with a scribe candidate repairs to the relevant configuration options to fix reliable reference implementation
Recommended publications
  • Towards an Application Lifecycle Management Framework
    VTT CREATES BUSINESS FROM TECHNOLOGY Technology and market foresight • Strategic research • Product and service development • IPR and licensing Dissertation VTT PUBLICATIONS 759 • Assessments, testing, inspection, certification • Technology and innovation management • Technology partnership • • • VTT PUBLICATIONS 759 TOWARDS AN APPLICATION LIFECYCLE MANAGEMENT FRAMEWORK AN APPLICATION 759 TOWARDS • VTT PUBLICATIONS VTT PUBLICATIONS 742 Elina Mattila. Design and evaluation of a mobile phone diary for personal health management. 2010. 83 p. + app. 48 p. 743 Jaakko Paasi & Pasi Valkokari (eds.). Elucidating the fuzzy front end – Experiences from the INNORISK project. 2010. 161 p. 744 Marja Vilkman. Structural investigations and processing of electronically and protonically conducting polymers. 2010. 62 p. + app. 27 p. 745 Juuso Olkkonen. Finite difference time domain studies on sub-wavelength aperture structures. 2010. 76 p. + app. 52 p. 746 Jarkko Kuusijärvi. Interactive visualization of quality Variability at run-time. 2010. 111 p. 747 Eija Rintala. Effects of oxygen provision on the physiology of baker’s yeast Saccharomyces cerevisiae. 2010. 82 p. + app. 93 p. 748 Virve Vidgren. Maltose and maltotriose transport into ale and lager brewer’s yeast strains. 2010. 93 p. + app. 65 p. 749 Toni Ahonen, Markku Reunanen & Ville Ojanen (eds.). Customer value driven service business development. Outcomes from the Fleet Asset Management Project. 2010. 43 p. + app. 92 p. 750 Tiina Apilo. A model for corporate renewal. Requirements for innovation management. 2010. 167 p. + app. 16 p. 751 Sakari Stenudd. Using machine learning in the adaptive control of a smart environment. 2010. 75 p. 752 Evanthia Monogioudi. Enzymatic Cross-linking of ββ-casein and its impact on digestibility and allergenicity.
    [Show full text]
  • Devsecops in Reguated Industries Capgemini Template.Indd
    DEVSECOPS IN REGULATED INDUSTRIES ACCELERATING SOFTWARE RELIABILITY & COMPLIANCE TABLE OF CONTENTS 03... Executive Summary 04... Introduction 07... Impediments to DevSecOps Adoption 10... Playbook for DevSecOps Adoption 19... Conclusion EXECUTIVE SUMMARY DevOps practices enable rapid product engineering delivery and operations, particularly by agile teams using lean practices. There is an evolution from DevOps to DevSecOps, which is at the intersection of development, operations, and security. Security cannot be added after product development is complete and security testing cannot be done as a once-per-release cycle activity. Shifting security Left implies integration of security at all stages of the Software Development Life Cycle (SDLC). Adoption of DevSecOps practices enables faster, more reliable and more secure software. While DevSecOps emerged from Internet and software companies, it can benefit other industries, including regulated and high security environments. This whitepaper covers how incorporating DevSecOps in regulated Industries can accelerate software delivery, reducing the time from code change to production deployment or release while reducing security risks. This whitepaper defines a playbook for DevSecOps goals, addresses challenges, and discusses evolving workflows in DevSecOps, including cloud, agile, application modernization and digital transformation. Bi-directional requirement traceability, document generation and security tests should be part of the CI/CD pipeline. Regulated industries can securely move away
    [Show full text]
  • Enterprise Application Lifecycle Management Solutions Enterprise Application Lifecycle Management Solutions
    Enterprise Application Lifecycle Management Solutions Enterprise Application Lifecycle Management Solutions This extensive onsite knowledge gained from years of expe- Products and Solutions for rience combined with our trusted relationships with end- users, puts us in a unique position to self-instrument the Comprehensive Enterprise products crucially needed by our customers to successfully accomplish their Enterprise Application Lifecycle Manage- Application Lifecycle ment projects. Management With this in mind, we have developed Our Enterprise Application Lifecycle Ma- RaySuite. nagement Solutions include delivering RaySuite is a comprehensive set of products that automates various tasks within an Enterprise Application Lifecycle. consulting and software packaging ser- vices to enterprises undergoing an OS This automation ranges from the analysis of the existing application portfolio and license inventories via complex migration or implementing a software license management and software packaging, all the way deployment tool. We have successfully to comprehensive quality control and fi nally software deployment in production. These automated processes served over 600 enterprise customers are sustainable and can be replicated for every change and with excellent results. every patch. A central database and a common user interface found throughout all RaySuite products form a consistent solution and off er a strong contrast to existing patchwork solutions that are often found in enterprises, as a result of limited vision and the implementation of various suppliers. Al- though Raynet guarantees a consistent approach with the use of its entire product range, it is still possible to buy and implement the individual products of RaySuite autono- mously as well as integrate them with existing third-party or home-grown products.
    [Show full text]
  • Automatic Deployment of Distributed Software Systems: Definitions and State of the Art
    Open Archive TOULOUSE Archive Ouverte (OATAO) OATAO is an open access repository that collects the work of Toulouse researchers and makes it freely available over the web where possible. This is an author-deposited version published in : http://oatao.univ-toulouse.fr/ Eprints ID : 14816 To link to this article : DOI :10.1016/j.jss.2015.01.040 URL : http://dx.doi.org/10.1016/j.jss.2015.01.040 To cite this version : Arcangeli, Jean-Paul and Boujbel, Raja and Leriche, Sébastien Automatic Deployment of Distributed Software Systems: Definitions and State of the Art. (2015) Journal of Systems and Software, vol. 103. pp. 198-218. ISSN 0164-1212 Any correspondance concerning this service should be sent to the repository administrator: [email protected] Automatic deployment of distributed software systems: Definitions and state of the art a, a b Jean-Paul Arcangeli ∗, Raja Boujbel , Sébastien Leriche a Université de Toulouse, UPS, IRIT, 118 Route de Narbonne, F-31062 Toulouse, France b Université de Toulouse, ENAC, 7 Avenue Édouard Belin, F-31055 Toulouse, France a b s t r a c t Deployment of software systems is a complex post-production process that consists in making software available for use and then keeping it operational. It must deal with constraints concerning both the system and the target machine(s), in particular their distribution, heterogeneity and dynamics, and satisfy requirements from different stakeholders. In the context of mobility and openness, deployment must react to the instability of the network of machines (failures, connections, disconnections, variations in the quality of the resources, etc.).
    [Show full text]
  • Devops Point of View an Enterprise Architecture Perspective
    DevOps Point of View An Enterprise Architecture perspective Amsterdam, 2020 Management summary “It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.”1 Setting the scene Goal of this Point of View In the current world of IT and the development of This point of view aims to create awareness around the IT-related products or services, companies from transformation towards the DevOps way of working, to enterprise level to smaller sizes are starting to help gain understanding what DevOps is, why you need it use the DevOps processes and methods as a part and what is needed to implement DevOps. of their day-to-day organization process. The goal is to reduce the time involved in all the An Enterprise Architecture perspective software development phases, to achieve greater Even though it is DevOps from an Enterprise Architecture application stability and faster development service line perspective, this material has been gathered cycles. from our experiences with customers, combined with However not only on the technical side of the knowledge from subject matter experts and theory from organization is DevOps changing the playing within and outside Deloitte. field, also an organizational change that involves merging development and operations teams is Targeted audience required with an hint of cultural changes. And last but not least the skillset of all people It is specifically for the people within Deloitte that want to involved is changing. use this as an accelerator for conversations and proposals & to get in contact with the people who have performed these type of projects.
    [Show full text]
  • Code Debugging Tool to Help Teach Mainframe Programming Languages Claudio Gonçalves Bernardo Paulo Roberto Chineara Batuta Msc
    Code Debugging Tool to Help Teach Mainframe Programming Languages Claudio Gonçalves Bernardo Paulo Roberto Chineara Batuta MSc. Computer Engineer MBA Software Quality Universidade Paulista Centro Universitário Araraquara Brazilia – Brazil São Paulo - Brazil [email protected] [email protected] Abstract – The purpose of testing activity is to discover errors in important to check the quality of software at various stages of software and for this objective to be achieved many activities development, not only restricting the testing phase of the software. must be performed. There are several types of test and while An appropriate test is one that discovers the greatest possible some are generated and focused on functional verification of a number of faults in the software and when this software is designed component and incorporating components in the structure of the to run in an large environment, also known as Mainframe, becomes program, others are applied to point traceability requirements. an even greater difficulty, since this environment is complex and the There are systems tests designed to validate part of a software characteristics of each facility are different. Universities see this component, which is a part of software solution greater. Its difficulty as a major obstacle to the teaching of languages such as function is only to be a small part of a more complex reality. The Cobol, PL/I, Easytrieve, Assembler and others, who did not die and different types of tests are complementary and in most cases are will not die, as a single system mainframe can deliver thousands of applicable to all software developed. All aim to develop programs virtual Linux platforms with a small fraction the dollar cost, power with the fewest mistakes as possible, allowing the product to and space [20].
    [Show full text]
  • Radiant Info School Project Management Project Management
    Radiant info school Project Management Project Management Life Cycle Managing your digital media project is one of the most important and often overlooked aspects of the development process. You will find that effort you put into planning, scheduling, and organizing your project will pay off enormously. Here we'll outline some proven techniques for planning, scheduling, and completing your project. A project has five phases. Here's a brief summary of each: . Initiation Articulate your vision for the project, establish goals, assemble your team, and define expectations and the scope of your project. Develop a Business Case Undertake a Feasibility Study Establish the Project Charter It will help you to define the scope of your project. Writing the Project Charter is typically one of the most challenging steps in the Project Life Cycle, as it defines the parameters within which the project must be delivered. It sets out the project vision, objectives, scope and implementation, thereby giving the team clear boundaries within which the project must be delivered. Appoint the Project Team Set up the Project Office Perform Phase Review Radiant info school Project Management . Planning Refine the scope, identify specific tasks and activities to be completed, and develop a schedule and budget. Create a Project Plan Create a Resource Plan Create a Financial Plan Create a Quality Plan Create a Risk Plan Create an Acceptance Plan Create a Communications Plan Create a Procurement Plan Contract the Suppliers Define the Tender Process Issue a Statement of Work Issue a Request for Information Issue a Request for Proposal Create Supplier Contract Perform Phase Review execution Build Deliverables Monitor and Control Perform Time Management Perform Cost Management Perform Quality Management Perform Change Management This process helps you to manage all requests for change within your project.
    [Show full text]
  • Planning in Software Project Management
    PLANNING IN SOFTWARE PROJECT MANAGEMENT AN EMPIRICAL RESEARCH OF SOFTWARE COMPANIES IN VIETNAM Thesis presented to the Faculty of Economics and Social Sciences at the University of Fribourg (Switzerland) in fulfillment of the requirements for the degree of Doctor of Economics and Social Sciences by Quynh Mai NGUYEN from Vietnam Accepted by the Faculty of Economics and Social Sciences on May 30th, 2006 at the proposal of Professor Dr. Andreas Meier (first advisor) Professor Dr. Jacques Pasquier (second advisor) Professor Dr. Laurent Donzé (third advisor) Fribourg, Switzerland 2006 The Faculty of Economics and Soci al Sciences at the University of Fribourg neither approves nor disapproves the opinions expressed in a doctoral dissertati on. They are to be considered those of the author (decision of the Faculty Council of January 23rd, 1990). To my parents, and To Phuong and Trung, my children ACKNOWLEDGEMENT I would like to express my extreme gratitude to Prof. Dr. Andreas Meier for his guidance, encouragement and helpful supervision during the process of this thesis. I would like to thank Prof. Jacques Pasquier and Prof. Laurent Donzé for their review and comments. My special thanks also go to Dr. Fredric William Swierczek for his invaluable help, advices and suggestions for improvement. Without their help and advice this dissertation could not be completed. I would like to thank my friends, Dr. Bui Nguyen Hung, and Dr. Nguyen Dac Hoa, Mrs. Nguyen Thuy Quynh Loan for their assistance and helpful suggestions and contributions. I would like to thank the government of Switzerland and the Swiss – AIT – Vietnam Management Development Program (SAV) for giving me the scholarship for this PhD program.
    [Show full text]
  • Creating Integrated IBM Websphere Solutions Using Application Lifecycle Management
    Front cover Creating Integrated IBM WebSphere Solutions using Application Lifecycle Management Creating an end to end solution using the WebSphere portfolio Delivering effective application lifecycle management using CLM Increasing control and agility using BPM and ODM Emrah Barkana Antonella Bertoletti Stefano Bussaglia Ernest Calalang Sebastian Kapciak Leonardo Olivera Sergio Polastri Fabio Silva ibm.com/redbooks International Technical Support Organization Creating Integrated IBM WebSphere Solutions using Application Lifecycle Management December 2014 SG24-8243-00 Note: Before using this information and the product it supports, read the information in “Notices” on page vii. First Edition (December 2014) This edition applies to IBM Rational Collaborative Lifecycle Management V4.0.6, WebSphere Application Server V8.5.5, WebSphere Liberty Core 8.5.5, IBM Worklight V6.2, and DB2 V10.5.3. © Copyright International Business Machines Corporation 2014. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . vii Trademarks . viii IBM Redbooks promotions . ix Preface . xi Authors. xi Now you can become a published author, too! . xiv Comments welcome. xiv Stay connected to IBM Redbooks . .xv Chapter 1. Introduction. 13 1.1 Business integration problems . 14 1.2 The business scenario . 14 1.3 Application Lifecycle Management . 15 1.4 Using this book . 16 1.4.1 Goals and objectives. 17 1.4.2 How this book is organized . 17 Chapter 2. Solution overview. 19 2.1 The solution architecture. 20 2.2 Middleware products used for the solution . 20 2.2.1 Additional solution artifacts . 21 2.2.2 Integration of the components .
    [Show full text]
  • Software Deployment and Update Overview
    SSooffttwwaarree DDeeppllooyymmeenntt aanndd UUppddaattee User Guide Version R95 English February 4, 2021 Copyright Agreement The purchase and use of all Software and Services is subject to the Agreement as defined in Kaseya’s “Click-Accept” EULATOS as updated from time to time by Kaseya at http://www.kaseya.com/legal.aspx. If Customer does not agree with the Agreement, please do not install, use or purchase any Software and Services from Kaseya as continued use of the Software or Services indicates Customer’s acceptance of the Agreement.” ©2019 Kaseya. All rights reserved. | www.kaseya.com Contents i Software Deployment and Update Overview Contents Software Deployment and Update Overview ............................................................................................. i Software Deployment and Update Module Minimum Requirements ............................................. ii Getting Started .................................................................................................................................... iii Master Catalog and Local Software Catalog.................................................................................... iii Profiles, Assignment and Deployment .............................................................................................. v Scanning ............................................................................................................................................... v Deployment Options ..........................................................................................................................
    [Show full text]
  • Introduction to Devops on AWS
    Introduction to DevOps on AWS October 2020 Notices Customers are responsible for making their own independent assessment of the information in this document. This document: (a) is for informational purposes only, (b) represents current AWS product offerings and practices, which are subject to change without notice, and (c) does not create any commitments or assurances from AWS and its affiliates, suppliers or licensors. AWS products or services are provided “as is” without warranties, representations, or conditions of any kind, whether express or implied. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers. © 2020 Amazon Web Services, Inc. or its affiliates. All rights reserved. Contents Introduction .......................................................................................................................... 1 Continuous Integration ........................................................................................................ 2 AWS CodeCommit ........................................................................................................... 2 AWS CodeBuild ................................................................................................................ 3 AWS CodeArtifact ............................................................................................................ 3 Continuous Delivery ...........................................................................................................
    [Show full text]
  • Continuous Integration, Delivery and Deployment: a Systematic Review on Approaches, Tools, Challenges and Practices”, IEEE Access, 2017
    M. Shahin, M. Ali Babar, and L. Zhu, ―Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices”, IEEE Access, 2017. Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices Mojtaba Shahina, Muhammad Ali Babara, Liming Zhub a CREST – The Centre for Research on Engineering Software Technologies, The University of Adelaide, Australia b Data61, Commonwealth Scientific and Industrial Research Organisation, Sydney, NSW 2015, Australia [email protected], [email protected], [email protected] Abstract—Context: Continuous practices, i.e., continuous integration, delivery, and deployment, are the software I. INTRODUCTION development industry practices that enable organizations to With increasing competition in software market, frequently and reliably release new features and products. organizations pay significant attention and allocate resources With the increasing interest in and literature on continuous to develop and deliver high-quality software at much practices, it is important to systematically review and accelerated pace [1]. Continuous Integration (CI), Continuous synthesize the approaches, tools, challenges, and practices DElivery (CDE), and Continuous Deployment (CD), called reported for adopting and implementing continuous practices. continuous practices for this study, are some of the practices aimed at helping organisations to accelerate their Objective: This research aimed at systematically reviewing development and delivery of software features without the state of the art of continuous practices to classify compromising quality [2]. Whilst CI advocates integrating approaches and tools, identify challenges and practices in this work-in-progress multiple times per day, CDE and CD are regard, and identify the gaps for future research.
    [Show full text]