01 - Introduction of Devops

Traditional Development Models: Waterfall
  1. Requirement Gathering -> Business
  2. System Design
  3. System Implementation
  4. System Testing -> QA / Testing team
  5. System Deployment
  6. System Maintenance

DevOps is short for Development Operations
  • It focuses on collaboration between developers and other parties involved in building, deploying, operating, and maintaining software systems
  • It is about defining a flow from development through full-scale operation of a system
  • It is about Systems Thinking with feedback to earlier stages of a DevOps workflow
  • The emphasis is on automating processes required to release and change the software
  • With a view to rapid, frequent, and reliable releases

Agile
  • Agile Software Development is an umbrella term for a set of methods and on the values and principles expressed in the Agile Manifesto
  • Solutions evolve through collaboration between self-organizing, teams utilizing the appropriate practices for their context
                Product Backlog -> Sprint Planning -> Spring Backlog ===> Scrum Team ===> Sprint Review --> Increment
                                                                                                              (Scrum Master)

Agile & DevOps
  • Some of the principles of Agile manifesto that lead to a DevOps environment
  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter time scale
  • Business people and developers must work together daily throughout the project
  • DevOps not only talks about the collaboration between Development and Operations but improved collaboration between all teams including business
  • DevOps also promotes using a lot of automation to complete the many tasks and steps that go into making a deliverable potentially shippable increment
  • Using tools to replace the non-human steps like build creation, environment setup, trigger test cases, automated deployments multiple times in a day
What DevOps is Not 
  • A title
  • A separate team
  • A tool
  • Only Culture
  • Only automation
  • Anarchy
  • A one size fits all strategy
Evolution of IT
Development Process        ===> Waterfall              --> Agile                --> DevOps
Application Architecture      ===> Monolithic           --> N-Tire               --> Microservices
Deployment & Packaging   ===> Physical Servers --> Virtual Servers --> Containers
Application Infrasturcture    ===> DataCenre           --> Hosted             --> Cloud

DevOps Goals
  • Smaller, more frequent release
  • Reduced effort and risks
  • Reduced cost of product iterations and delays
  • A culture of communication and collaboration
  • Consistency and speed through automation
Characteristics DevOps
  • Continuous Itegration (Jenkins ) -> Push code -> complied -> Testing
  • Monitoring Tools (Nagios )
  • Being Proactive
  • Working Together
  • Automated Testing
  • Cross Training

DevOps Values
Automation -> Lean -> Measurement -> Sharing -> Culture

DevOps Stakeholders
Architects, Business representatives, Customers, Product Manager, Project Manager, Quality - QA, QC , Suppliers


DevOps Workflow  ( DevOps + Continuous Delivery Cycle )
  • Business Need / Use Cases
    • Product Owner
  • Software development Team
    • IDE = Integrated Deployment Environment
      • eclipse, Visual Studio
  • Software Check-in
    • git (VC = Version Control ) or ( SCM Source = Code Management)
  • Automated Software Build
    • Compiled Code ( CI / CD )
      • Jenkins
      • Bamboo
      • Maven
  • Automated Test Scripts
    • QA / Testing Team
      • Visual Studio
      • Jenkins
  • Automated Deployment
    • Dev -> QA -> Staging -> Product
      • Ansible
      • CHEF
      • Puppet labs
  • Monitoring / Operations
    • System Centre
    • Nagios


Comments

Popular posts from this blog

05 - Docker - Containers

08 - PUPPET - Configuration Management

06 - Docker Swarm - Container Orchestration