SlideShare a Scribd company logo
1 of 17
Download to read offline
Gearing Up for DevOps
GETTING TO WALK
EKLOVE MOHAN
Crawl-Walk-Run-Fly
Crawl
• Standardize Source
Control
• Define branching
strategy
• Define Defect Tracking
tool
• Automate System test
cases
• Plan for Synthetic
Transactions
• Enable Quality Checks
• Enable Automated
Unit Test cases
• Expose to cloud
• Build Knowledge base
Walk
• Build Continuous
Integration pipeline
• Build an Artifact
repository
• Build Continuous
Delivery pipeline for
Dev
• Enable Synthetic
transaction
Run
• Build Continuous
Delivery pipeline for
QA and production
• Enable Build
Promotion
• Setup Infrastructure
and application
monitoring tools
Fly
• Enable Blue Green
environments
• Enable Infrastructure
as code
• Enable Metric based
alerts
• Enable Continuous
Deployment
• Build pipelines of
pipelines
• Progress towards
DevSecOps
Recap
• Crawl Stage details at
https://www.slideshare.net/EkloveMohan/preparing-
for-devops
• Covered roles and responsibilities for the
Organization, Developers, QA and Operations.
• Give 2-3 months time to mature.
• What we have to start this phase:
• Single Source Control system
• Well defined Branching Strategy
• Defect tracking tool
• Quality checks for the source code
• Unit Test Automation
• Automated System test cases
• Knowledge about the complete application
• Exposure to cloud
DevOps Statistics – “To be are not to be”
• Forrester declared 2017 as the “Year of DevOps” and their data conforms that
50% of the organizations are implementing DevOps by the end of 2017.
Forrester now predicts that 2018 will be the “year of enterprise DevOps”.
https://go.forrester.com/blogs/2018-the-year-of-enterprise-devops/
• Puppet.com indicates that in 2017, the high performer DevOps organization
did deployment 46 times more frequently, 440 times faster lead time from
commit to deploy, 96 times faster mean time to recover from downtime and 5
times lower change failure rate (changes are 1/5 as likely to fail).
https://puppet.com/system/files/2017-10/2017-state-of-devops-report-puppet-dora.pdf
• International Data Corporation (IDC) believes that DevOps will be adopted --
in either practice or discipline -- by 80% of Global 1000 organizations by 2019.
http://business-technology-roundtable.blogspot.com/2015/02/the-devops-path-to-digital.html
Walk Stage - Roles and Responsibilities
• Organization
• Monitor progress on a daily basis
• Filter on Continuous Integration
and delivery tools
• Define Artifact repository
• Quality Assurance (QA)
• Optimize system test cases
• Enable Synthetic Transactions
• Developers
• Build Continuous Integration (CI)
Pipeline
• Script tasks to run for CI
• Improve Unit test case coverage
• Operations
• Build Continuous Delivery (CD)
pipeline.
• Script task to run the CD process
• Build on cloud knowledge
Monitor Progress
• “Transformation” team to define realistic goals for each sprint. E.g.
• Automated Unit Test and system test coverage be at 20% during first 2 sprints and
should increase by 5% during each subsequent sprint.
• Quality score baseline and ensure that code quality, design quality, architecture
quality and Test quality does not deteriorate at any stage. If it does, do ask “why”.
• Talk to the team to understand the hinderances. Bringing
transformation wont be easy. We have architects in the group to
mitigate technical challenges and managers to handle people and
process challenges. There is always a “Plan B”.
Continuous Integration and Delivery tools
• Pick a common tool for Continuous Integration (CI) and
Continuous Delivery (CD). While it is absolutely fine to
have different tool for CI and CD, keeping them same helps
in terms of the learning curve and standardizing tools
across organization.
• Compare tools on the basics of what your project needs and
not only on the basis of someone’s past experience. Factors
like plugin supports (e.g. SonarQube support), cost,
Software as a service vs self hosted, API driven, GUI,
command line integration, Training and documentation
along with the community support are some important
points to consider.
• Not all the features are available with a single tool therefore
they provide an option of executing custom scripts which
can be in powershell/shell or nant. Developers and
Operations need to create these as and when required.
Artifact repository
• Build a repository to store all the code builds. The repository
should have a provision of storing builds per environment.
Mostly the CI tools stores all the builds on the CI Server itself but
it’s better to keep them out of the CI servers (may run into issues
with disk space and have to clean the old builds to efficiently run
CI process).
• It can be a simple file system storage but needs good amount of
disk space as well as a solid backup strategy.
• Cloud can be a good option to start if this has not been tried as
yet in the organization. E.g. AWS Simple Storage Service (S3)
provides all the capabilities that is expected from a repository.
• Configure the repository such that every build first goes to the
lowest environment. When it is tested and verified, then only it
should move to the next environment. E.g. the build should first
be deployed only to Dev. Once certified that everything is
working as expected, then only move the artifacts to the QA
environment. NONE OF THE ARTIFACTS SHOULD DIRECTLY
BE TARGETED FOR THE PRODUCTION ENVIRONMENT
(NOT EVEN HOTFIXES). IT HAS TO FOLLOW THE CYLCE OF
NON-PROD to PROD.
1. Download
custom
scripts
2. Download
Source Code
3. Build
Source code
4. Quality
checks
5. Run
automated
unit test case
6. Upload
artifacts
Feedback
Fail Fail Fail Fail Fail Fail
Pass Pass Pass Pass Pass
Continuous Integration pipeline
Master-Slave for CI
• Every developer check-in should trigger the CI pipeline and
creates a build. If there are too many check-ins at almost the
same time, the CI server, queues up each of the request and
process them in order they were received.
• For a small team this may not be an issue, but for large
teams, waiting for the old build to complete and start a new
one delays the process of “continuous feedback”.
• Implement master-slave for the CI process. The master
server monitors for all the changes but it distributes the
pipeline execution to the slaves. Master keeps a track of all
the running jobs on each of the slaves and all the reporting
continues to be from the master.
• This provides high availability in case a slave node fails.
Master keeps a track of all the “active” slaves and distribute
the task accordingly.
Master CI server
Slave Slave Slave
Commands
Commands
Commands
Source
Control
Poll changes
Continuous Delivery/Deployment
• To build the CD pipeline, there are two options:
• Continuous Delivery – CI and CD works independently
• Continuous Deployment – CI process triggers CD pipeline
• For Dev environment, configure for Continuous Deployment. Other
environments require a bit more confidence building before we can
go for Continuous Deployment.
• With CI pipeline, the build was created and uploaded to Artifact
repository. CD process starts from downloading the build and ends at
deploying the build to the target environment.
• To keep things simple, the CD pipeline is one per environment where
as the CI pipeline is one per application. This is due to the fact that
the build is created irrespective of the environment whereas the
deployment is done on separate set of servers with a distinct set of
permissions. E.g. Dev users do not have permission to deploy on QA
environment.
• Before deployment to the target environment, the CD pipeline
should have a “config transformation” phase where the environment
specific configs are updated before they are deployed. E.g. update QA
DB connection strings before it is deployed to QA environment.
Continuous
Integration
Deployment
Continuous
Integration
Deployment
Manual
Trigger
Auto
Trigger
Continuous Delivery
Continuous Deployment
Preparing Infrastructure on Cloud
• To get started on cloud, use IaaS (infrastructure as a service) offering. Create EC2/VM on the server and follow the wizard
steps(Choosing Operating System, Storage Space, Memory and CPUs, security group etc).
• Create a common root user and password on the servers or use a common .pem file for all servers.
• The manual steps of creating the servers at this stage helps us automate the process of server creating later. As of now,
create all the servers (manually) needed for the application. Call this environment a PoC or Dev environment (since this is
for experimentation purpose).
• Install all the pre-requisites on the servers created (e.g. Java runtime, .NET framework, web server etc).
• Optionally, take a snapshot of the servers when all pre-requisites are installed. Use this next time instead of building the
servers again.
• To run the application on cloud, you also need database(s). Generate database script, DDL and DML(only the master
data and not the transactional data). E.g. On Amazon Web Services, create a RDS (Relation Database Service), choose the
database server and run the script.
• Note all the IP addresses (public) for the servers that are created. This information is needed while deploying binaries on
cloud servers. (Note: every time the servers are restarted, the public IP address would change, therefore either use Elastic
IP or change the CD script with the new IP addresses before CD pipeline is executed)
1. Download
custom
scripts
2. Download
build from
Artifact repo.
3. Transform
config files
4. Deploy
5. Run
System test
Feedback
Fail Fail Fail Fail Fail
Pass Pass
Continuous Delivery pipeline
PassPass
Enable Synthetic transaction
• Create a standalone pipeline for executing synthetic transaction (a dummy
transaction that touches all the external endpoints and then void the transaction).
• The pipeline executes once a day, at a predefined time, ideally just before the business
hours.
• It “warms up” the environment as well as provide early feedback if an issue exists
while connecting to other third party or components within the enterprise.
1. Download
custom
scripts
2. Create
dummy
record in the
database.
3. Execute
test case
4. Clean up
database
Feedback
Fail Fail Fail Fail
Pass PassPassTrigger
Closing words
• Things have been simple during the “walk” stage, we haven’t used a lot of
industry standard tools as yet. We tried to work with what we build during the
“crawl” stage.
• The CD pipeline steps are common for on-premise and cloud during this
phase but it changes during our “run” phase. The intent is to be able to gain
knowledge on cloud (and CI/CD tools) and start deployment with basic setup.
• Let the “walk” phase run for 1-2 months and gain confidence by doing the
simple things right. The Dev and Ops have started working together and have
gained some level of maturity.
• Start preparing for to the “Run” stage. Let some more projects start with the
“crawl” stage. Time now to rename our “Transformation” team to be “DevOps”
CoE.
Coming up next
Details on how to work during the “Run” stage.
Thank you

