Advertisement

Abstract

Common approaches to implementing software delivery pipelines include hand-written scripts, domain-specific languages (DSLs), and the integration of specialized tools, each of which has been developed to automate one or more stages of these pipelines. However, each application is often treated as a proverbial snowflake – different from all other applications, even those within the same organization, or those using the same technology stack. Such pipelines are often technology-specific, making them time-consuming to change should the need arise. This paper describes SPaaS, an extensible DSL- and template-based pipeline generator, capable of producing software delivery pipelines for Jenkins. This paper examines how such generated pipelines can embody, facilitate, and enforce an organization’s technical and governance policies, while also enabling product teams to inject specialized activities during pipeline execution. A preliminary proof-of-concept called SPaaS, is described and the advantages, disadvantages, and some inherent technical challenges of the overall approach are discussed.

References

  1. 1.
    Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation. The Addison-Wesley Signature Series. Addison Wesley, Boston (2011)Google Scholar
  2. 2.
    Kim, G., Willis, J., Debois, P., Humble, J.: The DevOps Handbook. IT Revolution Press, Portland (2016)Google Scholar
  3. 3.
    CloudBees, Inc.: Jenkins and CloudBees (2018). https://www.cloudbees.com/jenkins/jenkins-cloudbees
  4. 4.
    IBM: Urbancode deploy - deployment automation, July 2018. https://developer.ibm.com/urbancode/products/urbancode-deploy/
  5. 5.
    Amazon Web Services: AWS developer tools, July 2018. https://aws.amazon.com/products/developer-tools/
  6. 6.
    Dockter, H.: Gradle, June 2012. http://gradle.org/
  7. 7.
    Parr, T.: ANTLR, July 2018. http://www.antlr.org/
  8. 8.
    The Apache Group: What is apache freemarker? July 2018. https://freemarker.apache.org/index.html
  9. 9.
    van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. SIGPLAN Not. 35, 26–36 (2000)CrossRefGoogle Scholar
  10. 10.
    Jones, C., Jia, X.: Using a domain specific language for lightweight model-driven development. In: Maciaszek, L.A., Filipe, J. (eds.) ENASE 2014. CCIS, vol. 551, pp. 46–62. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-27218-4_4CrossRefGoogle Scholar
  11. 11.
    Miravet, P., Marín, I., Ortín, F., Rionda, A.: DIMAG: a framework for automatic generation of mobile applications for multiple platforms. In: Proceedings of the 6th International Conference on Mobile Technology, Application & #38; Systems. Mobility 2009, pp. 23:1–23:8. ACM, New York (2009)Google Scholar
  12. 12.
    Alonso, J.: Centralise jenkins pipelines configuration using shared libraries, May 2017. https://dev.to/jalogut/centralise-jenkins-pipelines-configuration-using-shared-libraries
  13. 13.
    Amazon Web Services: AWS CloudFormation, October 2018. https://aws.amazon.com/cloudformation/
  14. 14.
    HashiCorp: Terraform, October 2018. https://www.terraform.io/
  15. 15.
    Chef: Chef, October 2018. https://www.chef.io/
  16. 16.
    Puppet: Puppet, October 2018. https://puppet.com/
  17. 17.
    Ansible: Ansible, October 2018. https://www.ansible.com/
  18. 18.
    Spinnaker: Spinnaker, October 2018. https://www.spinnaker.io/
  19. 19.
    Jones, C.A.: Software pipelines as a service. AWS Summit Chicago, August 2018Google Scholar
  20. 20.
    Jones, C.A.: Easing cloud migrations with software pipelines as a service. AWS Community Day Midwest, June 2018Google Scholar
  21. 21.
    Günalp, O.: Jenkins pipeline unit testing framework, July 2018. https://github.com/jenkinsci/JenkinsPipelineUnit
  22. 22.
    Sharpe, T.: RSpec test framework for your Puppet manifests (2017). http://rspec-puppet.com/
  23. 23.
    Chef: Kitchen (2017). https://docs.chef.io/kitchen.html
  24. 24.
    Baker, S., et al.: Behaviour driven development for ruby, July 2018. http://rspec.info/

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.School of Computing, DePaul UniversityChicagoUSA

Personalised recommendations