DevOps! What, Why and How?
Omar Fathy
Cloud DevOps Engineer @ _VOIS
linkedin.com/in/omarmfathy219
github.com/omarmfathy219
twitter.com/omarmfathy219
omarmfathy219@gmail.com
- What is DevOps?
- Traditional approach vs DevOps
- What is SDLC?
- DevOps Practices and Toolchains
AGENDA
#1 What is DevOps?
What is DevOps?
DevOps = Dev (Development) + Ops (Operations).
Different people define DevOps in a variety of ways.
DevOps is a loose set of practices, guidelines, and culture designed to break down silos in IT
development, operations, networking, and security.
Google
DevOps is an approach to culture, automation and platform design intended to deliver increased
business value and responsiveness through rapid, high-quality service delivery. DevOps means linking
legacy apps with newer cloud-native apps and infrastructure.
RedHat
DevOps is the combination of cultural philosophies, practices, and tools that increases an
organization’s ability to deliver applications and services at high velocity: evolving and improving
products at a faster pace than organizations using traditional software development and infrastructure
management processes.
AWS
• It is a culture of collaboration between developers and operations people
• This culture has given rise to a set of practices
DevOps is
• DevOps is NOT tools, but tools are essential to success in DevOps
• DevOps is NOT a product
• DevOps is NOT a job title
DevOps is NOT
#2 Traditional approach vs DevOps
• Devs write code
• "throw it over the wall" to QA
• Code bounces back and forth between Dev and QA as QA discovers problems and Devs fix them
• Finally, it is ready for production
The Story of Some Code:
Traditional Approach
• QA/Dev "throws the code over the wall" to Operations
• Oh no! There's a problem. Ops throws it back over the wall to Dev
• Each group's domain is a "black box" to the other groups
• "Our systems are fine; it's your code!"
• "But the code works on my machine!"
The Story of Some Code:
Traditional Approach
Dev and Ops are black boxes to each other, which leads to finger pointing:
• Because Ops is a black box, Devs don't really trust them
• And Ops doesn't really trust Dev
Dev and Ops have different priorities, which pits them against each other:
• Ops views Devs as breaking stability
• Devs see ops as an obstacle to delivering their code
Even if they WANT to work together:
• Dev is measured by delivering features, which means deploying changes
• Ops is measured by uptime, but changes are bad for stability
Traditional Approach - What Went Wrong?
• "Black boxes" lead to finger pointing
• Lengthy process means slow time-to-market
• Lack of automation means things like builds and deployments are inconsistent
• It takes a long time to identify and fix problems
Downsides of Traditional Approach
• DevOps culture is about collaboration between Dev and Ops.
• Under the traditional separation between Dev and Ops, Dev and Ops have different and
opposing goals.
DevOps Culture
• DevOps culture is about collaboration between Dev and Ops.
• With DevOps, Dev and Ops work together and share the same goals.
DevOps Culture
With DevOps:
• Dev and Ops are playing on the same team
• Dev and Ops share the same goals
These goals include things like:
• Fast time-to-market (TTM)
• Few production failures
• Immediate recovery from failures
The Goals of DevOps Culture
• Devs write code
• Code commit triggers automated build, integration, and tests
• QA can get their hands on it almost immediately
• Once it is ready, kick off an automated deployment to production
The Story of Some Code: DevOps
The Story of Some Code: DevOps (continued..)
• Since everything is automated, it is much easier to deploy while keeping things stable
• Deployments can occur much more frequently, getting features into the hands of customers faster
The Story of Some Code: DevOps (continued..)
• Oh no! The latest deployment broke something in production!
• Fortunately, automated monitoring notified the team immediately
• The team does a rollback by deploying the previous version, fixing the problem quickly
• An hour later, the dev team was able to deploy a fixed version of the new code
What does DevOps aim to?
• Quality
• Speed and velocity
• Automation
• Collaboration
#3 What is SDLC?
#4 DevOps Practices and toolchains
• DevOps is NOT a set of tools
• But how can we achieve high speed of delivery while maintaining stability? TOOLS!
• The DevOps community has created a wide range of powerful tools
• Part of doing DevOps is identifying the tools you need and learning how to use them
The Role of Tools in DevOps
• Bash (Shell Programming)
• Python
• GO
Programming Languages
• Understand the Concept of OS
- Process Management - I/0 Management
- Virtualization - File Systems
- Memory – Storage
- Service Management
• Live in Terminal
Bash Scripting - Vim
OS and Managing servers
• HTTP - HTTPS - FTP
• SSL / TLS - SSH
• Port Forwarding
• Proxy and reveres proxy
• Load Balancing
• OSI
• Web Server
- Apache – Tomcat
- Nginx
Networking, Security and Protocols
• Git & GitHub
Version Control
• Amazon Web Services (AWS)
• Microsoft Azure
• Google Cloud Platform
• Alibaba Cloud
• Oracle Cloud
• IBM Cloud
Cloud Providers
• Terraform
• CloudFormation
Infrastructure as Code (IaC)
• Ansible
• Chef
• Puppet
Configuration Management Tools
• Docker
• CRI-O
• Contained
Containers
• K8s
• Docker swarm
Orchestration
• Jenkins
• GitHub Action
• GitLab CI
• Circle CI
• Azure Pipeline
• Argo CD
CI/CD Tools
• Infrastructure Monitoring
- Grafana
- Prometheus
• Application Monitoring
- Jaeger
- New Relic
• Log Monitoring
- Elastic Stack
- Splunk
Monitoring
That’s all,
Thank you!

