SOC CICD Introduction
SOC CICD Introduction
USING DevOps
1
R20-B.Tech-III/I
Common to IT, CSE, CSE (AI&ML)
Prepared by:
Ambarisha Malladi, Asst. Prof.,
Department of IT, Tirumala Engineering College (Autonomous)
(An ISO 9001:2015 Certified Institution, Accredited by NAAC with grade A+ & NBA)
Jonnalagadda (V), Narasaraopet-522601, AP, India
Course Outcomes
2
Both the customer and the software engineer have the same
view - the only really important work product is an
operational “software increment” that is delivered to the
customer on the appropriate commitment date.
If the agile team agrees that the process works, and the team
produces deliverable software increments that satisfy the
customer, you’ve done it right.
Extreme Programming (XP), the most widely used approach
to agile software development.
Agile Development (Cont)
12
Agile Development (Cont)
13
Micro services:
It is a well-planned approach that supports building single apps as a
package for small services.
All the services in these applications are capable of communicating
through well-defined interfaces.
It utilizes the lightweight mechanism which is mostly the HTTP-
oriented API.
Cloud Platforms
These enable IT to allocate resources within the cloud (virtual
environments) rather than on-premises.
As a result, users can get to resources with greater speed and
flexibility.
Fundamentals of DevOps Practice (Cont)
19
Virtualization
In the days before virtualization, servers were physical hardware, and
you needed to purchase a second if one wasn’t enough.
However, virtualization empowers teams to create virtual servers:
software developers can build virtual environments on current on-site
or cloud servers instead of investing in new hardware.
This eliminates a potential bottleneck for agile teams, while teams can
leverage automated provisioning to access essential resources within
minutes.
Fundamentals of DevOps Practice (Cont)
20
Version Control
With a team working together, version control is a crucial part of
accurate, efficient software development.
A version control system—such as Git—takes a snapshot of your files,
letting you permanently go back to any version at any time.
With a version control system, you can be confident you won’t run into
conflicts with the changes you’re working on.
Fundamentals of DevOps Practice (Cont)
21
Continuous integration:
Continuous integration is the process of automating builds and testing
that occur as the code is completed and committed to the system.
Once the code is committed, it follows an automated process that
provides validation—and then commits only tested and validated code
into the main source code, which is often referred to as the master
branch, main, or trunk.
Continuous integration automates this process, which leads to
significant efficiencies.
Any bugs are identified early on, prior to merging any code with the
master branch.
Fundamentals of DevOps Practice (Cont)
22
Continuous delivery:
Continuous delivery is the fundamental practice that occurs within
DevOps enabling the delivery of fast, reliable software.
While the process is similar to the overarching concept of DevOps,
continuous delivery is the framework where every component of code
is tested, validated, and committed as they are completed, resulting in
the ability to deliver software at any time.
Continuous integration is a process that is a component of continuous
delivery.
Fundamentals of DevOps Practice (Cont)
23
Infrastructure as code:
Provisioning and configuration of resources is a key part of
environment operations.
Through process automation and the use of tools that provide a
declarative definition of infrastructure—for example, text-based
definition files—teams can deploy and configure resources in a
reliable, repeatable way.
The text-based definition files can be managed as code with version
control, allowing for easy rollback, re-creation, and teardown of
complex environments.
Technologies such as Terraform or Ansible are common solutions for
the implementation of infrastructure as code.
Fundamentals of DevOps Practice (Cont)
24
Validated learning:
Throughout the lifecycle, feedback and telemetry data is gathered to
help inform decisions for the next cycle.
This information is referred to as validated learning. Validated learning
helps provide insight into new ways to reduce the amount of time per
cycle.
The gathered data is then used to find ways to increase automation,
improve processes, and prepare for deployment more quickly and
efficiently.
DevSecOps
26
Specialized tools:
For managing source code: Git (GitLab, GitHub), Bitbucket, CVS,
Subversion
For managing configuration: Puppet, Chef, Ansible, CFEngine
For release management: Jenkins, Travis, CircleCl, TeamCity, Gradle,
Bamboo
For orchestration: Mesos, Zookeeper, Kubernetes
For monitoring, virtualization, and containerization: Nagios, Icinga,
Monit, OpenStack, Vagrant, AWS, Docker, Kubernetes
For logging and analyzing application lifecycle: Splunk (a popular
log management tool for DevOps), Datadog, SolarWinds Log
Analyzer
Security Monitoring: Splunk, Suricata, Snort
Key Performance Indicators (KPIs) in
DevOps
29