DevOps’ Shift-Left in Practice: An Industrial Case of Application
DevOps aims at unifying software development and operations to improve products and deliver value to customers. However, many organizations adopt DevOps mainly from a traditional perspective, that is, going forward from development to operations. In this paper we present a case of study that illustrates how Carvajal Technology and Services, a software development organization, improved the design of a family of its software products by exploiting operations data. This case of application constitutes a first incursion of the organization into DevOps, exemplifying how the community and companies in industry can also go backwards from operations to development and design, thus realizing the DevOps shift-left concept. The main contributions of this paper are: (i) the analysis of the industrial DevOps application, for which the deployment automation mechanism is crucial to realize the shift-left concept effectively; and (ii) Amelia, the DSL we developed for deploying the different (re)designs to put into operation and gather feedback data rapidly. To evaluate the approach, the organization analyzed this incursion in both directions: from development to operations, on the benefits of deployment automation; and from operations back to development, by improving the throughput of the original design by a factor of five.
KeywordsDevOps Shift-left in DevOps Software deployment Deployment automation
This work was funded in part by the National Sciences and Engineering Research Council (NSERC) of Canada, IBM Canada Ltd. and IBM Centre for Advanced Studies (CAS), the University of Victoria, Universidad Icesi (Colombia), and Organización Carvajal SA (Colombia).
- 1.Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. Addison-Wesley (2011)Google Scholar
- 2.Sharma, S., Coyne, B.: DevOps for Dummies. 3rd Limited IBM edn. John Wiley & Sons (2017)Google Scholar
- 3.Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation, 1st edn. Addison-Wesley Professional (2010)Google Scholar
- 4.Humble, J., Molesky, J.: Why enterprises must adopt devops to enable continuous delivery. Cutter IT J. 24(8), 6–12 (2011)Google Scholar
- 5.Kim, G., Debois, P., Willis, J., Humble, J.: The DevOps Handbook: How to Create World-class Agility, Reliability, and Security in Technology Organizations. IT Revolution (2016)Google Scholar
- 6.OMG, Deployment: Configuration of component-based distributed applications specification–version 4.0. Object Management Group (2006)Google Scholar
- 7.Carzaniga, A., Fuggetta, A., Hall, R.S., Heimbigner, D., Van Der Hoek, A., Wolf, A.L.: A characterization framework for software deployment technologies. Technical report, DTIC Document (1998)Google Scholar
- 8.Hall, R.S., Heimbigner, D., Wolf, A.L.: A cooperative approach to support software deployment using the software dock. In: Proceedings of the 21st International Conference on Software Engineering, ICSE 1999, pp. 174–183. ACM (1999)Google Scholar
- 9.Dearle, A.: Software deployment, past, present and future. In: 2007 Future of Software Engineering, FOSE 2007, pp. 269–284. IEEE Computer Society (2007)Google Scholar
- 10.Willis, J.: Docker and the three ways of DevOps. Technical report, Docker Inc. (2017)Google Scholar
- 12.Hindman, B., et al.: Mesos: a platform for fine-grained resource sharing in the data center. In: NSDI, vol. 11, p. 22 (2011)Google Scholar
- 13.Seinturier, L., Merle, P., Rouvoy, R., Romero, D., Schiavoni, V., Stefani, J.B.: A component-based middleware platform for reconfigurable service-oriented architectures. Softw.: Pract. Exp. 42(5), 559–583 (2012)Google Scholar