SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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
 

Kürzlich hochgeladen (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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...
 

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