0% found this document useful (0 votes)
28 views9 pages

Sepp 12

Chapter 11 covers the principles and practices of DevOps, emphasizing collaboration between development and operations to enhance software delivery. It outlines key concepts such as continuous integration, continuous delivery, and the importance of a DevOps culture that fosters trust and shared responsibility. The chapter also highlights the benefits of DevOps, including faster time to market, improved product quality, and the use of various tools to support the DevOps process.

Uploaded by

bprajna64
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views9 pages

Sepp 12

Chapter 11 covers the principles and practices of DevOps, emphasizing collaboration between development and operations to enhance software delivery. It outlines key concepts such as continuous integration, continuous delivery, and the importance of a DevOps culture that fosters trust and shared responsibility. The chapter also highlights the benefits of DevOps, including faster time to market, improved product quality, and the use of various tools to support the DevOps process.

Uploaded by

bprajna64
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

CHAPTER 11

DEVELOPMENT
Syllabus
Overview of DevOps; working principle; Benefits; DevOps culture; DevOps practices: continuous
integration, continuous delivery, version control, configuration management, Build process;

Introduction
 DevOps is a software development process that emphasizes communication and collaboration
between product management, software development, and operations professionals.
 DevOps also automates the process of software integration, testing, deployment and infrastructure
changes.
 It aims to establish a culture and environment where building, testing, and releasing software can
happen rapidly, frequently, and more reliably.
 The end goal of DEVOPS is to reduce “time to market” and improve the quality of the released
product.
Overview of DevOps

 Venn diagram showing DevOps as the intersection of development (software engineering),


operations and quality assurance (QA).
 DevOps promotes a set of processes and methods for thinking about communication and
collaboration between departments of development, QA (quality assurance), and IT operations.
DevOps Toolchain

Fig: Stages of DevOps Toolchain


 Code — Code development and review, version control tools, code merging.
 Build — Continuous integration tools, build status.

Subject: SEPP Notes/20CS43P pg. 1


 Test —Continuous testing tools that provide feedback on business risks.
 Package — Artifact repository, application pre-deployment staging.
 Release — Change management, release approvals, release automation.
 Configure — Infrastructure configuration and management, Infrastructure as Code tools.
Working Principles of DevOps
 DevOps is a mindset or a philosophy that encompasses collaboration, communication, sharing,
openness, and a holistic approach to software development.
 DevOps relies on a comprehensive set of strategies and methodologies. They ensure the timely
delivery of quality software. DevOps principles guide how to organize a DevOps environment.
Nine principles of DevOps
a. Incremental Releases
b. Automation
c. DevOps Pipeline
d. Continuous Integration
e. Continuous Delivery
f. Continuous Monitoring
g. Feedback Sharing
h. Version Control
i. Collaboration
Incremental Releases
 Previously developers in Dev Ops teams wasted time in deploying the code. This delay in code
release caused delayed progress.
 When developers have to wait for a prolonged period of time to contribute code, errors, and
incompatibility issues.
 In a DevOps environment, a single project is divided into small, manageable chunks, and teams
submit their code in increments.
 That makes it easier to troubleshoot problematic code before it gets released toproduction.
 Depending on the workflow, DevOps teams release code updates and bug fixes on a daily, weekly,
or monthly basis.
 Incremental releases make the development and deployment cycle more flexible. As a result, teams
can quickly respond to sudden changes and fix errors and bugs immediately.
Automation
 One of the major practices of DevOps is automating the software development process as much as
possible.
 Automating workflows allows developers to focus solely on writing code and developing new
features.
 Anything that can be automated is automated in a DevOps environment.
 For example, instead of wasting time on manually checking code for errors, DevOps teams use
different software solutions to build and test applications automatically. It is as simple as running a
single command to compile the source code to determine if it will work in production.
DevOps Pipeline
 DevOps aims to establish a repeatable system, a loop that facilitates continuity in development. To
achieve that, DevOps teams create pipelines

Subject: SEPP Notes/20CS43P pg. 2


 A pipeline denotes a repeatable system made up of stages through which code has to pass before
being deployed to production. A typical DevOps pipeline consists of four primary phases:
a. Develop. First, the developers have to write the code.
b. Build. Then the team compiles the code into a build to check for errors.
c. Test. After the build phase, operations teams run tests to ensure that the new code will behave
as intended in the production environment.
d. Deploy. Once the new code has passed the testing phase, it gets deployed to the end-user
Continuous Integration
 Continuous Integration (CI) plays a important role in a DevOps pipeline. It encourages developers
to submit their code to a central code repository multiple times a day.
 Integration of smaller chunks of code regularly prevents bad code from moving down the pipeline