More Related Content

What's hot

GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...Weaveworks
 
Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1Imesh Gunaratne
 
Version control system
Version control systemVersion control system
Version control systemAryman Gautam
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps IntroductionRobert Sell
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueVincent Composieux
 
Azure DevOps Presentation
Azure DevOps PresentationAzure DevOps Presentation
Azure DevOps PresentationInCycleSoftware
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesAmazon Web Services
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101Hazzim Anaya
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdfVinothini Raju
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?Soumya De
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyWeaveworks
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAmazon Web Services
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarCambay Digital
 
Deep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-Prometheus
Deep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-PrometheusDeep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-Prometheus
Deep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-PrometheusAmazon Web Services
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)충섭 김
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...Edureka!
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introductionSridhara T V
 

What's hot (20)

GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...
 
Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1Deep Dive into Kubernetes - Part 1
Deep Dive into Kubernetes - Part 1
 
Version control system
Version control systemVersion control system
Version control system
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Azure DevOps Presentation
Azure DevOps PresentationAzure DevOps Presentation
Azure DevOps Presentation
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
 
Azure DevOps Best Practices Webinar
Azure DevOps Best Practices WebinarAzure DevOps Best Practices Webinar
Azure DevOps Best Practices Webinar
 
DevOps
DevOpsDevOps
DevOps
 
