devops-course
devops-course copied to clipboard
Continuous deployment / delivery / pipelines
Wikipedia references:
- https://en.wikipedia.org/wiki/Continuous_deployment
- https://en.wikipedia.org/wiki/Continuous_delivery
- https://en.wikipedia.org/wiki/Deployment_environment
- https://en.wikipedia.org/wiki/Blue-green_deployment
Releasy, a tool that aims at supporting projects that use continuous delivery by generating and reporting their release provenance: http://arxiv.org/abs/1809.10265
https://www.terraform.io/ is an excellent tool for "infrastructure as code". We use it to develop, spin up, update, upgrade and kill pretty large kubernetes/docker deployments.
"One size does not fit all - an empirical study of containerized continuous deployment workflows." https://www.researchgate.net/publication/326696302_One_Size_Does_Not_Fit_All_An_Empirical_Study_of_Containerized_Continuous_Deployment_Workflows
Concepts: feature flags, dark launching.
Concept: canary service, canary release
Figure 3 of "Holistic Configuration Management at Facebook"
Figure 14: Latency in seconds between committing a config change and the new config reaching the production server
Advanced Concept: "delta execution" see "Efficient online validation with delta execution" (ASPLOS 2009)
Search-Based Scheduling of Experiments in Continuous Deployment https://www.ifi.uzh.ch/dam/jcr:1cc880b3-a5fd-40e9-a4aa-4c93123526c7/icsme18_preprint.pdf
Gitlab technology https://gitlab.com/help/topics/autodevops/index.md
Mozilla's CI/CD pipeline for building and publishing multiple whale containers as microservices within a mono repository. https://github.com/MozillaSecurity/orion
Dokku A docker-powered PaaS that helps you build and manage the lifecycle of applications https://github.com/dokku/dokku
Rainbow Deploys with Kubernetes http://brandon.dimcheff.com/2018/02/rainbow-deploys-with-kubernetes/
Reproducible build initiative at Debian https://wiki.debian.org/ReproducibleBuilds
Spinnaker is an open source, multi-cloud continuous delivery platform https://www.spinnaker.io/
Go continuous delivery https://www.gocd.org/
https://github.com/StackStorm/st2
Rollback and it’s importance in a DevOps world https://medium.com/@bharghavyerravalli/rollback-and-its-importance-in-a-devops-world-21d486738760
JFrog: Universal package repository, SecOps, CI/CD and software distribution all in one platform. https://jfrog.com/
Iter8
Release engineering platform for Kubernetes Iter8 automates SLO validation, A/B or A/B/n testing, and progressive rollouts with advanced traffic engineering.
https://iter8.tools/
- Simple rollout & rollback
- BlueGreen
- Dark launch with built-in load/metrics
- Dark launch with mirroring (shadowing)
- Canary with fixed-%-split
- Canary with progressive traffic shift
- Canary with user segmentation
- Canary with session affinity
The practice and future of release engineering: A roundtable with three release engineers https://resources.sei.cmu.edu/asset_files/Article/2015_101_001_442658.pdf
Infrastructure-as-code and tools such as Terraform and Ansible, are key technology for CD
Achieving traceability in large scale continuous integration and delivery deployment, usage and validation of the eiffel framework Work done at Ericsson
Automating Staged Rollout with Reinforcement Learning https://arxiv.org/pdf/2204.02189.pdf
Drone is a continuous delivery system built on container technology. https://github.com/harness/drone
An open source build platform designed for continuous delivery https://github.com/screwdriver-cd/screwdriver