DevOps Essentials
Anand Rao Nednur
www.thecloudmentor.com 1
Welcome to the deep dive into Azure
www.thecloudmentor.com 2
Expectations
Ask questions
Be Vocal
Assist your colleagues
Research and do labs as much as possible.
www.thecloudmentor.com 3
What is DevOps
A Cultural Movement
It's by practitioners, for practitioners
DevOps is not a set of tools
DevOps is also not a standard
DevOps is a culture of collaboration between developers and system operations
www.thecloudmentor.com 4
Scrum Snippets
Scrum is a process framework
Enables environment for teams to work together
Is based on 3 pillars
Transparency – Parity
Inspection – Based on Artefacts
Adaptation – Adjustments to minimize deviations
Sprint Based – Set of activities to be completed with scheduled duration.
Sprint Durations not exceeding 4 weeks
Ceremonies Driven
www.thecloudmentor.com 5
6
Scrum – Roles & Process
Ceremonies
o Product Owner is part of Business or is Customer Benefits of Scrum
o Scrum Master is Facilitator or Mentor or Guide o Increased ability to manage changing priorities
o Development team o Better visibility into projects
o Scrum Team – Collaboration of all roles o More alignment between business and IT
o Faster time to market
www.thecloudmentor.com
A Brief History of DevOps
DevOps grew out of Agile software development.
Initiated by Patrick Debois
Began as a small niche movement and is now a de facto.
www.thecloudmentor.com 7
The Goals of DevOps
Operation teams needs stability and dev team needs speed
In DevOps Team, both share the same goals
Shared measurements
Focus on Time to Market
Immediate recovery from failures
Both teams care about speed and stability.
www.thecloudmentor.com 8
A Story of DevOps vs. Traditional Silos
Silos are separated teams
QA team identifies the bugs, Dev team fixes them and Ops team pushes the code to
prod.
All groups claim – “its not my responsibility”
Need for DevOps Monitoring
End Result - Happy customers, Happy teams.
www.thecloudmentor.com 9
Build Automation
automating the process of preparing code for deployment to a live environment
it looks like running a command-line tool that builds code using configuration files or scripts
build automation is more reliable because it's automated -> Few problems
www.thecloudmentor.com 10
Continuous Integration
The practice of frequently merging code changes done by developers
That it allows you to detect certain types of bugs very, very early
The developers are notified and fix bugs immediately
Encourages good coding practices
www.thecloudmentor.com 11
Continuous Delivery and Continuous Deployment
Continuous delivery - the practice of continuously maintaining code in a deployable state
Continuous deployment - the practice of frequently deploying small code changes to
production
www.thecloudmentor.com 12
CI – CD Pipeline
13
Source Code CI CD
Management
Build Release Non-Prod
• Compile App • Deploy App
GIT • Unit Tests • Integration Tests
GITHUB • Static Code Analysis • UI & QA Tests Manual push
Azure Repo • Generate SQL Scripts • Deploy SQL Scripts to production
• Testing the Scripts • Test SQL Results
Automated
• Check the Infra Config • Deploy infra config Files
Deployment
Production
Comprehensive Configuration Management
----- Source Code Repository — Used primarily during the development
----- Developers phase.
----- DBA (SQL Scripts) Artifact Repository — Used during the development and operations
phases.
----- IT/Operations Team (terraform) Configuration Management Database — Used during the
development and operations phases.
www.thecloudmentor.com
Infrastructure as Code
managing and provisioning infrastructure using code and automation
we use automation and code to create and change things
you get reusability when you use Infrastructure as Code
your infrastructure and any changes made to it are documented
helps you simplify the complexity.
www.thecloudmentor.com 14
Configuration Management
Maintaining and changing the state of pieces of infrastructure in a consistent,
maintainable and stable way
Changes are a normal part of day-to-day life in the IT industry
Configuration management is a way of minimizing configuration drift
Configuration drift is the accumulation of all of the small changes
www.thecloudmentor.com 15
Orchestration
Orchestration is automation that supports processes and workflows
Self-healing environments that are capable of handling large changes in load
www.thecloudmentor.com 16
Monitoring
Collection and presentation of data about the performance and stability of services and
infrastructure.
Monitoring tools collect data about things such as memory usage, cpu, disk i/o in usage of
other resource is over time.
Real time notifications
PostMortem Analysis
www.thecloudmentor.com 17
Microservices
microservices are a particular software architecture
A microservice architecture breaks an application up into a collection of small, loosely
coupled services.
small pieces broken up into their own individually executable portions
www.thecloudmentor.com 18
Monolithic vs Modular vs Microservices
Modular Catalog/MS1 Oracle DB
Cons of Monolithic
Updates C# & ASP.NET
Catalog/Mod1 DB
Team Management
Orders/Mod2 Deployment HTTP/S & Rest API
DB Maintainability
Payments/Mod3
Orders/MS2 SQL Server
JAVA/SpringBoot
Advantages of Microservices
App
Multi Repository HTTP/S & Rest API & Queues
Catalog Independent Deployment
Multi DB Engines
Orders DB Payment/MS2 Mango DB
Payment Shorter cycle time
Python/Pyspark
Easier technology selection
Monolithic
www.thecloudmentor.com 19
Introduction to DevOps Tools
DevOps has given rise to a large variety of tools in order to support the goals of DevOps.
https://xebialabs.com/periodic-table-of-devops-tools/
There's not a single set of tools that works for everyone
www.thecloudmentor.com 20
Tools for Build Automation and
Continuous Integration
Tools for build automation generally depend on the programming languages and
frameworks that have been used to create the code.
Build Automation Tools - Maven , Gradle, NPM , Grunt, Gulp ,Packer
CI Tools – Jenkins , Travis CI , Bamboo
www.thecloudmentor.com 21
Tools for Configuration Management
Configuration management tools are a great way to implement infrastructure as code.
Ansible - Opensource
Puppet – puppet specific language (Puppet DSL)
Chef – chef specific language
Salt – minions , Master.YAML
www.thecloudmentor.com 22
Tools for Virtualization and
Containerization
Virtualization means managing resources by creating virtual rather than physical
machines.
VMWare ESX and ESXi, Microsoft Hyper-V, and Citrix XenServer.
Containerization is in some ways the next step beyond virtualization.
www.thecloudmentor.com 23
Tools for Monitoring
SenSu
NewRelic
Nagios
APM tool – App Dynamics
Aggregation and analytics
Kibana
Elastic Stack
www.thecloudmentor.com 24
Tools for Orchestration
Docker Swarm
Kubernetes
Zookeeper
Terraform
www.thecloudmentor.com 25
DevOps Infinite Cycle
26
www.thecloudmentor.com
DevOps and the Cloud
DevOps and the Cloud, although they're closely related, they are not the same thing.
Cloud Services can also be a great tool for DevOps.
www.thecloudmentor.com 27
DevOps and Microsoft Azure
Azure offers support for continuous integration, continuous delivery and continuous
deployment through a variety of features.
Support for Jenkins
Azure Container Registry
Azure Container Services
Azure DevOps Pipeline
Azure Webapps
Azure Application Insights
Azure Functions
www.thecloudmentor.com 28
Thank You
www.thecloudmentor.com 29