Professional Documents
Culture Documents
Introduction To DevOps - Introduction To DevOps Culture and Processes Cheatsheet - Codecademy
Introduction To DevOps - Introduction To DevOps Culture and Processes Cheatsheet - Codecademy
Introduction To DevOps - Introduction To DevOps Culture and Processes Cheatsheet - Codecademy
Deployment
Deployment is the general process of making a piece of
software available to its users. It encompasses a
number of important tools and processes including:
Version control systems
Infrastructure management
Testing
Deployment environments
Types of Tests
Different types of tests exist that are used in the various
stages of deployment. Four types of tests that are often
used are:
A unit test evaluates the smallest possible unit
of testable code, such as a single function.
An integration test evaluates how the units of a
program work with one another.
An acceptance test evaluates whether the user
experience aligns with the business
requirements of the software.
An end-to-end test evaluates the application’s
behavior using production-like infrastructure
that includes networking, databases, and calls
to external APIs.
Branching
In version control, branching is the process of creating
a copy of the source code (the “trunk”).
Developers can work on their own branches without
changing the source code that real users and other
developers depend on.
Merging
In version control, merging is the process of combining
the changes in one branch with another.
This occurs when the differences between the two
branches are ready to be reconciled.
Infrastructure Definition
Infrastructure is the set of hardware and software
components that are used to develop, test, deploy and
host web services.
Examples of these components include servers,
switches, routers, and operating systems.
Operations Team
Operations teams are traditionally responsible for
managing an application’s infrastructure.
Services provided by the Operations team include
infrastructure configuration, device management,
incidence and security response, and ongoing
maintenance.
Environments
An environment, in the context of creating and
deploying software, is the subset of infrastructure
resources used to execute a program under specific
constraints. Common examples include:
Local development environment
Integration environment
QA/Testing environment
Staging environment
Production environment
Local Development Environments
The local development environment is a developer’s
computer where they create features of an application.
Integration Environments
The integration environment is where developers
attempt to merge features into a unified codebase,
often using version-control software like Git.
Testing Environments
The quality assurance (QA) / testing environment is
where tests are executed to ensure the functionality
and usability of a project.
Staging Environments
The staging environment mimics the final production
environment.
Final performance tests can be executed before real
users are involved.
Production Environments
The production environment refers to the
infrastructure resources that support the application
accessed by clients.
This infrastructure consisted of hardware and software
components including databases, servers, APIs, and
external services scaled for real-world usage.
DevOps
DevOps is a culture that is supported by a set of
practices and tools that assists the collaboration of
Development and Operations teams.
DevOps aims to resolve the issues in the development
process that arise due to the conflicting goals and
isolation of traditional development and operations
teams.
Integration of Development and Operations Teams
The integration of Development and Operations teams
results in the following benefits:
1. Work is no longer passed back and forth
between teams
2. Development, staging, and production
environments are consistent
3. Development best practices are applied to
infrastructure management
DevOps Failure
In DevOps, failure is seen as something to learn from
and is a normal part of the improvement process. It can
lead to valuable insights being discovered.
One method DevOps teams use to normalize failure is
through blameless retrospectives (or post-mortems).
Print Share