and also service interruptions is significantly reduced. Some of the largest organizations that
implement DevOps practices commit new code hundreds of times a day.
 Another critical aspect of Continuous Integration is automated testing. Before developers commit
their code to the master branch, they create builds of the project to determine if the new code is
compatible with the existing code.
 If the build is successful, developers will submit their code to the shared repository. CI relies on a
version control system, a central code repository that helps teams track code changes and manage
merge requests.
Continuous Delivery
 Continuous Delivery (CD) is all about releasing code updates frequently and fast. CD relies on
developers to manually deploy code to production as opposed to Continuous Deployment, which
takes an automated approach to code release.
 Developers working in a CD environment need to keep in mind that their code contributions may
get deployed to production at any moment. Having passed all tests and reviews, code updates can
be released to production with a click of a button.
 Numerous benefits come with continuous delivery. First, it eliminates the risk of downtime and
other performance issues because code changes are usually minor. Second, CD enables
organizations to release high-quality features much easier, ensuring faster time-to-market, and
ultimately eliminating fixed costs associated with the deployment process.
Continuous Monitoring
 Continuous Monitoring builds on the concepts of CI/CD, and it ensures the application performs
without issues. DevOps teams implement monitoring technologies and techniques to keep track of
how the application is behaving.
 DevOps teams monitor logs, apps, systems, and infrastructure. Once a problem is detected, DevOps
teams can quickly revert the app to a previous state. During that time, the team works on resolving
known issues without making the user aware that the code is updated continuously.
 Continuous monitoring also helps DevOps teams detect issues that are hindering productivity in the
pipeline. After each release cycle, teams should optimize the CI/CD pipeline to eliminate any
bottlenecks and ensure a smooth transition of code from one stage to the next.
Feedback Sharing
 DevOps thrives on feedback. Developers need actionable information from different sources to help
them improve the overall quality of the application.

Subject: SEPP Notes/20CS43P pg. 3


 Without feedback, DevOps teams can fall victim to spending time on building products that don’t
bring value to stakeholders or customers.
 DevOps teams usually gather feedback from stakeholders, end-users, and software-based
monitoring technologies before, during, and after the release cycle.
 They collect feedback through various channels, such as social media and surveys, or by discussing
with colleagues.
 Teams need to have procedures that will help them shift through the feedback they’ve gathered to
extract the most valuable information. Misleading or inaccurate feedback could prove to be
detrimental to the entire development process.
Version Control
 Version control, also known as source control, lies at the heart of every successful DevOps
workflow.
 It helps DevOps teams stay organized, focused, and up to date with what members of the team are
doing.
 Version control is also crucial for ensuring teams collaborate faster and easier to support frequent
software releases.
 Version control is a central code repository, a place where developers contribute their code and
track changes during the development process.
 Most version control systems allow team members to create branches of the main project. Branches
are copies of the project’s source code that individual developers can work on without modifying
the original code.
 Git is a popular version control tool, in no time by downloading our free Git Commands.
 Each developer works on a separate branch of the same project, submitting code updates and
running automated tests. Before the newly written code gets merged with the master branch,
automation will create a build of the application that will ensure the new code is compatible with
the existing code.
 If the build is successful, developers merge the new code with the master branch and deploy it to
production or run other tests, depending on the workflow
Collaboration
 The main idea behind DevOps is to establish trust among developers and operations.
 Dev and Ops teams need to communicate, share feedback, and collaborate throughout the entire
development and deployment cycle.
 In such a setting, both groups are responsible for ensuring the application delivers on its promises.
 That requires continuously optimizing and improving the performance, costs, and delivery of
services while keeping users satisfied.
 Creating this type of inclusive, collaborative environment also involves accepting a cultural shift
within the company.
 To execute DevOps successfully, it’s crucial to have the stakeholders and DevOps teams be on the
same page, working together to deliver software solutions that bring real value to the company and
its customers.
 DevOps requires the entire company to behave like a startup, continuously adjusting to market
changes, and investing time and resources in features that attract more customers.
Benefits of DevOps
 Companies that practice DevOps have reported significant benefits

Subject: SEPP Notes/20CS43P pg. 4


 Significantly shorter time to market
 Improved customer satisfaction
 Better product quality
 More reliable releases
 Improved productivity and efficiency
 Increased ability to build the right product by fast experimentation
Devops Culture
 Devops culture involves closer collaboration and a shared responsibility between development and
operations for the products they create and maintain.
 This helps companies align their people processes and tools towards a more unified customer focus.
Devops more culture than a technology.
 Tech world talks about devops culture as the practice is more about people and how they work
together than about technology or using a specific set of tools.
 Devops culture focuses on high level of trust and collaboration. It results in higher quality decision
