DevOps Concepts
Professional-Guru.com
Agenda • Background – Traditional and new Age development methodologies.
• Understand basics of DevOps – concept • DevOps building blocks – tools and technologies 1. Introduction to industry leading DevOps tools. • DevOps Benefits • Best practices to adopt DevOps 1. Dos and Don’ts of DevOps
Professional-Guru.com
Who should Opt - some Prerequisites ●Target Audience: •
Everyone linked with Information technology, The Leadership team, software developers, Operations support team, etc.
●Good to have: •
Basic understanding of Application development methodologies – waterfall, Agile and similar.
•
Basic understanding of Testing methods- Unit testing, functional testing, UAT etc.
•
Network management and network security basics.
•
Infrastructure, environment management basics.
•
Coding standards, code build basics.
Professional-Guru.com
What is DevOps? • DevOps Culture • Agile and DevOps – hand in hand • DevOps building blocks: •Code •Build •Test
Communication
Collaboration
Integration
Automation
Development Team
•Packaging •Release management •Configuration management •Application and Infrastructure monitoring Professional-Guru.com
Operations Team
Why DevOps ? • Development Vs Operations: Break down barriers enabling
o
• Trust and shared ownership • Encouraging collaboration • Accelerating innovation.
• Simplify & advocate “Agility” across the application life cycle management
• Measurable business benefits through integratable IT Process Management.
Professional-Guru.com
According to Forrester, As IT organizations struggle to deal with the changing IT and business landscapes, the concept of DevOps (development + operations = DevOps) has been singled out by many as the way in which infrastructure and operations (I&O) can better work with other IT silos to benefit the business. Getting DevOps right will address many of the issues enterprises consistently have with IT, such as applications failing to meet both functional and nonfunctional requirements, delivery delays, increased costs, and an inflexibility to change. Success will require mastering six steps ▪ Change your change management. ▪
Communicate more often with the app dev group to increase its knowledge about Operations.
▪
Consider app dev as “service dev.”
▪
Understand and manage the diversity of views on IT delivery.
▪
Integrate I&O’s mission statement with the business.
–Ref: Forrester Article “ Improving the Ops in DevOps”.
Deployment
Testing
Construction
Design
Analysis
Initiation
Traditional
Conception
Why DevOps
Increased Agility: To enable instant change deployment
Iteration 1
Iteration 2 DevOps – workflow automation
Professional-Guru.com
Deploy
Test
Code
Design
Requiremen ts
Deploy
Test
Code
Design
Agile
Requiremen ts
Deliverables
Increased Quality: To improve end user satisfaction Improve Innovation To increase innovation cycle Reduced Outages Less outages in production (about 80% outages are change related)
DevOps in business • Ever-changing business needs • Quick to market requirement 1. Tight delivery deadlines
2. “The code works on my machine” – blame game 3. Disconnect bet’n Development and Operations team.
Introduction of automation tools and DevOps processes
Cultural shift – initial resistance to change. Training and mentoring.
Win-Win situation Professional-Guru.com
How can we apply DevOps principles? Common goals of an enterprise DevOps practice
• Increased deployment frequency • Reduced lead time for changes • Faster recovery when problems occur • More robust and better integrated security • A “shift left” in quality – quality of code, testing, architecture, “deployability” and culture • Fast feedback loops and effective communication between teams and departments
Professional-Guru.com
Concepts Agile development
Code
Build
Test
Integrate
release
Deploy
Operate
Continuous Integration
Continuous Delivery Continuous Deployment DevOps
Continuous Integration • Centralized Build process • Check Quality of build • Feedback Code Quality
Continuous Delivery • • •
Centralized Build process Check Quality of build Deployable
Process Quality
Professional-Guru.com
Continuous Deployment
•
Centralized Build process • Check Quality • Deploy • Functional Test Quality
DevOps landscape DevOps is a term used to refer to a set of practices that emphasize the collaboration and communication of both ‘software developers’ and ‘Operations Support’ professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment, where building, testing, and releasing software can happen rapidly, frequently, and more reliably
Professional-Guru.com
Industry leading DevOps tools • • • • • • •
Version Control system : SVN, GIT, TFS Code quality and test validation: Sonar, IntelliJ Build automation: Maven Continuous Integration and delivery: Jenkins, TeamCity, Bamboo, TFS Configuration management: Chef, Puppet, Ansible, Docker Application performance and monitoring (APM): Nagios, Zabbix Log analysis: Logstash, Elasticsearch Professional-Guru.com