Вы находитесь на странице: 1из 32

Feb,2020

Agenda

• DEVOPS overview

• Responsibilities and Skills required for Devops professional

• DEVOPS CALMS model

• CICD

• Technologies and Tools used in DEVOPS

•Q&A
DevOps Overview
• In simple words the DevOps means ‘It is a combination of software
development and operations’.

• It came to emphasize the communication, collaboration, and cohesion


between the traditionally separated development and IT operations
teams.

• DevOps helps an organization deploy software more frequently, while


maintaining service stability and gaining the speed necessary for more
innovation.

• DevOps is the practice of operations and development engineers


participating together in the entire service lifecycle, from design through
the development process to production support.
DevOps Overview Cont.
DevOps Overview Cont.
• Agile and DevOps are similar, but, while agile software development
represents a change in thinking and practice (that should lead to
organizational change), DevOps places more emphasis on
implementing organizational change to achieve its goals.

• The need for DevOps was born from the increasing popularity of agile
software development, as that tends to lead to an increased number of
releases.

• One goal of DevOps is to establish an environment where releasing


more reliable applications, faster and more frequently, can occur.
DevOps Overview Cont.
Roles, Responsibilities,
and Skills of a DevOps
Engineer
• DevOps Engineers are responsible for supporting the users
of the infrastructure they develop.
• Proactive Monitoring of the Production Environment
• Strong Communication and Collaboration Skills.
• Understanding of Major DevOps Tools.
• Command of Automation Technologies and Tools.
• Coding and Scripting Skills.
• Cloud Skills.
• Testing Skills.
Devops CALMS model

• Culture: focuses on people and embraces change and


experimentation.
• Automation: is continuous delivery with infrastructure as
code.
• Lean: focuses on producing value for the end-user utilizing
small batches.
• Measurement: measures everything while simultaneously
showing the improvements.
• Sharing: open information sharing using collaboration and
communication.
CICD
• Continuous integration (CI) is a software engineering
practice where members of a team integrate their work with
increasing frequency. In keeping with CI practice, teams
strive to integrate at least daily and even hourly,
approaching integration that occurs continuously.
• Historically, integration has been a costly engineering
activity. So, to avoid thrash, CI emphasizes automation
tools that drive build and test, ultimately focusing on
achieving a software-defined life cycle. When CI is
successful, build and integration effort drops, and teams
can detect integration errors as quickly as practical.
CICD
• Continuous delivery (CD) is to packaging and deployment what CI is to
build and test. Teams practicing CD can build, configure, and package
software and orchestrate its deployment in such a way that it can be
released to production in a software-defined manner (low cost, high
automation) at any time.

• High-functioning CI/CD practices directly facilitate agile development


because software change reaches production more frequently. As a
result, customers have more opportunities to experience and provide
feedback on change.
CICD Solution
Problem statements:
• Difficulty in manually managing code review, code build, artifact storage, artifact
deployment and test process for multiple projects in an Agile framework
• Real time status of SDLC

Build Deploy
• Code • Upload the • Triggers test
analysis • Compile artifact • Download automation
• Code • Artifact artifact
coverage Versioning • Deploy to DIT
Code Artifact Sanity
Review Archiving Testing

Solution offering:
• CICD process automates code review, build, artifact storage, auto deployment to DIT along with
sanity testing.
• Email notification of project build status to stake holders.
• Dashboard for code bugs/vulnerabilities/coverage/duplication etc.
• Automatic and on demand deployment of artifact into the target Env. such as
QA/E2E/UAT/PROD
CICD Solution flow
2 notifies 3 triggers SQ

4 build

1 code push 5

Developer
7 pull artifact

8 deploys to DIT
Jenkins
• The "leading open source automation server," Jenkins was
forked from Hudson and offers many of the same
capabilities.
• It boasts easy installation and configuration, hundreds of
plugins, extensibility and a distributed architecture that
allows it to speed the process of testing.
• It has a very active user community with lots of scheduled
events that offer opportunities to learn more about the
software.
• There is also plenty of documentation on the website,
including a blog that is updated regularly.
• Jenkins Pipeline is a suite of plugins which supports
implementing and integrating continuous delivery pipelines
into Jenkins.
• Pipeline provides an extensible set of tools for modeling
simple-to-complex delivery pipelines "as code".
Jenkins…
Jenkins slave container
▪ Docker is at the forefront of the new trend toward
containerization.
▪ It packages together everything that an application
needs to run—the code, the runtime, system tools,
libraries, etc.—so that applications will operate the
same way no matter where they are deployed.
▪ Containers are more lightweight than virtual
machines, and they also offer some security
benefits.
▪ A recent survey conducted by Docker found that
80 percent of enterprises surveyed plan their
DevOps implementations around Docker.
▪ Docker implements a high-level API to provide
lightweight containers that run processes in
isolation.
Jenkins slave container….
Jenkins slave pod

