Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Professional Certificate
www.certiprof.org
Tabla de
Contenido
History 5
Purpose of DevOps 12
DevOps 15
Introduction 15
DevOps 21
Benefits 21
DevOps Pillars 24
Devops - Software 29
Development Lifecycle 29
Continuous 40
Delivery 40
Continuous 43
integration 43
Continuous 47
Learning 47
CALMS Model 49
DevOps and Others Best 51
Practices and frameworks 51
DevOps Culture 56
DevOps Team 59
Incremental Adoption 66
System Thinking 68
Feedback 72
Gartner DevOps Model
DevOps Checklist and
80
84
History
State of DevOps Report 84
Literature 90
References 91
2 DeVops www.certiprof.org www.certiprof.org DeVops 3
Year
2008
Why The seeds of DevOps movement were planted during the Agile
Conference, 2008 held in Toronto by the software developer Patrick
DevOps?
Debois, who was experienced in multiple roles in IT industry in a
large organization such as developer, system administrator, network
specialist, project manager and even tester.
He showed there could be better ways to get the great work done by
resolving conflicts among developers and operation teams. He was
soon recognized as thought leader behind the DevOps concept and
others carried on solving these challenges.
Year
2009
John Allspaw and Paul Hammond, two senior employees at Flickr,
delivered a key talk, titled “Ten + Deployment per Day: Dev and Ops
Cooperation at Flickr”. In this talk Allspaw and Hammond, very
powerfully pointed how the conflict led to ‘finger pointing” by developers
and operators laying blame on the other. They pointed out that the only
way to build and deploy workable software was by making operation
and development integrated and transparent.
https://www.google.com/trends/
Many projects take months in this inevitable round of events. In this backdrop, DevOps
helps in making deployment really fast and effortless. Thus, the overall purpose of DevOps
is the achievement of speed in deployment.
DevOps aims to maximize business outcomes, such as increasing sales and profitability,
enhancing business speed, or minimizing operating cost, by aligning just-in-time (JIT)
business processes.
DevOps means establishing the IT service supply chain in the business in the same way as
the supply chain for other products is embedded within the business. It is a big paradigm
shift from software delivery to providing IT services.
There are many methodologies and tools which can be utilized. DevOps does not have a
template for implementation, each organization has to think and build up their own DevOps
process to improve the business. Therefore understanding the concepts of DevOps is
important for the staff to carry out the processes efficiently by following the right processes.
DevOps
Introduction
What is
namely, communication and real-time visibility. It is critical to have right tools
and combine services, DevOps is concerned about whether a tool provides
ability to interface and operate effectively.
In fact, it uses a DevOps ToolChain which consists of number of tools which fit
in various categories of processes in phases from development to deployment.
These tools are used in the processing involving Code, Build, test, Package,
Release, Configure and Monitor teams. Though many tools are available, some
are essential in DevOps ToolChain used in organizations.
It is safer to say that this area is still evolving and thus one should get stuck
into limiting the meaning and scope of this developing field by narrow limits DevOps in not a special tool
of definition. Instead of that, it is more apt to discuss the themes, ideas and
tools of DevOps which will get us clear insight on what is DevOps.
Though there are tools used in DevOps, one should not limit the scope of
DevOps to specific tools such as Chefs or Jenkins. This limits the wider
scope of DevOps if a single automation tool is equated to DevOps.
One must accept the change, identify the metrics, include feedback in overall back
and forth process, and correct any failures that occur quickly. For instance, if a tool
initially thought to suit, works no longer must be abandoned quickly and move on.
“A movement of people who care about developing and operating reliable, secure,
high performance systems at scale.”
- Jez Humble
DevOps
Benefits
2. ITSM
1. Value Concept (ITIL®)
1. Utility
2. Warranty
3. Continuous Delivery
Following its origin and development in Japan, largely in the 1960s and
1970s and particularly at Toyota
DevOps Pillars
TPS is renowned for its focus on reduction of the original Toyota seven wastes to
improve overall customer value, but there are varying perspectives on how this is best
achieved. The steady growth of Toyota, from a small company to the world’s largest
automaker, has focused attention on how it has achieved this success.
TMS.?
KAIZEN
Kaizen, Japanese for “improvement“
When used in the business sense and applied to the workplace, kaizen refers to activities
that continuously improve all functions and involve all employees from the CEO to the
assembly line workers.
It also applies to processes, such as purchasing and logistics, that cross organizational
boundaries into the supply chain. It has been applied in healthcare, psychotherapy, life-
coaching, government, banking, and other industries.
http://www.gartner.com/it-glossary/?s=Bimoda
Devops - Software
Development Lifecycle
One of the most remarkable qualities in an agile methodology is its simplicity, both
in their learning, and in its application, thus reducing implementation costs in a
development team.
Plan-Do-Check-Act cycle
(PDCA cycle)
DCA (plan–do–check–act or plan–do–check–adjust) is an iterative four-
step management method used in business for the control and continual
improvement of processes and products.
Another version of this PDCA cycle is OPDCA. The added “O” stands for
observation or as some versions say “Grasp the current condition.” This
emphasis on observation and current condition has currency with Lean
WIP-limit manufacturing/Toyota Production System literature.
Work-in-Progress (WIP)
A WIP (work in progress) limit is a strategy for preventing bottlenecks in
software development.
Work in progress limits are agreed upon by the development team before
a project begins and are enforced by the team’s facilitator.
For example, a team may divide the tasks that must be performed for a
feature into design, code, test and deploy. When a WIP limit for a certain
task has been reached, the team stops and works together to clear the
bottleneck. The goal of working in this manner is meant to ensure that
the entire team takes ownership of the project and produces high quality
code.
Although this varies significantly per Scrum Team, members must have a shared
understanding of what it means for work to be complete, to ensure transparency.
This is the definition of “Done” for the Scrum Team and is used to assess when work is
complete on the product Increment. The same definition guides the Development Team in
knowing how many Product Backlog items it can select during a Sprint Planning.
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported Licens
The feedback allows the developer to make improvements with the software
under development. There are basically three points of improvements.
Then the environment to which the software is being delivered also gets to be
improved to make it possible for the efficiency and performance to be improved,
as well.
The third factor improved after the feedback delivery is the process to which the
software is being delivered. These improvements allow the software developer
to be more efficient, more capable and faster in what they are delivering and
hopefully, at a lower cost
Delivery Automated deployment is the ability to get software deployed to any environment
at any given time.
But, one need to have the capability to deliver the software to any given
environment at any given time and as needed.
For instance, if a bug has been discovered on the field by a user, the company
that developed the software will have to recreate that bug before they can fix
it. And continuous delivery is the process needed for that.
Continuous
integration
Monitoring:
The charge monitoring provides feedback to the team in the XP process. Your Benefits of Continuous Integration
responsibility is to verify the degree of success between estimates and actual
time spent, communicating the results to improve future estimates. It also • Maintain single source repository
tracks the progress of every iteration and assesses whether the goals are
achievable within time constraints and resources present and also determines • Automate the build
when to make changes to achieve the objectives of each iteration.
• Make every build self-testing
Continuous Integration or CI practices originate in the software development • Test in a clone of production
world, but they they can also be very helpful for an operations team.
• Automate deployment
One good example is a team of architects working on a blueprint of a house.
Every day they work on creating the house design independently, and then
each Friday, they try to build new home structure once they have combined
everything on the blueprint.
CI requires the developers to work at integrating code on a shared repository many times in
a day. Every check-in will go through verification through automated build.
This allows the team to quickly detect problems as soon as they appear. By doing daily
integration, error are detected early and they can also be located very easily.
Though some companies or teams believe that it is possible to build and deliver without CI,
it could be a requirement.
Initially, you may feel that it is possible to develop faster without the implementation of CI.
But as projects increase and grow, it does not really make the team or company more
efficient.
When issues get caught faster, the confidence goes higher and stronger for each build and
usually. It leads to more efficient delivering of software.
Continuous integration allows for the problems to be solved quicklyy. Since you are integrating
very often, there will be less back-tracking to be done in order to discover where the errors
originate. This allows for more time to be spent on building features.
Such kinds of integration problems can quite easily knock your project off-schedule. It can
also result in total failure.
CALMS Model
Infrastructure as Code. A
LEAN
L
A focus on value and customer.
Reducing time spent on non-value
activities.
METRICS
M
Measure everything all the time.
Show improvement.
SHARING
Open sharing. Collaboration.
Transparency.
S DevOps and Others Best
Practices and frameworks
and Agile This is the ability to develop and operationalize products and software very fast and
then get them to the marketplace.
All in all, it start with a concept and the goal to turn that into cash. You have the
users and development bridges Agile and DevOps bridges Dev and Ops together.
DevOps with Agile is an interesting combination. It always starts with a user - the
customer - then some concept to be taken to the market place. This is known as
the concept-to-cash cycle.
DevOps
and Scrum
To get that from the user to the development, people develop products - usually
technologies or could be otherwise.
And through operations, Agile gets you from the user’s development, and DevOps Scrum was originally formalized for projects on software development.
gets you from development and into operations where you will have something that
you can actually provide for your customers. It is an Agile framework that allows for faster completion of complex projects.
With Scrum though, the possibilities are endless. It can be used for any
DevOps has multiple components, some of these include: innovative, complex scope of project/task. This framework is very simple.
Strong Source Control
Automation (software automation)
Testing Early and Often
Small Increments of Delivery
Continuous Improvements
Cohesive Teams – It means that work closely together in order to produce value, in DevOps
order to get products out and into the market
ITSM (ITIL)
These components may sound familiar if you are an Agile practitioner.
For instance in XP/Agile Engineering Practices, these components exist: DevOps and ITIL need each other. Why? Because they have functions that
would benefit each other.
Test Driven Development - similar to Testing Early and Often DevOps can provide:
Small Releases - similar to delivering small increments • Collaborative Working
Continuous Integration - similar to Automation • Continuous and fast deployment rates
Whole Team - much like the Cohesive team or the team work that happens • Faster feature delivery
between the developers and the clients. • Focus on important work
Coding Standards - similar to Strong Source Control • Environment stability
Though DevOps, on its own, is a already a useful process. It can be enhanced when it
joined forces with ITIL.
With ITIL and DevOps, an organization will enjoy more benefits like more robust service
scoping, better outlook on strategies, more perspective on improvements, better outlook
on transition activity and the rigors of service design processes.
Another perception is that ITIL and DevOps cannot work together because they are not
compatible.
It has always been considered that organization need to choose one and then stay on
that lane. That is not how it should be.
There are actually more synergies between these two than there are differences. Many
organizations have not realizes this though. DevOps industry architecture, figure 9.
"ITIL® is a (registered) Trade Mark of AXELOS Limited. All rights reserved
©Copyright AXELOS
Thus they are missing out a lot on service improvements, which they could introduce and
develop just by looking how they can leverage and balance these frameworks.
There is no denying that over time, DevOps impact has significantly grown.
Specifically within today’s fast-paced and competitive IT environment.
Today, there is just a thin line between the roles that developers do, and it is
not sufficient anymore to have a single expertise.
Small, medium and large companies are now embracing this new DevOps
culture to push their applications and programs forward and being able to
quickly respond to changes.
In building DevOps, there are key factors to be taken into consideration. First,
it is important to be a generalist. Being an expert in one field (technology or
software) simply does not work anymore.
DevOps Culture
Culture -
DevOps Orientated
• High Cooperation -(same team)
• Communicators Rewarded
• Shared Responsibilities and Risk
• Failure = Discovery & Improvement
• Innovation is Continual
• Engaged
• Own it
• Continual Training
•
DevOps Team
Performance, resource optimization Structure and reporting lines Command Alignment, integration, coordination Processes and governance rules
and control Leadership and collaboration
Service Management
Office SMO
• Flat organization for small organization
• Matrix organization for large and complex organization.
Job Market:
Using indeed and LinkedIn search and analyze the results
The approach starts by fixing small goals, like implementing DevOps in single
applications maintained by small-sized development team.
Once this is successfully done, lessons learned can be applied for increasingly
bigger goals till eventually there is healthy balance between process
improvements & process execution.
The key challenge remains to strike balances between the complex organizational
IT environments, implementation speed & risk, which should be made to work
together.
Hence DevOps must plan for continual improvement & not make implementation
a one-time event.
The hours deployed in development will be realistic for most enterprises and
will widely vary based on culture & politics of an organization.
The group meetings are likely to consume most hours, with estimates based
on having small implementation teams of 1 to 3 people who will interact
Incremental Adoption continuously with the key personnel of 2-4 people of an application
For DevOps organization system means the business as a whole not its specific
departments or teams.
Developer teams’ writes code after which testers test these codes and
operations provide the infrastructure to run the code and finally customers
consume these codes.
Systems thinking signify that every team must be aware of actions of every
other team working in the development pipeline & ultimately deliveries are
made to the customer.
DevOps defines how actions can affect not the team but an entire system. This
means that developers might have greater visibility into full lifecycle of pieces
of code written.
Traditionally, when someone pushed pieces of code out into production, which
caused major service outages, they would become crucified by peers and People learn from their mistakes, and the organization allows everyone to
management. experiment rather than forcing them to focus on a restricted set of tasks.
They were singled out, reprimanded & even potentially fired. DevOps organizations are always encouraging creativity & thinking outside
boxes rather than preserving approaches of old ways mentality.
A systems thinking has been able to remove these initial inclinations for
individual blaming. This naturally would encourage all to be humble as no one becomes privy
to a perfect idea which no one could challenge.
It is about not-blaming an individual who was unfortunate enough while pushing
the button but a system which allowed this to happen. DevOps has been able to set precedents on experimentation being
acceptable even if they end up in failures as eventually failures are best
Systems thinking will treat incidents like these as failures in the system. ways for learning.
DevOps team will immediately investigate causes; not by persons who did this
but how this could even production at all. It may look into the causes why
automated testing could not catch the fault which leads to the principle of
learning & experimentation.
Experimentation
& learning
DevOps organizations always experiment & learn from earlier mistakes.
The incident would be fixed so even if someone else does the same thing
again; the system would prevent it.
This is the most commonly used tool for source management which is available
today.
Its advantage lies in having addition great features in forking & pull requests;
additionally GitHub also provides plugins which are able to connect Jenkins
and facilitate the integration & deployment.
Speed tests which are run against a Git network operation generates impressive
results, as Git protocols for data transfer is very highly optimized.
With time, however, Git internal implementations reveal limitations which can
have impacts on speed & efficiency of delivery pipelines.
Git has been optimized for small assets, like codes & configuration files.
Organizations with needs to version larger binary files like videos, images, &
CAD designs quickly bloat repository size & file systems of developers.
Some Git functions need calculation of the hash value over repository contents
(Kort W. d., 2016).
Because of this larger binary assets reduce operations to crawls and external
store will be needed.
Git lacks robust & manageable mechanisms for a fine-grained access control
DevOps orchestrations are automated coordination by custom-defined DevOps processes Docker has formed a vital portion of next-generation Yelp testing &
in the organization and automation tools & tasks which they are carrying out in the process. infrastructure for service management.
Cloud infrastructure plays along with the DevOps tools for automation & orchestration or Dependencies Isolation and the rapid spin ups of containers allow a
coordinate in supporting desired processes. shortened development cycle and increases testing speeds by over 400%.
Docker streamlines continuous integration (CI) using Dockerized build-
Developers & testers have to access the multiple VM’s & bare metal servers & some of the slaves. CI systems are designed so that many virtual instances run as an
networking switches while working on applications. individual Docker can host multiple build-slaves.
In these instances the entire cloud infrastructure has to be connected, allocated, &
configured as working environments, which requires some cloud orchestration as it needs
Some environments can run Docker host within another Docker host
coordination of the automation which works on top of the VM’s, servers & networking in
(Docker-in-Docker) in the build environments.
particular orders.
Docker can increase velocity for a CI pipeline using Union-FileSystems &
Orchestration then goes beyond simple pulling of cloud infrastructure together for
Copy-on-Write (COW).
encompassing tasks of DevOps automation in coordination with the infrastructure for
getting DevOps orchestration.
For achieving increased velocities to give Continuous Delivery (CD) of the
software, many Docker techniques can be used.
Developers using Docker create Docker environments on the laptop for locally developing
and testing applications in the containers.
Within this environment testing on service stacks made up with multiple Docker-containers
is carried out.
Multiple Docker-containers converge as single service stacks, like LAMP stacks, and take
seconds to be instantiated.
A CD process – Blue-Green deploys can be used for seamlessly migrating End user experiences are great as NODE.
applications into the production. JS optimizes the application throughput & scalability.
Many thought-leading organizations embraced NODE.JS, like SAP,
A key benefit of Docker image use is the software delivery pipeline where Groupon, LinkedIn, PayPal and Wal-Mart.
both infrastructure & application are both included in a container image
Due to this NODE.JS has a huge & very active community, as NODE.
JS & DevOps remain well-suited for each other in fulfillment of a
business outcome.
Without right tooling, DevOps merger of roles & duties may create
chaos & unintended outcomes which includes issues related with
scaling, reliability and load management.
The real asset is a code which brings the servers & services which the they The key features are its permanent links, the integration of
provide alive. RSS/email/IM, an after-the-fact tagging, its reporting of
JUnit/TestNG test and the distributed builds.
Chef puts a reliance on its reusable definitions called cookbooks & recipes
written in Ruby.
This abstraction level boosts productivity and allows the developers in Puppet
easily creating custom configurations for apps.
Recipes are run independently by use of CHEF SOLO or a server having DevOps rely on the Puppet during an IT automation as it
CHEF SERVER which acts as hubs for the configuration data. allows a handle for the configuration management & software
during making of rapid and repeatable changes using Puppet.
Servers store cookbooks or policies applied to the nodes and the metadata
which describe registered node managed by chef-client. Puppet automatically enforces the consistency in
environments and can work across physical & virtual
Chef is a cross-platform management tool for Windows, Linux, Mac OS, machines.
etc., and can integrate with the major providers of cloud.
It has common tool-chains and support key best practices in
DevOps which include continuous delivery.
DevOps Checklists are not static or unique and have no manifestos which
describe DevOps, but they should become adaptable with the organizational
needs, human interactions & other criteria of specific natures.
DevOps Checklist and Other factors like meeting the customer demands, Security, reducing time for
Self-Assessment
Measuring & tracking business values which the application will enable and
deliver has to be figured out.
Self-Assessment
This information will be crucial whenever business & IT leaders prioritize
their future investment & make trade-offs which may arise. Rapid innovations in business could act as competitive advantages which
disrupt your competition.
These are expensive for maintaining and makes innovation difficult, thereby
slowing down the development team hence a process of continuous self-
assessment is compulsory.
Source https://puppet.com/resources/whitepaper/2016-state-of-devops-report
86 DeVops www.certiprof.org 87
Literature References
Phone: +1954-9030604
Email: pam@certiprof.org
www.certiprof.org
DeVops www.certiprof.org