Getting Started
with DevOps
Ahmed MISBAH
December 19th, 2020
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
A little about me….
u Currently a Software Architect and team leader
u Delivered many session on DevOps including:
o AMECSE 2016: “Agile Software Development and DevOps”
o AMECSE 2017 and Orange DevTest Days: “The Road to DevOps”
o DevOpsDays Cairo 2019: “How Spinnaker helped us achieve real CD”
o DevOpsDays Cairo 2020: “Implementing FaaS on K8s using Kubeless”
o Both previous session were also delivered at Orange DevTest Days
2020
o ”DevOps for absolute beginners” live on Youtube, December 2020
u Published YouTube videos promoting DevOps practices:
o TDD in IaC
o SMED in Software Development using DevOps tools
o How Serverless Architectures can help startups
o Kubeless live demo
o Generalists vs. Specialists in Agile teams
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
DevOps Story
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
What is DevOps?
DevOps is a culture, movement or practice that emphasizes the
collaboration and communication of both Software Developers
and other Information-Technology professionals while
automating the process of software delivery and infrastructure
changes.
What is DevOps?
DevOps in an extension of the agile mindset and
methodologies that is focused on brining customers value
without compromising creativity (development) and
stability (operations)
“DevOps Fundementals Workshop” V1.0 - SECC
The world before DevOps
The world before DevOps –
Agile
The world before DevOps
With DevOps…
DevOps is not….
u simply combining Development and Operations in one
team
u simply a function or title
u just tools and automation
u a separate team
u a one-size-fits-all solution
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
DevOps Framework Overview
People
• Mindset
Process
•Practices:
oDevOps Pipeline
o5Cs
oAutomation
oIaC
oContainerization
•KPIs
Technology
• DevOps
toolchain
• DevOps
periodic
table
DevOps Framework
u People
o Mindset
u Process
o Practices:
o Pipelines
o 5Cs
o Automation
o IaC
o Containerization
o KPIs
u Technology
o DevOps toolchain
o DevOps periodic table
Mindset
Mindset
Mindset – Lean Thinking
Lean (SWD or Manufacturing) is a systematic method in which
the core idea is to maximize customer value while
minimizing waste
u Value is everything that your customer is willing to pay
money for
u Waste is any action or step in a process that does not add
value to the customer. In other words, waste is any process
that the customer does not want to pay for
u Flow is the principle of creating a value chain with no
interruption in the production process and a state where
each activity is fully in step with every other
Mindset Conclusion
1. Bridging gaps
2. Delivering value to customers
3. Flow
As simple as that!
DevOps Framework
u People
o Mindset
u Process
o Practices:
o DevOps Pipeline
o 5Cs
o Automation
o IaC
o Containerization
o KPIs
u Technology
o DevOps toolchain
o DevOps periodic table
DevOps Pipeline
A DevOps pipeline is a set of practices that the development (Dev) and
operations (Ops) teams implement to build, test, and deploy software
faster and easier. One of the primary purposes of a pipeline is to keep
the software development process organized and focused.
DevOps Pipeline
5Cs
Continuous
Integration
Continuous
Testing
Continuous
Delivery
Continuous
Deployment
Continuous
Monitoring
5Cs of DevOps are a set of practices in software development that are of
repeatable nature and can be automated to increase quality and
productivity.
5Cs and DevOps Pipeline
Automation
Automation is the process of creating software and systems to replace
repeatable processes / activities and reduce manual intervention, thereby
significantly increasing both quality and productivity.
Examples:
u Build (Ant, Maven, Gradle, Sbt, Grunt, Gulp)
u Unit tests (JUnit)
u Code Inspection (SonarQube)
u Packaging (JAR, Docker)
u Deployment (Jenkins, Ansible, Spinnaker)
u System/Functional tests (Cucumber, JBehave, Robot Framework,
Selenium, Appium)
u Non-functional tests (Jmeter, Gatling, OWASP ZAP)
u Provisioning (Ansible, Puppet, Chef, Terraform)
u Documentation (Swagger)
Infrastructure as Code
Infrastructure as Code (IaC) is the process of managing and
provisioning computer data centers through machine-readable
definition files, rather than physical hardware configuration or
interactive configuration tools.
Containerization
Containerization is the process of packaging an application
along with its required libraries, frameworks, and
configuration files together so that it can be run in various
computing environments efficiently.
DevOps Practices Combined
DevOps Framework
u People
o Mindset
u Process
o Practices:
o DevOps Pipeline
o 5Cs
o Automation
o IaC
o Containerization
o KPIs
u Technology
o DevOps toolchain
o DevOps periodic table
KPIs - CALMS Model
• People focus
• Mindset
• Embrace change
Culture
• CI/CD
• Infrastructure as Code (IaC)Automation
• Focus on producing value for the end-user
• ProductivityLean
• Measure everything
• Show improvementMeasurement
• Collaboration
• Communication
• Open information sharing
Sharing
More KPIs
u Mean Time To Production: How long does it take for any newly committed
source code to reach production?
u Deployment Frequency: How often are releases deployed into production?
u Average Lead Time: How long does it take for a new feature to be
developed, built, tested, and deployed into production?
u Deployment Speed: How much time does it take to deploy a new release
into production?
u Production Failure Rate: How often do failures occur in production?
u Mean Time To Recover (MTTR): How long does it take to recover from a
failure?
DevOps Framework
u People
o Mindset
u Process
o Practices:
o DevOps Pipeline
o 5Cs
o Automation
o IaC
o Containerization
o KPIs
u Technology
o DevOps toolchain
o DevOps Periodic Table
DevOps Toolchain
DevOps Toolchain
DevOps Periodic Table
DevOps Toolchain Example
Plan
Code
Build
TestRelease
Deploy
Monitor
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
Core Skills for all functions
Specific Skills per function /
role
Developer
•TDD
•BDD
•Static Code
Analysis
•Serverless
Architectures
•SMED (e.g.
Vagrant)
Tester / SDET
•BDD
•Test
Automation at
all levels and
of all types
•Chaos
Engineering
Cloud Architect
/ Engineer
•Solutions
Architecture
for major
cloud vendors
•Cost
optimization
SRE (DevOps
Engineer)
•IaC
•Configuration
Management
tools (e.g.
Ansible)
•Chaos
Engineering
•Infrastructure
testing tools
(e.g.
ServerSpec)
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
eDevOps
More topics
u NoOps
u Continous Feedback
u Continous Documentation
u Continous Inspection
u Everything as Code
u GitOps
u Infratsructure testing and Chaos Engineering
u AIOps
u MLOps
Agenda
1. A little about me
2. DevOps story
3. What is DevOps?
4. DevOps Framework
5. Becoming a DevOps Engineer
6. eDevOps
7. Applying DevOps in Google Summer of Code!
DevOps Adoption Plan
1. Build the DevOps team
2. Design the DevOps methodology
3. Design the software architecture
4. Design the DevOps Pipeline
5. Start building the DevOps pipeline
6. Start building the software solution
7. Deliver, measure and iterate with improvements
Build the team
1. Choose the members
2. Agree on roles and responsibilities
3. Assign roles to members
My recommendations for team roles:
u Product Owner
u Developers or SDETs
u SREs
u Team must be a cross-functional and self-organizing team.
u Team members should be agile generalists (master of one
or some and jack of all trades)
DevOps methodology
My recommendation is to read the Agile Manifesto and adopt
either eXtreme Programming and / or Kanban
The Software Architecture
My recommendation is to go for:
1. A Cloud-native, 12 Factor application
2. Serverless Architectures using Google Cloud Functions or
classic monolithic or microservice architecture using GKE
DevOps Pipeline
My recommendation is to go for one of two options:
u An ”All Google” pipeline
OR
u A heterogenous pipeline
“All Google” Pipeline
Hetrogenous Pipeline
Plan
Code
Build
TestRelease
Deploy
Monitor
Google Cloud Monitoring
Depending on
programming
language
Hetrogenous Pipeline
Plan
Code
Build
TestRelease
Deploy
Monitor
Google Cloud Monitoring
OR
Depending on
programming
language
Hetrogenous Pipeline
Plan
Code
Build
TestRelease
Deploy
Monitor
Google Cloud Monitoring
OR
Depending on
programming
language
Measure and improve
u Conduct Agile retrospectives
u Measure efficiency of DevOpe framework and pipeline using
CALMS and metrics in slide 35
u Continuously improve!
DevOps Adoption Overview
Thank You
https://twitter.com/AhmedMisbahTech https://www.linkedin.com/in/ahmed-
misbah-msc-251a3a32/
https://www.youtube.com/channel/UCZxEB
qvA1fGKLusLwoadf_w

