Nelkinda Software Craft Pvt. Ltd.
DevOps Overview
2019-04-13
@ShwetaSadawarte @nelkinda @Tavisca #devops #agile
Nelkinda Software Craft Pvt. Ltd.
Agenda
● Overview
● History
● What is DevOps
● DevOps Lifecycle
● DevOps Misconceptions and Anti-Patterns
● DevOps Culture
Nelkinda Software Craft Pvt. Ltd.
DevOps
“DevOps (a clipped compound of “development” and “operations”) is a software
engineering culture and practice that aims at unifying software development (Dev) and
software operation (Ops). The main characteristics of the DevOps movement are to
strongly advocate automation and monitoring at all steps of software construction, from
integration, testing, releasing to deployment and infrastructure management.”
— Wikipedia
Nelkinda Software Craft Pvt. Ltd.
“DevOps is not a goal, but a never-ending process of continual improvement”
— Jez Humble
“You Build It, You Run It”
— Werner Voegls
Nelkinda Software Craft Pvt. Ltd.
“Complete definition of DEVOPS: the developers have to wear the
beeper”
— Ron Jeffries
Nelkinda Software Craft Pvt. Ltd.
History
● Waterfall
● Agile / DevOps
Nelkinda Software Craft Pvt. Ltd.
Requirement
Gathering
Design
Integration and
Test
Maintenance
Built
Deployment
Nelkinda Software Craft Pvt. Ltd.
Waterfall
● Sequential progress of process
● Requirements are fixed & clear
● High cost to deliver software
● Slow to cope up with changing requirements
Nelkinda Software Craft Pvt. Ltd.
Agile
● Based on short feedback cycle
● Best to use when the requirements are changing
● Deliver working software frequently
Nelkinda Software Craft Pvt. Ltd.
Nelkinda Software Craft Pvt. Ltd.
How Things Worked Before DevOps?
● Separate teams - Requirement gathering, Development, QA, Operations -
Networking, Database
● Every team has separate goals
● Independent team adds more bottlenecks
● Specific to team & individuals
Nelkinda Software Craft Pvt. Ltd.
Nelkinda Software Craft Pvt. Ltd.
Idea / Feature /
Bug Fix
Production
Deploy
Get Feedback
Build QA Integration
Tester
User
Tester
Operations
Nelkinda Software Craft Pvt. Ltd.
DevOps
● Shares many characteristics with the Agile. DevOps is slice of Agile
○ Individuals and interactions over processes and tools
○ Working software over comprehensive documentation
○ Customer collaboration over contract negotiation
○ Responding to change over following a plan
● Emerged from “Agile Infrastructure” or “Agile Operations”
● Cultural movement for entire organization
● XP practices
● To avoid Silos
● Integrates multiple technologies, platforms, and tools
● Devops practices include CI, CD, infrastructure as a code, configuration
management.
Nelkinda Software Craft Pvt. Ltd.
DevOps Lifecycle
● Continuous Development
● Continuous Testing
● Continuous Design Improvement
● Continuous Integration
● Continuous Deployment
● Continuous Monitoring
Nelkinda Software Craft Pvt. Ltd.
Continuous Development
● Version control software - Git, SVN
● Build tools - Ant, Maven, Gradle, make, SBT
Nelkinda Software Craft Pvt. Ltd.
Continuous Testing
Adopt processes in following areas to enable continuous testing
● Test environment provisioning and configuration
● Test data management
● Integration, functional, performance, and security testing
Nelkinda Software Craft Pvt. Ltd.
Continuous Testing
Tools - JUnit, Selenium, Cucumber, Appium
Nelkinda Software Craft Pvt. Ltd.
Continuous Design Improvement
● Refactoring is not a different phase, it’s part of development cycle
● Ensures better design and code quality
● Ensures the code still works with the help of continuous testing
● Ongoing effort to improve products, services, processes, and practices
Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier
to find and remove.”
— Martin Fowler
Nelkinda Software Craft Pvt. Ltd.
What is Continuous Integration?
● Integrating/Merging of code
● Integrating module, component, application, environment
Nelkinda Software Craft Pvt. Ltd.
Process Before Continuous Integration
Developers Source Code
Repository
Integration
Test Server
Production
Server
Notify Bugs
Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
Developers Source Code
Repository
Production
Server
Build Test Deploy
CI server
Fetch Changes
Notify (Success / failure)
Feedback
Nelkinda Software Craft Pvt. Ltd.
Continuous Integration Practices
Continuous Integration (CI) is a development practice. Practices like:
● Maintain a single source repository
● Automate the build
● Make your build self-testing
● Every commit should build on an integration machine
● Keep the build fast
● Perform testing on production like server i.e. a clone of the production
environment
● Anyone should be able to get the latest executable version
Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
● Integrating the code into shared repositories several times a day
● Each integration verified by automated build and automated test
● Quick detection of errors = Fast feedback
● Less rework
● Reduced debug time
● Exposes known & unknown risks
● Tools like Jenkins are used
Nelkinda Software Craft Pvt. Ltd.
CI - CD Server Benefits
● Serialises / Sequentialize workflow
● Reproducible build environment
● Trigger build without having your machine occupied
● Keeps track of the builds
Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
Tool - Jenkins
+ Build Tools
+ Test Tools
Nelkinda Software Craft Pvt. Ltd.
Continuous Delivery / Deployment
"Essentially, it is the practice of releasing every good build to users”
— Jez Humble, author of Continuous Delivery
“Continuous Delivery doesn’t mean every change is deployed to production ASAP.
It means every change is proven to be deployable at any time”
— Carl Caum
Nelkinda Software Craft Pvt. Ltd.
Continuous Delivery / Deployment
● Continuous Delivery is extension of Continuous Integration
● Ensure that code is always in a deployable state
● Continuous Deployment is extension of Continuous Delivery
● The code is automatically deployed in the production environment
Nelkinda Software Craft Pvt. Ltd.
Continuous Deployment
Tool - Packer, Terraform; Kubernetes, Docker
Nelkinda Software Craft Pvt. Ltd.
Continuous Monitoring
Tools: NewRelic, Nagios, Splunk, Logstash
Nelkinda Software Craft Pvt. Ltd.
Misconceptions & Anti pattern
● Devops Only Involves Developers and System Administrators
● DevOps is a separate team
● Devops Is a Job Title/New Role
● Devops Means Doing All the Work with Half the People
● DevOps Is All About Tools
● Devops Is About Automation
Nelkinda Software Craft Pvt. Ltd.
DevOps Culture & Values
● Culture
● Collaboration & Communication
● Trust
○ “Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.” - Agile Manifesto
● Decreasing Silos
● Feedback Loops
● Lean
● DevOps Tools
● Automation
● Measurement
● Continuous Improvement
Nelkinda Software Craft Pvt. Ltd.
Thank You!!!

