2. Helder Klemp
● Brazilian
● CMD Senior Devops Consultant
● AWS Fully Certified Professional
● + 15 years on Software Industry
● Focused on Cloud Native, DevOps, Continuous Delivery and Kubernetes
$ whoami
3. Agenda
● Cloud Native
● Basic Pipeline
● Pipeline as Code
● Dockerising Your Pipeline
● Branch Strategies
● The Slice model
● Kubernetes improving CICD
● Deployment Strategies
● Tips for CICD Projects
4. Cloud-native is an approach to build & run applications that can leverage the advantages of the
cloud computing model
Source: https://pivotal.io/cloud-native
7. Typical benefits of traditional software development
paradigms
● Version control
● Code review
● Branching strategies
● Immutable CI Server
Putting your pipeline in a code repository and having it
created and run automatically by your CI tool is much
preferred to having to manually navigate through a
confusing UI.
Pipeline as Code
11. Trunk Based (short lived feature branches)
GitFlow
No one-size-fits-all
Decide a Branch Strategy and leverage multi branch pipelines!!
Branch Strategies
12. Every feature branch deploys an independent app on dev environment
- Devs can work locally and on non-prod envs
- Dynamic DNS provisioning ( kubernetes external-dns + route53)
- Application dns naming:
- From master branch: app-name.yourdomain
- From feature branch: feature-name.app-name.yourdomain
- Same concepts can be applied for infrastructure
- Buckets
- ELBs
- IAM
- Cleanups for feature branches
Slice Model
17. Allow a fast feedback when a compromised commit occurs
Kubernetes Deployment + Probes
18.
19.
20. ● Cloud native systems are complex and constantly evolving, and so testing in
pre-production typically cannot provide complete validation of functionality and
interactions with what is currently running in production
● initially routing only a small fraction of production traffic against the new service
observing behaviour and other KPIs
● incrementally increasing the percentage of traffic this until the new service is taking all
of the traffic.
Canary Releases
23. Not only apps
Cloud Native Infrastructure
- Ansible
- Terraform
- Kubernetes configurations
- From commit to production :)
Pipelinefy Everything
24. Avoid premature optimisation
Avoid making decisions too early
Ingress x regular service load balance
Helm as package manager
Service Mesh
TLS services
Pipelines to the rescue!!!!
Final Tips for Cloud Native projects
25. Share knowledge
Run brown bags about CI/CD / Containers / Cloud Native
Empower the technical team
Open Source
Bring CICD to Ops
GitOps
Database Changes
Server Configuration
Final Tips for Cloud Native projects