Deep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-Prometheus
Deep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-PrometheusDeep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-Prometheus
Deep-Dive-with-Cloud-Monitoring-with-Amazon-EKS-and-Prometheus
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
 
Helm 3
Helm 3Helm 3
Helm 3
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 

Similar to Gearing Up for DevOps with Crawl-Walk-Run Framework

Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Amazon Web Services
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud RoadGert Drapers
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Mary Joy Sabal
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyRightScale
 
Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Amazon Web Services
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationMaruti Gollapudi
 
Automating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOpsAutomating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOpsAmazon Web Services
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdfNilesh Gule
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerAmazon Web Services
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
Putting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud ScalePutting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud ScaleAmazon Web Services
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 
Securing Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOpsSecuring Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOpsAmazon Web Services
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkinsecubemarketing
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for NetworkDamien Garros
 

Similar to Gearing Up for DevOps with Crawl-Walk-Run Framework (20)

Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017Configuration Management in the Cloud | AWS Public Sector Summit 2017
Configuration Management in the Cloud | AWS Public Sector Summit 2017
 
The Rocky Cloud Road
The Rocky Cloud RoadThe Rocky Cloud Road
The Rocky Cloud Road
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 
Automating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOpsAutomating Security in Cloud Workloads with DevSecOps
Automating Security in Cloud Workloads with DevSecOps
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdf
 
Continuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and DockerContinuous Integration with Amazon ECS and Docker
Continuous Integration with Amazon ECS and Docker
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
Putting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud ScalePutting it All Together: Securing Systems at Cloud Scale
Putting it All Together: Securing Systems at Cloud Scale
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Securing Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOpsSecuring Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOps
 
Continuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with JenkinsContinuous Integration for OpenVMS with Jenkins
Continuous Integration for OpenVMS with Jenkins
 
Devops
DevopsDevops
Devops
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

