2. 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!
3. 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!
4. 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
5. 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!
7. 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!
8. 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.
9. 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
14. 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
15. 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!
17. 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
20. 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
22. 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
23. 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.
27. 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)
28. 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.
29. 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.
31. 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
32. 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
33. 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?
34. 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
39. 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!
42. 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)
43.
44. 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!
46. 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
47. 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!
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)
51. 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
57. 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!