"We used to design infrastructures that support applications. We are now developing new applications that support the cloud platforms".
- Think of devops as a workflow of tools.
- Make sure the tools are loosely coupled so they can be changed easily.
Devops consists of 2 parts: infrastructure as code, and deployment pipelines.
INFRASTRUCTURE AS CODE CONSISTS OF 2 PARTS
- Orchestrating the Infrastructure (ie defining network, security etc) - Terraform is a good choice. Build it in layers.
- Configuring Individual Servers. are you going to do immutable or mutable? use packer? use docker containers?
use a config tool like Ansible, chef, puppet or salt?
- Both of these need to be stored in Git Repositories. I would start simply with a develop and master branch.
DEPLOYMENT PIPELINES
- Typically devs use a CI tool like Jenkins to create their pipelines.
- What is the deployable artifact? - zip file, jar file, or docker container.
- Where will the artifact be stored? - S3, Artifactory, Dockerhub.
- What is the version number strategy for the deployable artifact? - it should end in a build number that increments each build.
- The output of the build stage of pipeline is a deployable artifact.
- Other stages in the pipelines take the artifact through test, qa, uat and production.
- Use a git branch strategy and feature branches named after JIRA tickets.
- Use a git tagging strategy to drive the pipeline.
References
A Plea for Idempotence and Immutability
Code wise cloud foolish avoiding bad technology choices
0 comments:
Post a Comment