Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Enhance your Agility with DevOps
1. View DevOps course details at www.edureka.co/devops
Enhance Your Agility with DevOps
2. Slide 2 www.edureka.co/devops
Objectives
At the end of this module, you will be able to understand -
DevOps and its importance
DevOps Life cycle
Configuration Management Using Puppet
Demo using Puppet to install Apache web server.
Continuous Integration Using Jenkins
Demo using Jenkins
3. Slide 3 www.edureka.co/devops
What is DevOps
DevOps is a mindset that enables communication, collaboration and integration between
Software developers, Quality Engineers and Information Technology ( Operations ) professionals to enable rapid
evolution of products or services.
4. Slide 4 www.edureka.co/devops
Development & Operation (DevOps)
“Dev” is used as a shorthand for developers in
particular, but in practice it is even wider and it
means that “all the people involved in
developing the product,” that include the
product, QA and other disciplines.
“Ops” is a blanket term for systems
engineers/Administrators, Release engineers,
DBAs, Network engineers, Security
professionals and various other sub-disciplines
and job titles”
6. Slide 6 www.edureka.co/devops
Roles of Developers :
Develop/modify applications
Try new technologies
Roles of Operations :
Build, Deploy and release
Performance and availability
Create or enhance services
Development & Operations
7. Slide 7Slide 7Slide 7 www.edureka.co/devops
Why DevOps?
Customers Requirements
Dev and
Testing Team
Operations
Gap Between
Developers and
Operations
8. Slide 8Slide 8Slide 8 www.edureka.co/devops
Why DevOps?
Development
Operations
Change
» Developers introduce changes
» They try to implement every new
techniques introduced
» Change is the enemy for Operations
» Changes can lead to instability
9. Slide 9Slide 9Slide 9 www.edureka.co/devops
Dev Tools Ops Tools
» Difficult to integrate tools
» Less interest in learning each others tools
» Different implementation of similar tools
Why DevOps?
10. Slide 10Slide 10Slide 10 www.edureka.co/devops
During Deployment
Sends out artifacts based on
requirements
Manually hacks the scripts received and
changes the config files to reflect changes
in production which could potentially lead
to an issue.
Development Operations
Why DevOps?
11. Slide 11Slide 11Slide 11 www.edureka.co/devops
All the artifacts are fine, the error
is because of some other issue.
QA was given wrong setup.
Developer gave faulty artifacts
Development
Operations
Day 1: Loss of Work
Why DevOps?
12. Slide 12Slide 12Slide 12 www.edureka.co/devops
After deployment, QA sees some
anomalies and raises defects
Day 3: After Deployment
Operations
Developer realizes that correct
DB was not deployed
Development
Why DevOps?
13. Slide 13 www.edureka.co/devops
DevOps as a Solution
Instead of seeing these two groups as silos who pass things along but don’t really work together, DevOps
recognizes the interdependencies of software development and IT operations and helps an organization to produce
software and IT services more rapidly, with frequent iterations.
DevOps bridges the gap between agile software development and operations
14. Slide 14 www.edureka.co/devops
DevOps Skills
DevOps Tools – Ability to administer and customize them
Scripting/Automation Skills – Demonstrates the traditional scripting skills to IT operations
Coding Skill – Should possess developer skills in using automation
Process re-engineering Skills – Reflects the holistic view of IT and development as a single system, instead
of two different functions
Skills Products
Linux/Unix Commands & Administration
Shell Scripting Bash, Sed/Awk
Coding Perl, Python, Ruby
Configuration Management Puppet, SaltStack, Chef
Bare Metal Configuration Cobbler, Foreman, PXE, DHCP, DNS
DevOps Skill Matrix
16. Slide 16 www.edureka.co/devops
Provisioning Configuration Integration
Load Balancer
WebServer WebServer
DB Master
DB Slave DB Slave
Load Balancer
WebServer WebServer
DB Master
DB Slave DB Slave
DevOps Life Cycle
17. Slide 17 www.edureka.co/devops
DevOps Tools
Tools for DevOps can be categorized based on the layer of Automation you choose
Each layer has its own tools to build Automation
Infrastructure Automation 1. Cobbler
2. Foreman
3. Crowbar
Configuration Management 1. Puppet
2. SaltStack
3. Chef
Continuous Integration/Deployment 1. Jenkins
2. SVN, Git, Perforce
3. Ant, Maven
Monitoring 1. Nagios, NewRelic, Sensu, Zabbix
2. Custom Tools
20. Slide 20 www.edureka.co/devops
Work of a System administrator:
» Install servers
» configure them
» maintain them
» Update the configuration periodically
Why Puppet?
22. Slide 22 www.edureka.co/devops
Puppet is a configuration management tool that is used for deploying, configuring, managing servers.
Features:
Why Puppet?
It controls all the steps, right from the bootstrapping to the end of Server life
Can define configuration at the node level
Can group them according to roles
Example: WebSevers, DB Servers.
Maintains consistency across nodes
Example: if a change is done locally, it is rolled back to the original configuration
23. Slide 23 www.edureka.co/devops
Puppet works on the Master Server model
Puppet Master: This machine contains all the
configuration for different hosts. Puppet master
runs as a daemon on this master server.
Puppet Agent: Daemon which runs on each node
and talks to the master on a regular interval.
The connection between these two machines is
made in a secure encrypted channel with the help
of SSL
How Puppet Works?
24. Slide 24 www.edureka.co/devops
Following are the steps for Puppet configuration:
1. Clients connects to master and master identifies the configuration according to client type.
2. Master builds the Configuration that needs to be applied to a host, compiles it and makes it ready
3. Clients pull the Configuration and apply them on the respective nodes
Puppet Configuration
25. Slide 25 www.edureka.co/devops
Puppet works on the Master Server model
Puppet Master: This machine contains all the
configuration for different hosts. Puppet master
runs as a daemon on this master server.
Puppet Agent: Daemon which runs on each node
and talks to the master on a regular interval.
The connection between these two machines is
made in a secure encrypted channel with the help
of SSL
How Puppet Works?
26. Slide 26 www.edureka.co/devops
Following are the steps for Puppet configuration:
1. Clients connects to master and master identifies the configuration according to client type.
2. Master builds the Configuration that needs to be applied to a host, compiles it and makes it ready
3. Clients pull the Configuration and apply them on the respective nodes
Puppet Configuration
28. Slide 28 www.edureka.co/devops
“Continuous Integration is a software development practice where members of a team integrate their
work frequently, usually each person integrates at least daily - leading to multiple integrations per day.
Each integration is verified by an automated build (including test) to detect integration errors as quickly
as possible”
– Martin Fowler
Continuous Integration
29. Slide 29 www.edureka.co/devops
At a regular frequency (ideally at every commit), the system is:
Integrated
All changes up until that point are combined into the project
Built
The code is compiled into an executable or package
Tested
Automated test suites are run
Archived
Versioned and stored so it can be distributed as is, if desired
Deployed
Loaded onto a system where the developers can interact with it
Continuous Integration
31. Slide 31 www.edureka.co/devops
Jenkins provide continuous Integration services for software development. It’s container
is based on Tomcat and can work with various revision control systems like SVN, CVS,
Git, etc.
This originally started as Hudson and then after Oracle’s claim, the name Jenkins was
coined
It includes a feature-rich web user interface that provides the ability to trigger builds,
customize builds, manage resources, manage plugins, and many other features
Jenkins
32. Slide 32 www.edureka.co/devops
Builds can be started by:
» Commit in a version control system
» Scheduling via a cron-like mechanism
» Building when other builds have completed or by requesting a specific build URL
Jenkins (Contd.)