SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Cloud Native Dünyada CI/CD
Mustafa AKIN SRE Architect @Atlassian, Opsgenie
Cloud Native Definition
“Cloud native technologies empower organizations to build and run scalable
applications in modern, dynamic environments such as public, private, and hybrid
clouds. Containers, service meshes, microservices, immutable infrastructure, and
declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and
observable. Combined with robust automation, they allow engineers to make
high-impact changes frequently and predictably with minimal toil.”
https://github.com/cncf/toc/blob/master/DEFINITION.md
Containers Become Key Enablers for Many
Abilities some consider to be unnatural
Subsecond start times
Lightweight on system resources
Ease of packaging
Ability to easily share container images
Running same container in production
Isolation from system and clean throwaway environments
Tools Are Means For an End Goal
Containers Docker
Workload Scheduler Kubernetes
Service Meshes Istio, Linkerd
Immutable Infrastructure Terraform, Cloudformation, Pulumi
Monitoring Prometheus, Tracing
Cloud Native is a bit about Standardization
Containers Packaging is easy, ability to run in isolation, subsecond boot times
Workload Scheduler Declare your workload and deployments can be automated
Service Meshes Ease S2S comms, free metrics, policy enforcement, security
Immutable Infrastructure Don’t do manual changes that are not version tracked
Monitoring Export metrics and traces to find problem
What actually is Cloud Native?
Cloud enables modern, and dynamic environments.
You can get a fleet of server provisioned in a time you need to fill a cup of coffee.
You can create a managed database, object storage, block storage to scale virtually
unlimited.
You can manage workflows, tests, deployment, monitoring, by using automations, not
clicking buttons manually.
Modern workflows allows you reduce the Lead Time for Changes and Mean Time to
Recovery to minutes, compared to hours or even days for traditional companies.
What actually is Cloud Native?
If you do not properly architecture your applications, workflows to fit in the cloud, not
making use of any advancements other than creating virtual machines,
You are just deploying the same old software to Cloud-based
Virtual Machines using the same slow methods.
Cloud can also be on-premise*
Also Designs Should Adapt
Microservices Architecture
Asynchronous Data Flows
Isolated Failures
Microtransactions
Scalability
High Availability
Stages of CI & CD Adoption
1. Let’s test it when we deploy to production
2. A local test environment, then deploy to production if it’s safe
3. Write some unit tests to validate and run them before prod
4. Extend the test suite with Integration & External Tests
5. Disable merging to master without pull requests & tests passing
6. A remote test environment to deploy the application to run functional tests
7. Parallelize all the tests to reduce master merge queues
8. Slack notifications for who broke the tests
9. Reject Pull Request if the metrics go down
10. Automated Deployment
11. Rollback the Deployment based on alerts & degraded metrics
Try to convert repo to
Microservices & Embrace
DevOps in some of
the phases by distributing
the ownership
The Cycle for Changes
Develop Test Locally
Deploy to
Test
Environment
Run Tests
Automated
Merge to
Master
Deploy
5 min 3 min 5 min 5 min
18 minutes in Total
~26.6 per day (8h)
The Cycle for Changes
Develop Test Locally
Deploy to
Test
Environment
Run Tests
Automated
Merge to
Master
Deploy
10 min 25 min 40 min 30 min
105 minutes in Total
~4.5 per day (8h)
The Cycle for Changes
Develop Test Locally
Deploy to
Test
Environment
Run Tests
Automated
Merge to
Master
Deploy
10 min 25 min 40 min 30 min
105 minutes in Total
~4.5 per day (8h)
OPERATE
Rising Ops Need with Increased Velocity of Dev
How to run tests properly for each Pull Request?
How to deploy an application in a test environment?
How do you monitor an application to understand it’s not working as desired?
You want to divide your project to multiple services, how to properly orchestrate?
How to ensure you can merge to master in a distributed microservices environment?
How can 10+ people work on same repository?
Cycle: Develop
Need external software like Redis, Postgres? Deploy it as a container.
Docker-Compose can be helpful to run multiple containers and tear down easily.
Extract the metrics and traces the same way you would do in production to see impact.
Docker-Compose
Prometheus Metrics
Cycle: Test Locally
Use containers for single use, isolated, deterministic environments.
Ability to test for multiple versions by just changing the Docker container.
Deploy other microservices in containers without caring how to build/compile them.
Various JDK Versions as Docker Images
Various Microservices
https://github.com/GoogleCloudPlatform/microservices-demo
Localstack, Minio
Cycle: Deploy to Test Environment
Package your application as a container.
Make use of Kubernetes to schedule your container somewhere. Don’t care where it
runs. Use Declarative APIs to just describe your service.
Or use Google CloudRun, AWS Fargate for managed solutions.
Make use of Infrastructure as a Code, like Terraform & Cloudformation to ensure you
don’t do manual changes to your infrastructure.
Infrastructure as a Code
resource "aws_elb" "bar" {
name = "foobar-terraform-elb"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
access_logs {
bucket = "foo"
bucket_prefix = "bar"
interval = 60
}
listener {
instance_port = 8000
instance_protocol = "http"
lb_port = 80
lb_protocol = "http"
}
instances = ["${aws_instance.foo.id}"]
cross_zone_load_balancing = true
tags = {
Name = "foobar-terraform-elb"
}
A Kubernetes YAML
Knative YAML
Cycle: Run Automated Tests
Docker Images & Containers Provide Great Single Use Environments
Multiple Providers like Bitbucket Pipelines, Github, CircleCI, TravisCI supports Docker
Test for multiple versions in parallel, i.e run java:8, java:9
Running multiple instances of application become easy with containers
Jenkins
Bitbucket Pipelines Example
Tekton
Tekton
Cycle: Deploy
The tests should mark the Pull Request successful that blocks deployment otherwise.
The techniques for deploying to test environment should be similar in how you deploy
in production.
Kubernetes can be a good candidate. But what you probably need is an orchestrator.
Always think about your actual needs and consider your scale.
Ability to rollback is important for Mean Time To Recovery (MTTR)
Keeping track of what actually is deployed is also important
Various Deployment Types
Just Replace the Old Version
Blue-Green State for Safer Rollback
Canary Deployment with increasing traffic
A-B Testing for enabling certain deployment to certain users only
Spinnaker
https://devops.com/cd-foundation-touts-spinnaker-cd-progress/
GoCD
Bitbucket Deployment
There ain't no such thing as a free lunch
Every tool you introduce is a technical debt you need to maintain.
Can you afford 1-3 person DevOps Engineers? Person-months?
DevOps & Ownership has benefits, i.e frontend team knows Webpack better than you
How to keep balance between freedom/centralization?
Are all teams are capable of defining their own pipelines?
Continuous Delivery also implies owning after deployment, getting alerts, reverting
back.
Goal is to Squeeze the Cycle
Develop Test Locally
Deploy to
Test
Environment
Run Tests
Automated
Merge to
Master
Deploy
10 min 25 min 40 min 30 min
105 minutes in Total
~4.5 per day (8h)
OPERATE
Goal is to Squeeze the Cycle
Develop Test Locally
Deploy to
Test
Environmen
t
Run Tests
Automated
Merge to
Master
Deploy
Teşekkürler!
Mustafa Akın
@mustafaakin
www.mustafaakin.dev

Mais conteúdo relacionado

Mais procurados

DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDocker, Inc.
 
Immutable Awesomeness by John Willis and Josh Corman
Immutable Awesomeness by John Willis and Josh CormanImmutable Awesomeness by John Willis and Josh Corman
Immutable Awesomeness by John Willis and Josh CormanDocker, Inc.
 
Cloud-native Application Lifecycle Management
Cloud-native Application Lifecycle ManagementCloud-native Application Lifecycle Management
Cloud-native Application Lifecycle ManagementNeil Gehani
 
Docker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker, Inc.
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroPatrick Chanezon
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17Mario-Leander Reimer
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of dockerJohn Zaccone
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker, Inc.
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroReactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroFabio Tiriticco
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with DockerDocker, Inc.
 
Continuous Delivery Live
Continuous Delivery LiveContinuous Delivery Live
Continuous Delivery LiveDocker, Inc.
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesAmbassador Labs
 
Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...The Incredible Automation Day
 
Beyond Ingresses - Better Traffic Management in Kubernetes
Beyond Ingresses - Better Traffic Management in KubernetesBeyond Ingresses - Better Traffic Management in Kubernetes
Beyond Ingresses - Better Traffic Management in KubernetesMark McBride
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...Docker, Inc.
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1Docker, Inc.
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 

Mais procurados (20)

DCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been ToldDCSF19 Docker Containers & Java: What I Wish I Had Been Told
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
 
Immutable Awesomeness by John Willis and Josh Corman
Immutable Awesomeness by John Willis and Josh CormanImmutable Awesomeness by John Willis and Josh Corman
Immutable Awesomeness by John Willis and Josh Corman
 
Cloud-native Application Lifecycle Management
Cloud-native Application Lifecycle ManagementCloud-native Application Lifecycle Management
Cloud-native Application Lifecycle Management
 
Docker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT InfrastructureDocker for any type of workload and any IT Infrastructure
Docker for any type of workload and any IT Infrastructure
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - Intro
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
Top 5 benefits of docker
Top 5 benefits of dockerTop 5 benefits of docker
Top 5 benefits of docker
 
Docker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott CoultonDocker in Production, Look No Hands! by Scott Coulton
Docker in Production, Look No Hands! by Scott Coulton
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroReactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Modernizing Java Apps with Docker
Modernizing Java Apps with DockerModernizing Java Apps with Docker
Modernizing Java Apps with Docker
 
Continuous Delivery Live
Continuous Delivery LiveContinuous Delivery Live
Continuous Delivery Live
 
DevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for KubernetesDevOps Days Boston 2017: Developer first workflows for Kubernetes
DevOps Days Boston 2017: Developer first workflows for Kubernetes
 
Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...Strategy, planning and governance for enterprise deployments of containers - ...
Strategy, planning and governance for enterprise deployments of containers - ...
 
Beyond Ingresses - Better Traffic Management in Kubernetes
Beyond Ingresses - Better Traffic Management in KubernetesBeyond Ingresses - Better Traffic Management in Kubernetes
Beyond Ingresses - Better Traffic Management in Kubernetes
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
Monitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp DockerMonitoring in 2017 - TIAD Camp Docker
Monitoring in 2017 - TIAD Camp Docker
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 

Semelhante a Cloud Native Dünyada CI/CD

Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101Vishwas N
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KuberneteszekeLabs Technologies
 
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...Ambassador Labs
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you needVishwas N
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific ComputingPeter Bryzgalov
 
Introduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeTerry Wang
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerIRJET Journal
 
Docker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and otherDocker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and otheradarsh20cs004
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the boxKangaroot
 
Building and Deploying a Static Application using Jenkins and Docker in AWS
Building and Deploying a Static Application using Jenkins and Docker in AWSBuilding and Deploying a Static Application using Jenkins and Docker in AWS
Building and Deploying a Static Application using Jenkins and Docker in AWSijtsrd
 
Kubernetes in The Enterprise
Kubernetes in The EnterpriseKubernetes in The Enterprise
Kubernetes in The EnterpriseTyrone Systems
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_ContainersGrace Jansen
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source Nitesh Jadhav
 
Structured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, AccentureStructured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, AccentureDocker, Inc.
 
Containerization Report
Containerization ReportContainerization Report
Containerization ReportJatin Chauhan
 
DCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization StrategyDCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization StrategyDocker, Inc.
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsBrad Williams
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 

Semelhante a Cloud Native Dünyada CI/CD (20)

Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
2017 Microservices Practitioner Virtual Summit: Ancestry's Journey towards Mi...
 
Kubernetes is all you need
Kubernetes is all you needKubernetes is all you need
Kubernetes is all you need
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Cont0519
Cont0519Cont0519
Cont0519
 
Introduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud Native
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using Docker
 
Docker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and otherDocker-PPT.pdf for presentation and other
Docker-PPT.pdf for presentation and other
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Building and Deploying a Static Application using Jenkins and Docker in AWS
Building and Deploying a Static Application using Jenkins and Docker in AWSBuilding and Deploying a Static Application using Jenkins and Docker in AWS
Building and Deploying a Static Application using Jenkins and Docker in AWS
 
Kubernetes in The Enterprise
Kubernetes in The EnterpriseKubernetes in The Enterprise
Kubernetes in The Enterprise
 
JBCN_Testing_With_Containers
JBCN_Testing_With_ContainersJBCN_Testing_With_Containers
JBCN_Testing_With_Containers
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
 
Structured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, AccentureStructured Container Delivery by Oscar Renalias, Accenture
Structured Container Delivery by Oscar Renalias, Accenture
 
Containerization Report
Containerization ReportContainerization Report
Containerization Report
 
DCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization StrategyDCEU 18: How To Build Your Containerization Strategy
DCEU 18: How To Build Your Containerization Strategy
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 

Último

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Cloud Native Dünyada CI/CD

  • 1. Cloud Native Dünyada CI/CD Mustafa AKIN SRE Architect @Atlassian, Opsgenie
  • 2. Cloud Native Definition “Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.” https://github.com/cncf/toc/blob/master/DEFINITION.md
  • 3.
  • 4.
  • 5. Containers Become Key Enablers for Many Abilities some consider to be unnatural Subsecond start times Lightweight on system resources Ease of packaging Ability to easily share container images Running same container in production Isolation from system and clean throwaway environments
  • 6. Tools Are Means For an End Goal Containers Docker Workload Scheduler Kubernetes Service Meshes Istio, Linkerd Immutable Infrastructure Terraform, Cloudformation, Pulumi Monitoring Prometheus, Tracing
  • 7. Cloud Native is a bit about Standardization Containers Packaging is easy, ability to run in isolation, subsecond boot times Workload Scheduler Declare your workload and deployments can be automated Service Meshes Ease S2S comms, free metrics, policy enforcement, security Immutable Infrastructure Don’t do manual changes that are not version tracked Monitoring Export metrics and traces to find problem
  • 8. What actually is Cloud Native? Cloud enables modern, and dynamic environments. You can get a fleet of server provisioned in a time you need to fill a cup of coffee. You can create a managed database, object storage, block storage to scale virtually unlimited. You can manage workflows, tests, deployment, monitoring, by using automations, not clicking buttons manually. Modern workflows allows you reduce the Lead Time for Changes and Mean Time to Recovery to minutes, compared to hours or even days for traditional companies.
  • 9. What actually is Cloud Native? If you do not properly architecture your applications, workflows to fit in the cloud, not making use of any advancements other than creating virtual machines, You are just deploying the same old software to Cloud-based Virtual Machines using the same slow methods. Cloud can also be on-premise*
  • 10. Also Designs Should Adapt Microservices Architecture Asynchronous Data Flows Isolated Failures Microtransactions Scalability High Availability
  • 11. Stages of CI & CD Adoption 1. Let’s test it when we deploy to production 2. A local test environment, then deploy to production if it’s safe 3. Write some unit tests to validate and run them before prod 4. Extend the test suite with Integration & External Tests 5. Disable merging to master without pull requests & tests passing 6. A remote test environment to deploy the application to run functional tests 7. Parallelize all the tests to reduce master merge queues 8. Slack notifications for who broke the tests 9. Reject Pull Request if the metrics go down 10. Automated Deployment 11. Rollback the Deployment based on alerts & degraded metrics Try to convert repo to Microservices & Embrace DevOps in some of the phases by distributing the ownership
  • 12.
  • 13. The Cycle for Changes Develop Test Locally Deploy to Test Environment Run Tests Automated Merge to Master Deploy 5 min 3 min 5 min 5 min 18 minutes in Total ~26.6 per day (8h)
  • 14. The Cycle for Changes Develop Test Locally Deploy to Test Environment Run Tests Automated Merge to Master Deploy 10 min 25 min 40 min 30 min 105 minutes in Total ~4.5 per day (8h)
  • 15. The Cycle for Changes Develop Test Locally Deploy to Test Environment Run Tests Automated Merge to Master Deploy 10 min 25 min 40 min 30 min 105 minutes in Total ~4.5 per day (8h) OPERATE
  • 16. Rising Ops Need with Increased Velocity of Dev How to run tests properly for each Pull Request? How to deploy an application in a test environment? How do you monitor an application to understand it’s not working as desired? You want to divide your project to multiple services, how to properly orchestrate? How to ensure you can merge to master in a distributed microservices environment? How can 10+ people work on same repository?
  • 17. Cycle: Develop Need external software like Redis, Postgres? Deploy it as a container. Docker-Compose can be helpful to run multiple containers and tear down easily. Extract the metrics and traces the same way you would do in production to see impact.
  • 20. Cycle: Test Locally Use containers for single use, isolated, deterministic environments. Ability to test for multiple versions by just changing the Docker container. Deploy other microservices in containers without caring how to build/compile them.
  • 21. Various JDK Versions as Docker Images
  • 24. Cycle: Deploy to Test Environment Package your application as a container. Make use of Kubernetes to schedule your container somewhere. Don’t care where it runs. Use Declarative APIs to just describe your service. Or use Google CloudRun, AWS Fargate for managed solutions. Make use of Infrastructure as a Code, like Terraform & Cloudformation to ensure you don’t do manual changes to your infrastructure.
  • 25. Infrastructure as a Code resource "aws_elb" "bar" { name = "foobar-terraform-elb" availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"] access_logs { bucket = "foo" bucket_prefix = "bar" interval = 60 } listener { instance_port = 8000 instance_protocol = "http" lb_port = 80 lb_protocol = "http" } instances = ["${aws_instance.foo.id}"] cross_zone_load_balancing = true tags = { Name = "foobar-terraform-elb" }
  • 28. Cycle: Run Automated Tests Docker Images & Containers Provide Great Single Use Environments Multiple Providers like Bitbucket Pipelines, Github, CircleCI, TravisCI supports Docker Test for multiple versions in parallel, i.e run java:8, java:9 Running multiple instances of application become easy with containers
  • 33. Cycle: Deploy The tests should mark the Pull Request successful that blocks deployment otherwise. The techniques for deploying to test environment should be similar in how you deploy in production. Kubernetes can be a good candidate. But what you probably need is an orchestrator. Always think about your actual needs and consider your scale. Ability to rollback is important for Mean Time To Recovery (MTTR) Keeping track of what actually is deployed is also important
  • 34. Various Deployment Types Just Replace the Old Version Blue-Green State for Safer Rollback Canary Deployment with increasing traffic A-B Testing for enabling certain deployment to certain users only
  • 36. GoCD
  • 38. There ain't no such thing as a free lunch Every tool you introduce is a technical debt you need to maintain. Can you afford 1-3 person DevOps Engineers? Person-months? DevOps & Ownership has benefits, i.e frontend team knows Webpack better than you How to keep balance between freedom/centralization? Are all teams are capable of defining their own pipelines? Continuous Delivery also implies owning after deployment, getting alerts, reverting back.
  • 39. Goal is to Squeeze the Cycle Develop Test Locally Deploy to Test Environment Run Tests Automated Merge to Master Deploy 10 min 25 min 40 min 30 min 105 minutes in Total ~4.5 per day (8h) OPERATE
  • 40. Goal is to Squeeze the Cycle Develop Test Locally Deploy to Test Environmen t Run Tests Automated Merge to Master Deploy