Getting Started with DevOps

  • 1.
    Getting Started with DevOps AhmedMISBAH December 19th, 2020
  • 2.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 3.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 4.
    A little aboutme…. u Currently a Software Architect and team leader u Delivered many session on DevOps including: o AMECSE 2016: “Agile Software Development and DevOps” o AMECSE 2017 and Orange DevTest Days: “The Road to DevOps” o DevOpsDays Cairo 2019: “How Spinnaker helped us achieve real CD” o DevOpsDays Cairo 2020: “Implementing FaaS on K8s using Kubeless” o Both previous session were also delivered at Orange DevTest Days 2020 o ”DevOps for absolute beginners” live on Youtube, December 2020 u Published YouTube videos promoting DevOps practices: o TDD in IaC o SMED in Software Development using DevOps tools o How Serverless Architectures can help startups o Kubeless live demo o Generalists vs. Specialists in Agile teams
  • 5.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 6.
  • 7.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 8.
    What is DevOps? DevOpsis a culture, movement or practice that emphasizes the collaboration and communication of both Software Developers and other Information-Technology professionals while automating the process of software delivery and infrastructure changes.
  • 9.
    What is DevOps? DevOpsin an extension of the agile mindset and methodologies that is focused on brining customers value without compromising creativity (development) and stability (operations) “DevOps Fundementals Workshop” V1.0 - SECC
  • 10.
  • 11.
    The world beforeDevOps – Agile
  • 12.
  • 13.
  • 14.
    DevOps is not…. usimply combining Development and Operations in one team u simply a function or title u just tools and automation u a separate team u a one-size-fits-all solution
  • 15.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 16.
    DevOps Framework Overview People •Mindset Process •Practices: oDevOps Pipeline o5Cs oAutomation oIaC oContainerization •KPIs Technology • DevOps toolchain • DevOps periodic table
  • 17.
    DevOps Framework u People oMindset u Process o Practices: o Pipelines o 5Cs o Automation o IaC o Containerization o KPIs u Technology o DevOps toolchain o DevOps periodic table
  • 18.
  • 19.
  • 20.
    Mindset – LeanThinking Lean (SWD or Manufacturing) is a systematic method in which the core idea is to maximize customer value while minimizing waste u Value is everything that your customer is willing to pay money for u Waste is any action or step in a process that does not add value to the customer. In other words, waste is any process that the customer does not want to pay for u Flow is the principle of creating a value chain with no interruption in the production process and a state where each activity is fully in step with every other
  • 21.
    Mindset Conclusion 1. Bridginggaps 2. Delivering value to customers 3. Flow As simple as that!
  • 22.
    DevOps Framework u People oMindset u Process o Practices: o DevOps Pipeline o 5Cs o Automation o IaC o Containerization o KPIs u Technology o DevOps toolchain o DevOps periodic table
  • 23.
    DevOps Pipeline A DevOpspipeline is a set of practices that the development (Dev) and operations (Ops) teams implement to build, test, and deploy software faster and easier. One of the primary purposes of a pipeline is to keep the software development process organized and focused.
  • 24.
  • 25.
    5Cs Continuous Integration Continuous Testing Continuous Delivery Continuous Deployment Continuous Monitoring 5Cs of DevOpsare a set of practices in software development that are of repeatable nature and can be automated to increase quality and productivity.
  • 26.
  • 27.
    Automation Automation is theprocess of creating software and systems to replace repeatable processes / activities and reduce manual intervention, thereby significantly increasing both quality and productivity. Examples: u Build (Ant, Maven, Gradle, Sbt, Grunt, Gulp) u Unit tests (JUnit) u Code Inspection (SonarQube) u Packaging (JAR, Docker) u Deployment (Jenkins, Ansible, Spinnaker) u System/Functional tests (Cucumber, JBehave, Robot Framework, Selenium, Appium) u Non-functional tests (Jmeter, Gatling, OWASP ZAP) u Provisioning (Ansible, Puppet, Chef, Terraform) u Documentation (Swagger)
  • 28.
    Infrastructure as Code Infrastructureas Code (IaC) is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.
  • 29.
    Containerization Containerization is theprocess of packaging an application along with its required libraries, frameworks, and configuration files together so that it can be run in various computing environments efficiently.
  • 30.
  • 31.
    DevOps Framework u People oMindset u Process o Practices: o DevOps Pipeline o 5Cs o Automation o IaC o Containerization o KPIs u Technology o DevOps toolchain o DevOps periodic table
  • 32.
    KPIs - CALMSModel • People focus • Mindset • Embrace change Culture • CI/CD • Infrastructure as Code (IaC)Automation • Focus on producing value for the end-user • ProductivityLean • Measure everything • Show improvementMeasurement • Collaboration • Communication • Open information sharing Sharing
  • 33.
    More KPIs u MeanTime To Production: How long does it take for any newly committed source code to reach production? u Deployment Frequency: How often are releases deployed into production? u Average Lead Time: How long does it take for a new feature to be developed, built, tested, and deployed into production? u Deployment Speed: How much time does it take to deploy a new release into production? u Production Failure Rate: How often do failures occur in production? u Mean Time To Recover (MTTR): How long does it take to recover from a failure?
  • 34.
    DevOps Framework u People oMindset u Process o Practices: o DevOps Pipeline o 5Cs o Automation o IaC o Containerization o KPIs u Technology o DevOps toolchain o DevOps Periodic Table
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 41.
    Core Skills forall functions
  • 42.
    Specific Skills perfunction / role Developer •TDD •BDD •Static Code Analysis •Serverless Architectures •SMED (e.g. Vagrant) Tester / SDET •BDD •Test Automation at all levels and of all types •Chaos Engineering Cloud Architect / Engineer •Solutions Architecture for major cloud vendors •Cost optimization SRE (DevOps Engineer) •IaC •Configuration Management tools (e.g. Ansible) •Chaos Engineering •Infrastructure testing tools (e.g. ServerSpec)
  • 44.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 45.
  • 46.
    More topics u NoOps uContinous Feedback u Continous Documentation u Continous Inspection u Everything as Code u GitOps u Infratsructure testing and Chaos Engineering u AIOps u MLOps
  • 47.
    Agenda 1. A littleabout me 2. DevOps story 3. What is DevOps? 4. DevOps Framework 5. Becoming a DevOps Engineer 6. eDevOps 7. Applying DevOps in Google Summer of Code!
  • 48.
    DevOps Adoption Plan 1.Build the DevOps team 2. Design the DevOps methodology 3. Design the software architecture 4. Design the DevOps Pipeline 5. Start building the DevOps pipeline 6. Start building the software solution 7. Deliver, measure and iterate with improvements
  • 49.
    Build the team 1.Choose the members 2. Agree on roles and responsibilities 3. Assign roles to members My recommendations for team roles: u Product Owner u Developers or SDETs u SREs u Team must be a cross-functional and self-organizing team. u Team members should be agile generalists (master of one or some and jack of all trades)
  • 50.
    DevOps methodology My recommendationis to read the Agile Manifesto and adopt either eXtreme Programming and / or Kanban
  • 51.
    The Software Architecture Myrecommendation is to go for: 1. A Cloud-native, 12 Factor application 2. Serverless Architectures using Google Cloud Functions or classic monolithic or microservice architecture using GKE
  • 52.
    DevOps Pipeline My recommendationis to go for one of two options: u An ”All Google” pipeline OR u A heterogenous pipeline
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
    Measure and improve uConduct Agile retrospectives u Measure efficiency of DevOpe framework and pipeline using CALMS and metrics in slide 35 u Continuously improve!
  • 58.
  • 59.