and higher levels of job satisfaction.
Factors for Successful Devops Culture
 Foster a collaborative environment.
 Impose End-to-End Responsibility.
 Encourage Continuous Improvement.
 Automate almost everything.
 Focus on the Customer needs.
 Embrace Failure and learn from it.
 Unite Teams and Expertise.
Implementation of Devops
 Prioritize learning over blame.
 Ensure goals are transparent.
 Encourage strong cross-team collaboration
 Provide autonomy and ownership.
 Practice continuous feedback
Impact of Devops Culture on Software Development Process
 Devops supports agility, continuous improvement, Response from end-users and stakeholders.
 Allow developers to adjust the SDLC pipeline continuously for improved outcomes.
 These improvements are inherently customer driven and focus on inspiring end user experience
with every release.
Best practices for implementing DevOps
DevOps best practices includes,
1. Agile project management
2. shifting left with CI/CD
3. Automation
4. Monitoring
5. Observability
6. Continuous feedback.
Goals of DevOps
 Faster time to market.

Subject: SEPP Notes/20CS43P pg. 5


 Lower failure rate of new releases.
 Shortened lead time between fixes.
 Faster mean time to recovery.
 Simple processes become increasingly programmable and dynamic using a DevOps approach.
 DevOps aims to maximize the predictability, efficiency, security, and maintainability of operational
processes. Very often, automation supports this objective.
 DevOps integration targets product delivery, continuous testing, quality testing, feature
development, and maintenance releases in order to improve reliability and security and provide
faster development and deployment cycles.
 DevOps aids in software application release management for an organization, by standardizing
development environments. Events can be more easily tracked, as well as resolving documented
process control and granular reporting issues.
List of DevOps Tools
1. Collaboration Tools
A collaboration tool helps people to collaborate. The purpose of a collaboration tool is to support a
group of two or more individuals to accomplish a common goal or objective they have set
themselves.
Tools are: slack, Trello, HipChat, Flow Dock.
2. Planning Tools
Project planning is the application of knowledge, skills, tools, and techniques to project activities to
meet project requirements.
Tools are: Asana, Clarizen.
3. Source Code Management Tools
In DevOps world, everything is treated as code (Eg, code, shell script. configurations etc.) So it is a
must to have a robust source code management tools.
Tools are: Git Subversion,Mercurial, Github ,Bitbucket, Perforce.
4. Developer Productivity Tools
It is important to maintain the developer environments without inconsistencies in terms of software
configurations and versions. And most importantly, the environment should be reproducible in
minutes in case of laptop crash. This could be achieved using the following tools which increase the
developer productivity as well as maintains reproducible and consistent environments across
developers.
Tools are: Vagrant, Docker.
5. Bug/Issue Tracking Tools
Bug and issue tracking tools are the musts for any teams dealing with code.
Tools are: Bugzilla , Jira, Lean testing Mantis.
6. Build Tools
Build tools are essential for any product development to automate package creation or a deployable
artifact.
Tools are: Ant ,Maven ,Gradle ,Rake ,MSbuild ,Build Visual , Pybuilder.
7. Configuration Management Tools
Configuration management tools play an important role in every application and infrastructure
deployment. It helps you manage the state of servers and application and automated every
configuration in an independent way.

Subject: SEPP Notes/20CS43P pg. 6


Tools are: Chef, Ansible ,Puppet ,Ansible.
8. Continuous Integration Tools: Continuous Integrations is the essential part of SDLC. This
capability gives continuous feedback on code integrations for the stakeholders and developers.
Tools are: Jenkins, Bamboo, Travis, TeamCity, Hudson ,CodesShip ,Circle CI, Cruise Control ,
Shippable .
9. Continuous Delivery
Tools: Go, Chef Delivery.
10. Repositories
Any code/binary that has to be deployed into production should be stored and versioned in a central
location. For this, we can make use of dedicated repositories which are specifically made for this
purpose.
Tools are: Nexus ,Artifactory , Archiva , Package Drone .
11. App/Infrastructure Logging/Monitoring/Visualization Tools
For any production environment, logging and monitoring application for infrastructure components
is must to avoid system failures and applications downtime.
Tools are: ELK stack ,Sensu ,Nagios, New Relic, Data Dog ,App Dynamics ,Graylog,Zabbix,
Riemann , Splunk , Sumologic.
12. Test Automation/Performance Testing Tools
Another important pillar in CI/CD pipeline is test automation tools.
Continuous integration(CI)
 It’s a primary DevOps best practice, allowing developers to frequently merge code changes into a
central repository where builds and tests then run.
 Continuous integration (CI) is the practice of automating the integration of code changes from
multiple contributors into a single software project.
 Automated tools are used to assert the new code’s correctness before integration.
 CI integrates code into a shared repository frequently. This is done by developers several times a