• Jenkins slave runs in a pod.


• On-demand orchestration of
Jenkins slave.
• Better sense of security through
Kubernetes network plugin
policies (calio).
Jenkins slave pod…
Jfrog artifactory
• JFrog Artifactory is a tool designed to store the
binary output of the build process for use in
distribution and deployment.
• Artifactory provides support for a number of
package formats such as Maven, Debian,
NPM, Helm, Python, and Docker.
• JFrog offers high availability, replication,
disaster recovery, scalability, and works with
many on-prem and cloud storage offerings.
• Full integration with your build ecosystem.
• Artifactory provides security and access
control at several levels.
• Artifactory supports replication of your
repositories to another instance of Artifactory
which is outside of your local network.
Jfrog artifactory…
GIT
• In recent years, Git has become incredibly
popular for source code management, particularly
as the site GitHub has become more popular for
hosting open source projects.
• It stands out from other version control
management for the ease with which it handles
branching and merging.
• It's also very easy to use with distributed
development teams, and it offers fast
performance.
• Many DevOps teams use it to manage the source
code for their applications.
• Its list of well-known users includes many of the
biggest firms in the technology industry, such as
Google, Facebook, Microsoft, Twitter, LinkedIn,
Netflix, the Linux kernel and many others.
GIT…
Gerrit
• Gerrit is a web based code review tool which
is integrated with Git and built on top of Git
version control system. It allows to merge
changes to Git repository when you are done
with the code reviews.
• You can work with Gerrit, if you have regular
Git client; no need to install any Gerrit client.
• Gerrit can be used as an intermediate between
developers and git repositories.
• Gerrit is a free and an open source Git version
control system.
• Gerrit provides access control for Git
repositories and web frontend for code
review.
Gerrit….
Linux
• It is an open source OS which gives a great
advantage to the programmers as they can
design their own custom operating systems.
• Linux is completely free and users do not need
to pay for anything.
• It gives you a lot of option of programs having
some different features so you can choose
according to your need.
• More reliable as Unix-like systems are known
for running for years without a single failure or
having a situation that demands a restart.
• High security as source code is open source and
thousands developers have gone through the
code.
Shell scripting
▪ A shell script is a text file that contains a sequence
of commands for a UNIX-based operating system.
▪ Shell scripts contain ASCII text and are written
using a text editor, word processor or graphical
user interface (GUI).
▪ shell script can contain parameters, comments and
subcommands.
▪ A few examples of applications shell scripts can be
used for include:
✓Automating the code compiling process.
✓Running a program or creating a program environment.
✓Completing batch.
✓Manipulating files.
✓Linking existing programs together.
✓Executing routine backups.
✓Monitoring a system.
python
• Primary language used for automation by
DevOps community.
• Comes installed by default in many OS flavors
of Linux.
• It is available in scripting form makes it easy
to learn.
• Easy to debug approach.
• Various open source tool written in python,
Open stack, Ansible, Salt stack, Supervisor,
Super visor.
• Multi use language, used in Artificial
Intelligence and Machine learning solutions.
Ansible
• Owned by Red Hat, Ansible automates many common IT
operations tasks, such as cloud provisioning,
configuration management and application deployment.
• It integrates with a lot of other popular DevOps tools,
including Git, JIRA, Jenkins and many others.
• The software has been downloaded more than 5 million
times, and it has more than sixteen thousand stars on
GitHub.
• The free open source version is available on GitHub, and
Red Hat offers three paid versions—self-support,
standard and premium with prices that vary based on the
number of nodes in production and the level of support
needed.
• Ansible has two types of servers: controlling machines
and nodes. First, there is a single controlling machine
which is where orchestration begins.
Ansible…
Cloud computing
• Cloud computing is the delivery of on-
demand computing services -- from
applications to storage and processing
power -- typically over the internet and on
a pay-as-you-go basis.
• Avoid the upfront cost and complexity of
owning and maintaining their own IT
infrastructure.
• The array of available cloud computing
services is vast, but most fall into one of
the following categories.
• IAAS
• PASS
• FAAS
Cloud computing…
Q&A

Вам также может понравиться