DevOps! What, Why and How?

  • 1.
  • 2.
    Omar Fathy Cloud DevOpsEngineer @ _VOIS linkedin.com/in/omarmfathy219 github.com/omarmfathy219 twitter.com/omarmfathy219 omarmfathy219@gmail.com
  • 3.
    - What isDevOps? - Traditional approach vs DevOps - What is SDLC? - DevOps Practices and Toolchains AGENDA
  • 4.
    #1 What isDevOps?
  • 5.
    What is DevOps? DevOps= Dev (Development) + Ops (Operations). Different people define DevOps in a variety of ways.
  • 6.
    DevOps is aloose set of practices, guidelines, and culture designed to break down silos in IT development, operations, networking, and security. Google
  • 7.
    DevOps is anapproach to culture, automation and platform design intended to deliver increased business value and responsiveness through rapid, high-quality service delivery. DevOps means linking legacy apps with newer cloud-native apps and infrastructure. RedHat
  • 8.
    DevOps is thecombination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. AWS
  • 9.
    • It isa culture of collaboration between developers and operations people • This culture has given rise to a set of practices DevOps is
  • 10.
    • DevOps isNOT tools, but tools are essential to success in DevOps • DevOps is NOT a product • DevOps is NOT a job title DevOps is NOT
  • 11.
  • 12.
    • Devs writecode • "throw it over the wall" to QA • Code bounces back and forth between Dev and QA as QA discovers problems and Devs fix them • Finally, it is ready for production The Story of Some Code: Traditional Approach
  • 13.
    • QA/Dev "throwsthe code over the wall" to Operations • Oh no! There's a problem. Ops throws it back over the wall to Dev • Each group's domain is a "black box" to the other groups • "Our systems are fine; it's your code!" • "But the code works on my machine!" The Story of Some Code: Traditional Approach
  • 14.
    Dev and Opsare black boxes to each other, which leads to finger pointing: • Because Ops is a black box, Devs don't really trust them • And Ops doesn't really trust Dev Dev and Ops have different priorities, which pits them against each other: • Ops views Devs as breaking stability • Devs see ops as an obstacle to delivering their code Even if they WANT to work together: • Dev is measured by delivering features, which means deploying changes • Ops is measured by uptime, but changes are bad for stability Traditional Approach - What Went Wrong?
  • 15.
    • "Black boxes"lead to finger pointing • Lengthy process means slow time-to-market • Lack of automation means things like builds and deployments are inconsistent • It takes a long time to identify and fix problems Downsides of Traditional Approach
  • 16.
    • DevOps cultureis about collaboration between Dev and Ops. • Under the traditional separation between Dev and Ops, Dev and Ops have different and opposing goals. DevOps Culture
  • 17.
    • DevOps cultureis about collaboration between Dev and Ops. • With DevOps, Dev and Ops work together and share the same goals. DevOps Culture
  • 18.
    With DevOps: • Devand Ops are playing on the same team • Dev and Ops share the same goals These goals include things like: • Fast time-to-market (TTM) • Few production failures • Immediate recovery from failures The Goals of DevOps Culture
  • 19.
    • Devs writecode • Code commit triggers automated build, integration, and tests • QA can get their hands on it almost immediately • Once it is ready, kick off an automated deployment to production The Story of Some Code: DevOps
  • 20.
    The Story ofSome Code: DevOps (continued..) • Since everything is automated, it is much easier to deploy while keeping things stable • Deployments can occur much more frequently, getting features into the hands of customers faster
  • 21.
    The Story ofSome Code: DevOps (continued..) • Oh no! The latest deployment broke something in production! • Fortunately, automated monitoring notified the team immediately • The team does a rollback by deploying the previous version, fixing the problem quickly • An hour later, the dev team was able to deploy a fixed version of the new code
  • 22.
    What does DevOpsaim to? • Quality • Speed and velocity • Automation • Collaboration
  • 23.
  • 24.
    #4 DevOps Practicesand toolchains
  • 25.
    • DevOps isNOT a set of tools • But how can we achieve high speed of delivery while maintaining stability? TOOLS! • The DevOps community has created a wide range of powerful tools • Part of doing DevOps is identifying the tools you need and learning how to use them The Role of Tools in DevOps
  • 27.
    • Bash (ShellProgramming) • Python • GO Programming Languages
  • 28.
    • Understand theConcept of OS - Process Management - I/0 Management - Virtualization - File Systems - Memory – Storage - Service Management • Live in Terminal Bash Scripting - Vim OS and Managing servers
  • 29.
    • HTTP -HTTPS - FTP • SSL / TLS - SSH • Port Forwarding • Proxy and reveres proxy • Load Balancing • OSI • Web Server - Apache – Tomcat - Nginx Networking, Security and Protocols
  • 30.
    • Git &GitHub Version Control
  • 31.
    • Amazon WebServices (AWS) • Microsoft Azure • Google Cloud Platform • Alibaba Cloud • Oracle Cloud • IBM Cloud Cloud Providers
  • 32.
  • 33.
    • Ansible • Chef •Puppet Configuration Management Tools
  • 34.
    • Docker • CRI-O •Contained Containers
  • 35.
    • K8s • Dockerswarm Orchestration
  • 36.
    • Jenkins • GitHubAction • GitLab CI • Circle CI • Azure Pipeline • Argo CD CI/CD Tools
  • 37.
    • Infrastructure Monitoring -Grafana - Prometheus • Application Monitoring - Jaeger - New Relic • Log Monitoring - Elastic Stack - Splunk Monitoring
  • 38.