Development operations is primarily used to automate operations around development. Once the code is committed, builds are generated, sanity testing done and deployed to staging. After QA certification then can be automatically promoted to production environment as well.
This automation takes into account automating with Continuous Integration (CI) pipeline:
- Build creation
- Build deployment
- automated smoke / sanity testing
- Code-quality validation, etc
After build is thoroughly tested, it can be promoted to production via Continuous Delivery (CD) pipeline. This involves, deployment of build in a highly available production environment with minimal downtime:
- Build creation on production branch
- deploy build to production environment with zero downtime
- automated sanity testing
CI / CD Tools
- Jenkins is one of the widely used tool for CI and using some plugins it is possible to use it for CD activities as well. Example: Whenever a developer commits code in github branch, a plugin in Jenkins monitoring the branch triggers build operation. After build is successful, it is deployment in staging environment using plugins for shell or Ansible scripts and if a pipeline exists for testing then configured test-cases are executed. Jenkins can be hosted on a local server in your environment.
- CircleCI is another such tool provided by Google. It is available as a service where on build creation, a VM or docker instance in launched in which build operations happen. Definition for entire operations is defined in .circleci.yaml file in your github repo.
- CD can be achieved via configuration management tools like Ansible. Jenkins has integration plugins for tools like Ansible Tower which provide integrated status information of build creation and build deployment.