DevOps overview 2019-04-13 Nelkinda April Meetup

  • 1.
    Nelkinda Software CraftPvt. Ltd. DevOps Overview 2019-04-13 @ShwetaSadawarte @nelkinda @Tavisca #devops #agile
  • 2.
    Nelkinda Software CraftPvt. Ltd. Agenda ● Overview ● History ● What is DevOps ● DevOps Lifecycle ● DevOps Misconceptions and Anti-Patterns ● DevOps Culture
  • 3.
    Nelkinda Software CraftPvt. Ltd. DevOps “DevOps (a clipped compound of “development” and “operations”) is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). The main characteristics of the DevOps movement are to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management.” — Wikipedia
  • 4.
    Nelkinda Software CraftPvt. Ltd. “DevOps is not a goal, but a never-ending process of continual improvement” — Jez Humble “You Build It, You Run It” — Werner Voegls
  • 5.
    Nelkinda Software CraftPvt. Ltd. “Complete definition of DEVOPS: the developers have to wear the beeper” — Ron Jeffries
  • 6.
    Nelkinda Software CraftPvt. Ltd. History ● Waterfall ● Agile / DevOps
  • 7.
    Nelkinda Software CraftPvt. Ltd. Requirement Gathering Design Integration and Test Maintenance Built Deployment
  • 8.
    Nelkinda Software CraftPvt. Ltd. Waterfall ● Sequential progress of process ● Requirements are fixed & clear ● High cost to deliver software ● Slow to cope up with changing requirements
  • 9.
    Nelkinda Software CraftPvt. Ltd. Agile ● Based on short feedback cycle ● Best to use when the requirements are changing ● Deliver working software frequently
  • 10.
  • 11.
    Nelkinda Software CraftPvt. Ltd. How Things Worked Before DevOps? ● Separate teams - Requirement gathering, Development, QA, Operations - Networking, Database ● Every team has separate goals ● Independent team adds more bottlenecks ● Specific to team & individuals
  • 12.
  • 13.
    Nelkinda Software CraftPvt. Ltd. Idea / Feature / Bug Fix Production Deploy Get Feedback Build QA Integration Tester User Tester Operations
  • 14.
    Nelkinda Software CraftPvt. Ltd. DevOps ● Shares many characteristics with the Agile. DevOps is slice of Agile ○ Individuals and interactions over processes and tools ○ Working software over comprehensive documentation ○ Customer collaboration over contract negotiation ○ Responding to change over following a plan ● Emerged from “Agile Infrastructure” or “Agile Operations” ● Cultural movement for entire organization ● XP practices ● To avoid Silos ● Integrates multiple technologies, platforms, and tools ● Devops practices include CI, CD, infrastructure as a code, configuration management.
  • 15.
    Nelkinda Software CraftPvt. Ltd. DevOps Lifecycle ● Continuous Development ● Continuous Testing ● Continuous Design Improvement ● Continuous Integration ● Continuous Deployment ● Continuous Monitoring
  • 16.
    Nelkinda Software CraftPvt. Ltd. Continuous Development ● Version control software - Git, SVN ● Build tools - Ant, Maven, Gradle, make, SBT
  • 17.
    Nelkinda Software CraftPvt. Ltd. Continuous Testing Adopt processes in following areas to enable continuous testing ● Test environment provisioning and configuration ● Test data management ● Integration, functional, performance, and security testing
  • 18.
    Nelkinda Software CraftPvt. Ltd. Continuous Testing Tools - JUnit, Selenium, Cucumber, Appium
  • 19.
    Nelkinda Software CraftPvt. Ltd. Continuous Design Improvement ● Refactoring is not a different phase, it’s part of development cycle ● Ensures better design and code quality ● Ensures the code still works with the help of continuous testing ● Ongoing effort to improve products, services, processes, and practices
  • 20.
    Nelkinda Software CraftPvt. Ltd. Continuous Integration “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” — Martin Fowler
  • 21.
    Nelkinda Software CraftPvt. Ltd. What is Continuous Integration? ● Integrating/Merging of code ● Integrating module, component, application, environment
  • 22.
    Nelkinda Software CraftPvt. Ltd. Process Before Continuous Integration Developers Source Code Repository Integration Test Server Production Server Notify Bugs
  • 23.
    Nelkinda Software CraftPvt. Ltd. Continuous Integration Developers Source Code Repository Production Server Build Test Deploy CI server Fetch Changes Notify (Success / failure) Feedback
  • 24.
    Nelkinda Software CraftPvt. Ltd. Continuous Integration Practices Continuous Integration (CI) is a development practice. Practices like: ● Maintain a single source repository ● Automate the build ● Make your build self-testing ● Every commit should build on an integration machine ● Keep the build fast ● Perform testing on production like server i.e. a clone of the production environment ● Anyone should be able to get the latest executable version
  • 25.
    Nelkinda Software CraftPvt. Ltd. Continuous Integration ● Integrating the code into shared repositories several times a day ● Each integration verified by automated build and automated test ● Quick detection of errors = Fast feedback ● Less rework ● Reduced debug time ● Exposes known & unknown risks ● Tools like Jenkins are used
  • 26.
    Nelkinda Software CraftPvt. Ltd. CI - CD Server Benefits ● Serialises / Sequentialize workflow ● Reproducible build environment ● Trigger build without having your machine occupied ● Keeps track of the builds
  • 27.
    Nelkinda Software CraftPvt. Ltd. Continuous Integration Tool - Jenkins + Build Tools + Test Tools
  • 28.
    Nelkinda Software CraftPvt. Ltd. Continuous Delivery / Deployment "Essentially, it is the practice of releasing every good build to users” — Jez Humble, author of Continuous Delivery “Continuous Delivery doesn’t mean every change is deployed to production ASAP. It means every change is proven to be deployable at any time” — Carl Caum
  • 29.
    Nelkinda Software CraftPvt. Ltd. Continuous Delivery / Deployment ● Continuous Delivery is extension of Continuous Integration ● Ensure that code is always in a deployable state ● Continuous Deployment is extension of Continuous Delivery ● The code is automatically deployed in the production environment
  • 30.
    Nelkinda Software CraftPvt. Ltd. Continuous Deployment Tool - Packer, Terraform; Kubernetes, Docker
  • 31.
    Nelkinda Software CraftPvt. Ltd. Continuous Monitoring Tools: NewRelic, Nagios, Splunk, Logstash
  • 32.
    Nelkinda Software CraftPvt. Ltd. Misconceptions & Anti pattern ● Devops Only Involves Developers and System Administrators ● DevOps is a separate team ● Devops Is a Job Title/New Role ● Devops Means Doing All the Work with Half the People ● DevOps Is All About Tools ● Devops Is About Automation
  • 33.
    Nelkinda Software CraftPvt. Ltd. DevOps Culture & Values ● Culture ● Collaboration & Communication ● Trust ○ “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.” - Agile Manifesto ● Decreasing Silos ● Feedback Loops ● Lean ● DevOps Tools ● Automation ● Measurement ● Continuous Improvement
  • 34.
    Nelkinda Software CraftPvt. Ltd. Thank You!!!