Gearing Up for DevOps with Crawl-Walk-Run Framework

  • 1. Gearing Up for DevOps GETTING TO WALK EKLOVE MOHAN
  • 2. Crawl-Walk-Run-Fly Crawl • Standardize Source Control • Define branching strategy • Define Defect Tracking tool • Automate System test cases • Plan for Synthetic Transactions • Enable Quality Checks • Enable Automated Unit Test cases • Expose to cloud • Build Knowledge base Walk • Build Continuous Integration pipeline • Build an Artifact repository • Build Continuous Delivery pipeline for Dev • Enable Synthetic transaction Run • Build Continuous Delivery pipeline for QA and production • Enable Build Promotion • Setup Infrastructure and application monitoring tools Fly • Enable Blue Green environments • Enable Infrastructure as code • Enable Metric based alerts • Enable Continuous Deployment • Build pipelines of pipelines • Progress towards DevSecOps
  • 3. Recap • Crawl Stage details at https://www.slideshare.net/EkloveMohan/preparing- for-devops • Covered roles and responsibilities for the Organization, Developers, QA and Operations. • Give 2-3 months time to mature. • What we have to start this phase: • Single Source Control system • Well defined Branching Strategy • Defect tracking tool • Quality checks for the source code • Unit Test Automation • Automated System test cases • Knowledge about the complete application • Exposure to cloud
  • 4. DevOps Statistics – “To be are not to be” • Forrester declared 2017 as the “Year of DevOps” and their data conforms that 50% of the organizations are implementing DevOps by the end of 2017. Forrester now predicts that 2018 will be the “year of enterprise DevOps”. https://go.forrester.com/blogs/2018-the-year-of-enterprise-devops/ • Puppet.com indicates that in 2017, the high performer DevOps organization did deployment 46 times more frequently, 440 times faster lead time from commit to deploy, 96 times faster mean time to recover from downtime and 5 times lower change failure rate (changes are 1/5 as likely to fail). https://puppet.com/system/files/2017-10/2017-state-of-devops-report-puppet-dora.pdf • International Data Corporation (IDC) believes that DevOps will be adopted -- in either practice or discipline -- by 80% of Global 1000 organizations by 2019. http://business-technology-roundtable.blogspot.com/2015/02/the-devops-path-to-digital.html
  • 5. Walk Stage - Roles and Responsibilities • Organization • Monitor progress on a daily basis • Filter on Continuous Integration and delivery tools • Define Artifact repository • Quality Assurance (QA) • Optimize system test cases • Enable Synthetic Transactions • Developers • Build Continuous Integration (CI) Pipeline • Script tasks to run for CI • Improve Unit test case coverage • Operations • Build Continuous Delivery (CD) pipeline. • Script task to run the CD process • Build on cloud knowledge
  • 6. Monitor Progress • “Transformation” team to define realistic goals for each sprint. E.g. • Automated Unit Test and system test coverage be at 20% during first 2 sprints and should increase by 5% during each subsequent sprint. • Quality score baseline and ensure that code quality, design quality, architecture quality and Test quality does not deteriorate at any stage. If it does, do ask “why”. • Talk to the team to understand the hinderances. Bringing transformation wont be easy. We have architects in the group to mitigate technical challenges and managers to handle people and process challenges. There is always a “Plan B”.
  • 7. Continuous Integration and Delivery tools • Pick a common tool for Continuous Integration (CI) and Continuous Delivery (CD). While it is absolutely fine to have different tool for CI and CD, keeping them same helps in terms of the learning curve and standardizing tools across organization. • Compare tools on the basics of what your project needs and not only on the basis of someone’s past experience. Factors like plugin supports (e.g. SonarQube support), cost, Software as a service vs self hosted, API driven, GUI, command line integration, Training and documentation along with the community support are some important points to consider. • Not all the features are available with a single tool therefore they provide an option of executing custom scripts which can be in powershell/shell or nant. Developers and Operations need to create these as and when required.
  • 8. Artifact repository • Build a repository to store all the code builds. The repository should have a provision of storing builds per environment. Mostly the CI tools stores all the builds on the CI Server itself but it’s better to keep them out of the CI servers (may run into issues with disk space and have to clean the old builds to efficiently run CI process). • It can be a simple file system storage but needs good amount of disk space as well as a solid backup strategy. • Cloud can be a good option to start if this has not been tried as yet in the organization. E.g. AWS Simple Storage Service (S3) provides all the capabilities that is expected from a repository. • Configure the repository such that every build first goes to the lowest environment. When it is tested and verified, then only it should move to the next environment. E.g. the build should first be deployed only to Dev. Once certified that everything is working as expected, then only move the artifacts to the QA environment. NONE OF THE ARTIFACTS SHOULD DIRECTLY BE TARGETED FOR THE PRODUCTION ENVIRONMENT (NOT EVEN HOTFIXES). IT HAS TO FOLLOW THE CYLCE OF NON-PROD to PROD.
  • 9. 1. Download custom scripts 2. Download Source Code 3. Build Source code 4. Quality checks 5. Run automated unit test case 6. Upload artifacts Feedback Fail Fail Fail Fail Fail Fail Pass Pass Pass Pass Pass Continuous Integration pipeline
  • 10. Master-Slave for CI • Every developer check-in should trigger the CI pipeline and creates a build. If there are too many check-ins at almost the same time, the CI server, queues up each of the request and process them in order they were received. • For a small team this may not be an issue, but for large teams, waiting for the old build to complete and start a new one delays the process of “continuous feedback”. • Implement master-slave for the CI process. The master server monitors for all the changes but it distributes the pipeline execution to the slaves. Master keeps a track of all the running jobs on each of the slaves and all the reporting continues to be from the master. • This provides high availability in case a slave node fails. Master keeps a track of all the “active” slaves and distribute the task accordingly. Master CI server Slave Slave Slave Commands Commands Commands Source Control Poll changes
  • 11. Continuous Delivery/Deployment • To build the CD pipeline, there are two options: • Continuous Delivery – CI and CD works independently • Continuous Deployment – CI process triggers CD pipeline • For Dev environment, configure for Continuous Deployment. Other environments require a bit more confidence building before we can go for Continuous Deployment. • With CI pipeline, the build was created and uploaded to Artifact repository. CD process starts from downloading the build and ends at deploying the build to the target environment. • To keep things simple, the CD pipeline is one per environment where as the CI pipeline is one per application. This is due to the fact that the build is created irrespective of the environment whereas the deployment is done on separate set of servers with a distinct set of permissions. E.g. Dev users do not have permission to deploy on QA environment. • Before deployment to the target environment, the CD pipeline should have a “config transformation” phase where the environment specific configs are updated before they are deployed. E.g. update QA DB connection strings before it is deployed to QA environment. Continuous Integration Deployment Continuous Integration Deployment Manual Trigger Auto Trigger Continuous Delivery Continuous Deployment
  • 12. Preparing Infrastructure on Cloud • To get started on cloud, use IaaS (infrastructure as a service) offering. Create EC2/VM on the server and follow the wizard steps(Choosing Operating System, Storage Space, Memory and CPUs, security group etc). • Create a common root user and password on the servers or use a common .pem file for all servers. • The manual steps of creating the servers at this stage helps us automate the process of server creating later. As of now, create all the servers (manually) needed for the application. Call this environment a PoC or Dev environment (since this is for experimentation purpose). • Install all the pre-requisites on the servers created (e.g. Java runtime, .NET framework, web server etc). • Optionally, take a snapshot of the servers when all pre-requisites are installed. Use this next time instead of building the servers again. • To run the application on cloud, you also need database(s). Generate database script, DDL and DML(only the master data and not the transactional data). E.g. On Amazon Web Services, create a RDS (Relation Database Service), choose the database server and run the script. • Note all the IP addresses (public) for the servers that are created. This information is needed while deploying binaries on cloud servers. (Note: every time the servers are restarted, the public IP address would change, therefore either use Elastic IP or change the CD script with the new IP addresses before CD pipeline is executed)
  • 13. 1. Download custom scripts 2. Download build from Artifact repo. 3. Transform config files 4. Deploy 5. Run System test Feedback Fail Fail Fail Fail Fail Pass Pass Continuous Delivery pipeline PassPass
  • 14. Enable Synthetic transaction • Create a standalone pipeline for executing synthetic transaction (a dummy transaction that touches all the external endpoints and then void the transaction). • The pipeline executes once a day, at a predefined time, ideally just before the business hours. • It “warms up” the environment as well as provide early feedback if an issue exists while connecting to other third party or components within the enterprise. 1. Download custom scripts 2. Create dummy record in the database. 3. Execute test case 4. Clean up database Feedback Fail Fail Fail Fail Pass PassPassTrigger
  • 15. Closing words • Things have been simple during the “walk” stage, we haven’t used a lot of industry standard tools as yet. We tried to work with what we build during the “crawl” stage. • The CD pipeline steps are common for on-premise and cloud during this phase but it changes during our “run” phase. The intent is to be able to gain knowledge on cloud (and CI/CD tools) and start deployment with basic setup. • Let the “walk” phase run for 1-2 months and gain confidence by doing the simple things right. The Dev and Ops have started working together and have gained some level of maturity. • Start preparing for to the “Run” stage. Let some more projects start with the “crawl” stage. Time now to rename our “Transformation” team to be “DevOps” CoE.
  • 16. Coming up next Details on how to work during the “Run” stage.