day each time they update the codebase. Each of these integrations can then be tested automatically.
 One of the main benefits of integrating regularly and testing each integration is that we can detect
errors more quickly and locate them easily.
 Continuous Integration Tools,
a. Bitbucket Pipelines
b. Jenkins
c. AWS CodePipeline
d. CircleCI
e. Azure Pipelines
f. GitLab
 Benefits of Continuous Integration
a. Reduces Risk
b. Better Communication
c. Higher Product Quality
d. Reduced Waiting Time
e. Risk Mitigation
f. Quality Teams
g. Increased Visibility

Subject: SEPP Notes/20CS43P pg. 7


Continuous Delivery(CD)
 Continuous delivery is an approach where teams release quality products frequently and predictably
from source code repository to production in an automated fashion.
 Continuous delivery is a DevOps software development practice where code changes are
automatically built, tested, and prepared for a release to production.
 Continuous Delivery gives you the power to decide whether to make the releases daily, weekly, or
whenever the business requires it.
 The maximum benefits of Continuous Delivery can only be yielded if they release small batches,
which are easy to troubleshoot if any glitch occurs.
 Continuous delivery is the important process of delivering the software/Updates to production in
smaller increments, ensuring that the software can be released at any time.
 CD approach of DevOps, the team will be always ready on ‘Delivering any time’ to the production.
Version Control(VC)
 Version control, also known as source control, is the practice of tracking and managing changes to
software code.
 Version control systems are software tools that help software teams manage changes to source code
over time.
 As development environments have accelerated, version control systems help software teams work
faster and smarter.
 They are especially useful for DevOps teams since they help them to reduce development time and
increase successful deployments.
 Version Control suggests, it is a system that records changes made to a file or a set of files.
 The system refers to the category of software tools that make it possible for the software team to
look after the source code changes whenever needed.
 The system records all the made changes to a file so a specific version may be rolled if required in
the future.
 The responsibility of the Version control system is to keep all the team members on the same page.
 It makes sure that everyone on the team is working on the latest version of the file and, most
importantly, makes sure that all these people can work simultaneously on the same project.
 Version control systems Examples: Git, Subversion and Mercurial
 Benefits of Version Control
a. Managing and Protecting the Source Code.
b. Keeping Track of All the Modifications Made to the Code.
c. Comparing Earlier Versions of the Code.
Configuration Management(CM)
 Configuration management refers to the process by which all environments hosting software are
configured and maintained.
 Every development pipeline requires multiple environments for multiple purposes – unit testing,
integration testing, acceptance testing, load testing, system testing, end-user testing, etc.
 These environments become increasingly complex as the testing moves towards pre-prod and prod
environments.
 The configuration of testing environments is critical for the success of testing teams.
 Accurate configuration makes every resource - servers, networks, data centers, operating systems,
IT assets, configuration files - function as they must to facilitate success.

Subject: SEPP Notes/20CS43P pg. 8


 These environments must be carefully managed, and all configuration changes must be tracked to
ensure that they are traceable.
 Inadequate configuration management can lead to system outages, data breaches (security
violation), and leaks.
 Not to mention the fact that bad environments make for improper, incomplete.
 DevOps is about facilitating speed, accuracy, and efficiency.
 Configuration Management helps to automate lack in maintenance tasks, which frees updev time
for actual programming. This increases agility, both on the part of individual devs and the
organization as a whole.
 At this point, it would be correct to state that Configuration Management is fundamentally
necessary for setting up a DevOps-driven framework.
Build Process (BP)
 Software Build is one of the important and mandatory activity among all.
 Software Build in simpler term is an activity to translate the human-readable source code into the
efficient executable program.
 Build automation is the process of automating the retrieval of source code, compiling it into binary
code, executing automated tests, and publishing it into a shared, centralized repository.
 Build automation is critical to successful DevOps processes.
 In fact, build automation is a critical first step of any CI/CD process.
 Ways to automate the build process,
1. Write the code.
2. Commit code to a shared, centralized repository.
3. Scan the code using tools such as static analysis.
4. Start a code review.
5. Compile code and files.
6. Run automated testing. (Need to meet strict requirement)
7. Notify contributors to resolve issues.
 Benefits of Build Automation
1. Increases Productivity.
2. Accelerates Delivery.
3. Improves Quality.
4. Maintains a Complete History
5. Saves Time and Money

Questions
1. Define a)DevOps b)Continuous Integration c)Continuous Delivery
2. Write a note on Build process.
3. List and explain DevOps principles.
4. List the benefits of DevOps.
5. List the factors for Successful Devops Culture.
6. List the best practices of implementing DevOps.
7. Write a note on a)Continuous Delivery b)Continuous Integration c)Continuous Management
8. Explain version control.

Subject: SEPP Notes/20CS43P pg. 9

You might also like