Date post: | 16-Apr-2017 |
Category: |
Technology |
Upload: | deepu-s-nath |
View: | 261 times |
Download: | 2 times |
Introduction to DevOpsPriya Sivakumar
May 2016
Guess Who?• 15000+ developers in 40+ offices• 4000+ projects under active development• 5500+ submissions per day on average• Development on one branch – Submissions on Head• 20+ sustained code changes per minute with 60+ peaks
• 50% of code changes monthly
• 75+ million test cases run per day
Guess Who?• Pushes changes to production everyday
• 1 billion+ active users at any point in time• 13+ Million Lines of Code• 15000+ Commits per month
• Most changes have impact across platforms• Changes from submission to production gets pushed out in less than 60
minutes
• Updates to production made at full live capacity – No down time
A Real Life Story..
DevOps
Continuous innovation seamlessly released to production multiple times
a week without impacting the consumers
What is DevOps?
DevOps aims at establishing a culture and environment where building, testing and releasing software, can happen rapidly, frequently, and more reliably
DevOps And Agile
Are they the same?
Waterfall And Agile
Why Iterations and Early Feedbacks?
Incremental Development
SLICE AS YOU EAT
Potentially Shippable Product in Each Iteration
Agile Development
Agile Development
Developer and QA work Hand-in-Hand to bring out the potentially shippable product, in each iteration Dev QA
Done Means “Tested”
Is Agile Effective?
Then Why DevOps?
If Agile is successful,
Potentially shippable product is being produced in each agile iteration1. Then why not SHIP IT to the customer?2. What more needed for a successful
deployment?
Benefits of Shipping As You DevelopEarly Customer FeedbacksEarly Defect DetectionReduced CostsIncreased Release VelocityReduced Deployment Failure
Challenges of Operations Team
• How do you provision virtual machines?• How do you configure network devices and servers?• How do you deploy applications?• How do you collect and aggregate logs?• How do you monitor services?• How do you alert and remediate when there are
problems?
Increased Dev – Ops Collaboration
• Involve Operations earlier to define operational functionality
Given operation X fails, Then the alarm operation-x:failed will be raised• Developers take ownership of code in production
No More – “It worked in my local box”
DevOpsDeveloper, QA and Operations work Hand-in-Hand to bring frequent releases to the customer
Dev
QAOpsDone Means “In Production”
Let’s have a Break?
DevOpsDeveloper, QA and Operations work Hand-in-Hand to bring frequent releases to the customer
Dev
QAOpsDone Means “In Production”
What does it take?
Transition to DevOps
Potential Risks?
Dissatisfied Customer
Cannot Compromise Quality for Speed
CONTINUOUSDevOps – It is all about
Doing Things Continuously
DevOps Framework
Tools and FrameworksFramework Elements
Functionality Examples
Software Version Management
Software configuration control - well-designed, flexible repository structure
Subversion, Git, Mercurial, Perforce, and ClearCase
CI/CD Orchestration
Executes scheduled and event-drivenjobs
Jenkins
Artifacts Repository
Organizedstore of artifacts related to the product.
Zephyr, HPQC
Continuous Delivery
Minimize Downtime, Keep it Simple Ansible, Docker
AUTOMATION is the MANTRA
“Agile without Automation is Fragile”
Typical Usage of SVM
Time between merges
Difficulty of merging Exponential
since changes compound on each other
Trunk Based Development
Taming Software Development
TIP OF THE TRUNK DEVELOPMENT
Establish a Build and Test InfrastructureSIMPLE
• Developers do not need to know the details
• End-to-End Enhanced Velocity
• Quality feedback to developers
Define Testing Levels• Level 1 (As Part of CI)
• Static Analysis, Sanity Functional Test, Unit test & Test coverage
• Level 2 (Nightly Integration and Regression)• End-to-End Feature Testing
• Level 3 (Weekly or Release)• Interoperability tests, Regulatory tests, Performance benchmarking
DO NOT WAIT FOR PERFECTION
Have the infrastructure in place to detect and correct issues ASAP
Transition – Plan it out!
Start with baby steps based on your needs and already in-place systems, procedures and organisational culture. Introduction of such a big-impact change needs to be carefully planned and implemented.
DevOps is not just…
Eliminate "DevOps is tools" thinking
Embrace DevOps as a “thought framework”