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

DevOps Essential

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.

Inspired by this, Debois organized his own conference- DevOpsDay.


The name of this movement was shortened by DevOps after this
convention.

First DevOps event is organized by Debois at Ghent, Belgium.

4 DeVops www.certiprof.org www.certiprof.org DeVops 5


Year Year
2010 2013
First DevOps day is organized in the US with proponents
Mike Loukides, a prominent figure in DevOps world, along
of DevOps like Andrew Clay Shafer, Damon Edwards
with Debois edited some fundamental texts on DevOps.
and others. The events drew global attention and
He stated that it is easy to think of DevOps in terms of
were move forward DevOps community.
the tools used therein. But, actually, this is intimate
Introduction of #DevOps hash tag which proved to be
understanding between developer and operations teams.
rich source of information

Great number of books on DevOps appeared. Some


noteworthy ones are “The Phoenix Project”, Implementing
Year Lean Software Development”, “Web Operations”, and
2011 “The Lean Startup” etc.

Many analysts predicted emergence of DevOps


globally by 2020. Year
Open source tools such as Vagrant which worked with 2014
Chef, Puppet and similar configuration management
tools, were developed.
The evolving technology world presents new opportunities
to DevOps concept in form of explosion of new
applications, devices and communication over mobile
Year environment and in cloud computing.
2012
In a survey by the Puppet Labs, 16% of 1486 respondents
DevOps days organized at places all over the world stated that they are the part of DevOps in their
and became IT events much attended and deliberated organizations.
on innovative thinking in DevOps domain.

6 DeVops www.certiprof.org www.certiprof.org DeVops 7


Year
2015+

DevOps is present and future…

Google TrendsUsing google trends the candidate need


understand and analyze the trend.

https://www.google.com/trends/

8 DeVops www.certiprof.org www.certiprof.org DeVops 9


Purpose of
DevOps

The best purpose served by DevOps, is to iterate


more quickly during the development phase.

This is achieved by avoiding friction between the


developers and operations as much as possible.

This is achieved by ensuring transparency and

Purpose of DevOps integration among development and operation team.

10 DeVops www.certiprof.org www.certiprof.org DeVops 11


Purpose of
DevOps
Businesses aim at having new apps or services with some specific aims, but it takes
considerable time to code the project, some days for Quality Assurance, some days for
addressing issues of deployment, maintenance and in many cases the need to rollback
because of mismatch between what is expected and what is delivered.

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.

The goal of DevOps is to establish stream-lined just-in-time (JIT) business processes.

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.

From an architecture perspective, DevOps needs to establish an automated quick


deployment system.

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

12 DeVops www.certiprof.org www.certiprof.org DeVops 13


DevOps teams achieve success because of their utilizing two key components-

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.

DevOps? DevOps is a relatively new development in the IT industry, which emphasizes


on communication and collaboration between the software developers and the
other IT professionals such as Operations teams with the aim of automating
process of delivery of software and the changes to infrastructure.
The word DevOps is a contraction of ‘Development’ and ‘Operations’
The basic aims of DevOps are establishing an environment where coding,
testing and deployment of software would happen quickly, frequently and
much reliably.

As DevOps has made a paradigm shift in software delivery process, emphasizing


collaboration and integration among developers, testers and operations teams,
there is nothing like a single tool of DevOps.

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.

In learning how to implement DevOps practices together with scrum practices,


you need to decide on how long it will take for each iterations - these are called
sprints in Scrum.

Each sprint is a representation of a length of time needed for the team to


DevOps is a new trend in IT industry aimed at improving agility in IT service develop and then test the code. The team must commit to have executable
delivery. The movement places emphasis on seamless communication, application on each sprint conclusion.
collaboration along with integration between the software developers and IT
operations. Two-week sprint is the most common for some scrum teams. In setting up the
sprints, follow these instructions:
DevOps recognizes that the developers and IT operations are not unrelated • Starting overview screen and clicking Track and Plan
groups who may interact but not really work together. • Selecting Sprint Planning
• Clicking Add Sprints - for example, you can add four sprints and set them
up for weeks
DevOps helps the organization create IT services and software rapidly and • Clicking Edit Sprints allows you to add sprints, change dates and rename
results in reducing number of iterations. sprints.

14 DeVops www.certiprof.org www.certiprof.org DeVops 15


Definitions DevOps is not Automation
of DevOps? Though DevOps involves automation, it is an error to consider that this
is wholly automation. Understanding important DevOps practices is a
In spite of lots of hype about the new concept of DevOps there is no clear precursor to ensure that it is viewed as more than only automation.
and universally agreed upon definition of DevOps. There are various opinions
about what DevOps is and is not! It is often held as a new way of organizing,
a culture or even a new way of thinking.

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.

What DevOps is Not?


DevOps is not any separate team
DevOps is not One-Size-fits All strategy!
Having a separate DevOps team defeats the very purpose of avoiding
As there are many diverse business technologies and drivers to be considered in possible friction and lack of communication between the developers and
order to set up adoption strategy for DevOps, it is essential to apply the very tenets IT operations as it creates one more silo, it is supposed to avoid, in the
of DevOps even to your own DevOps strategy. first place!

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.

16 DeVops www.certiprof.org www.certiprof.org DeVops 17


DevOps Leaders
Definitions
We refer to “DevOps” as the outcome of applying Lean principles to the IT value
stream.
- DevOps Cookbook

“A mix of patterns intended to improve collaboration between development and


operations. DevOps addresses shared goals and incentives as well as shared
Processes and tools.”
- Michael Hüttermann

“A movement of people who care about developing and operating reliable, secure,
high performance systems at scale.”
- Jez Humble

“DevOps is a culture or professional movement.”


- Adam Jacob, CTO at Chef

“DevOps is more like a philosophical movement.”


- Gene Kim, Founder of TripWire, CTO, Author

DevOps
Benefits

18 DeVops www.certiprof.org www.certiprof.org DeVops 19


Benefits of
DevOps By very nature, DevOps is a disruptive technology; but because of these benefits it
is here to stay as it is valuable asset for the organizations.

DevOps to improve business processes.


DevOps ensures faster time to market to delivery periods and thus enhances
returns on investments (ROI). Using the Blog explain how DevOps can improve business processes.

Fundamentally, DevOps is an application of concept of Agile Development http://savogroup.com/blog/what-sales-and-marketing-can-learn-from-devops/


and hence the main benefit of DevOps is faster development of software and
frequent delivery improving the bottom line.

DevOps brings about the greatest benefit of improving collaboration


between the developer and operation teams. This is achieved by improving
transparency which is essential for effective decision making.

Development teams are today required to break down their departmental


silos and communicate and collaborate with other IT teams in the present
dynamic environment.

DevOps improves the agility as it offers an environment for collaboration,


communication and integration on diversely located teams in a global IT
organization.

Another significant benefit of DevOps is the early detection and corresponding


quicker correction of defects which entails offering best services delivered to
customers.

One of the key benefits of DevOps is continuous Release and Deployment,


Continuous Monitoring and Continuous correction.

Current software development requires teams to be involved in continuous


delivery of flawless software, reduced period for go-to-market time frames
and shorter release cycles.

20 DeVops www.certiprof.org www.certiprof.org DeVops 21


Benefits of
DevOps
1. Agile
Velocity
Adaptability for change
Release without errors (JKK Concept)

2. ITSM
1. Value Concept (ITIL®)
1. Utility
2. Warranty

3. Continuous Delivery

JIT- Just-in-time (JIT)


Just-in-time (JIT) manufacturing, also known as just-in-time production
or the Toyota production system (TPS), is a methodology aimed primarily
at reducing flow times within production as well as response times from
suppliers and to customers.

Following its origin and development in Japan, largely in the 1960s and
1970s and particularly at Toyota

DevOps Pillars

22 DeVops www.certiprof.org www.certiprof.org DeVops 23


Toyota/Total Management System TMS BIMODAL - Gartner
Essentially, lean is centered on making obvious what adds value by reducing everything
else.

Lean manufacturing is a management philosophy derived mostly from the Toyota


Production System (TPS) (hence the term Toyotism is also prevalent) and identified as
“lean” only in the 1990s.

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

24 DeVops www.certiprof.org www.certiprof.org DeVops 25


DevSecOps

New Operational Models

Devops - Software
Development Lifecycle

26 DeVops www.certiprof.org www.certiprof.org DeVops 27


Agile Software
Software Development Development
Lifecycle There is no universal approach to address successfully any software development
project. All methodology must be adapted to the context of the project (technical
and human resources, development time, system type, etc.

Historically, traditional methods have tried to address as many situations context


of the project, requiring considerable effort to be adapted , especially in small and
very changing requirements projects. Agile methodologies offer a solution almost
as for a lot of projects that have these characteristics.

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.

A  software lifecycle  means developing software, from the initial stage


to the final stage.  The main purpose is to define all intermediate phases The agile methodology places greater value on the individual, collaboration with
needed for validating the application development and ensuring the software customers & development of software incrementally using short iterations. 
meets requirements for implementation &  verification  of the development
procedures and ensures appropriate methods have been used.
This approach has been found to be effective in projects having dynamic
These programs have originated because it was costly if rectification of requirements and need to drastically reduce the development time while
errors were detected late during the implementation phase.  The life cycle
allows errors are detected early to allow developers to focus on software maintaining high quality. 
quality, implementation timelines & associated costs. 
Agile development approaches have revolutionized ways of producing software. It
To facilitate a common methodology between the client and the software
company, models life cycle have been updated to reflect the developmental has generated a debate among its followers and skeptics as being an alternative
stages involved and required, documentation so that each stage is validated approach to traditional methodologies. 
before proceeding to the next stage. At the end of each stage testing is done
so that revisions can be arranged. 

28 DeVops www.certiprof.org www.certiprof.org DeVops 29


Service Level Agreement
(SLA) AND OLAS
Scrum A service-level agreement (SLA) is defined as an official commitment that
prevails between a service provider and the customer.
Scrum is a framework for developing and sustaining complex products. Consists Particular aspects of the service – quality, availability, responsibilities – are
of Scrum’sroles, events, artifacts, and the rules that bind them together. agreed between the service provider and the service user.

Operational-level agreements or OLAs may be used by internal groups to


Ken Schwaber and Jeff Sutherland developed Scrum.
support SLAs

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.

It is also known as the Deming circle/cycle/wheel, Shewhart cycle, control


circle/cycle, or plan–do–study–act (PDSA).

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.

30 DeVops www.certiprof.org www.certiprof.org DeVops 31


LEGO® and
Chocolate Game
Definition of Done (in Agile Scrum)
Definition of “Done” When a Product Backlog item or an Increment is described as “Done”,
everyone must understand what “Done”means.

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.

The purpose of each Sprint is to deliver Increments of potentially releasable functionality


that adhere to the Scrum Team’s current definition of “Done.”

Ken Schwaber and Jeff Sutherland developed Scrum.


Understand and learn to address a traditional
misalignment of goals of the 3 major groups in
product development.  Experiment with decoupling
of a Sprint (as a planning unit) from a Release (as @DanaPylayeva
a deployment unit) by minimizing the batch sizes,
increasing frequency of releases, amplifying feedback
loop and moving away from cyclical delivery towards
continuous flow of value.Duration 3 Hours

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported Licens

32 DeVops www.certiprof.org www.certiprof.org DeVops 33


34 DeVops www.certiprof.org 35
36 DeVops www.certiprof.org 37
Continuous
Delivery
This allows the clients/customers to use the software and get back with feedback.

The feedback allows the developer to make improvements with the software
under development. There are basically three points of improvements.

The first to be improved is, of course, the software being delivered.

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

Software delivery is not a simple process of delivery to production. There is an


entire series of software delivery lifecycle of multiple environments in the middle
that it has to go through. It is called the delivery pipeline.

These environments are:

DEV - It starts with the development environment


BUILD - The software building process
QA - There is also the QA environment and usually there are more than one of
such environment - each one to support each kind of environment being used

Continuous for the software being delivered

Delivery Automated deployment is the ability to get software deployed to any environment
at any given time.

Continuous delivery represents the ability of deploying the software on any


specific environment at a specific time.

38 DeVops www.certiprof.org www.certiprof.org DeVops 39


Continuous Delivery Versus
Continuous Deployment
Unless you are a part of a large enterprise building large enterprise software,
you should not do continuous deployment.

But, one need to have the capability to deliver the software to any given
environment at any given time and as needed.

The importance of having the capability to do continuous delivery is so that


it is possible to fix any potential issue that a user may experience while using
the software.

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

40 DeVops www.certiprof.org www.certiprof.org DeVops 41


Continuous
Integration
This kind of team work is good, but what if two architect work on one part
of the structure and come up with two different designs? Problem will surely
ensue. This could be prevented though. How? Through continuous integration
Each piece of code is integrated into the system once it is ready.  Thus, the
system can be integrated and built several times in one day. 
By implementing CI, the team can work by not waiting until Friday.
All tests are performed and must be approved for the new code is definitively
Each team member will be required to submit any new changes made into
incorporated. Continuous integration often reduces fragmentation of efforts
the blueprint - daily.
by developers on what can be reused or shared. 
Secondly, each architect adding something new to the blueprint, they are
Development of disciplined & automated processes are essential for a
also required to write up a test that will verify that whatever they added is
controlled project, the development team is more prepared to modify the
alright.
code as needed, because confidence in the identification and correction of
errors integration.
By doing that, any future changes that will break the design will be immediately
noticed. For new blueprints to get approval, they must first pass all of the
testing.
Small Deliverables:
The idea is to quickly produce versions of the system that are operational,
although obviously not have all the intended functionality for the system but
which are a result of business value.  Delivery should take no longer than 3
months.

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.

42 DeVops www.certiprof.org www.certiprof.org DeVops 43


Benefits of Continuous Integration
The primary objective of continuous integration is for the members of a team to know the
need of integrating work. Then to use automated testing in detecting errors anytime a team
member tries to make a change.

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.

Continuous Integration is the cost-efficient wat to go - it is cheap. And avoiding to continuously


integratee is costly. Not following continuous approach mean having longer periods of time
Continuous
Learning
between integrations, asking it exponentially harder to find the problems and fix them.

Such kinds of integration problems can quite easily knock your project off-schedule. It can
also result in total failure.

44 DeVops www.certiprof.org www.certiprof.org DeVops 45


Continuous
Learning

“Continuous learning at the team level is a deepening and broadening of the


group’s capabilities in (re)structurering to meet changing conditions, adding
new skills and knowledge and (re)creating into a more and more sophisticated
system through reflection on actions and consequences.

Valerie I. Sessa in her book: From Continuous Learning, individual, group, and


organizational perspectives

CALMS Model

46 DeVops www.certiprof.org www.certiprof.org DeVops 47


CULTURE
Changing the way we think nd
behave in the organization. Be-
coming one. Grassroots.
Cooperation.
C
AUTOMATION

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

48 DeVops www.certiprof.org www.certiprof.org DeVops 49


DevOps You can use Agile Engineering practices along with the capability to operationalize
and you may end up with DevOps.

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

50 DeVops www.certiprof.org www.certiprof.org DeVops 51


ITIL, on the other hand, ITIL® and
can provide: DevOps
• Structured means of considering services, service design and the service lifecycle
• Ideas and perspectives on service design
• Business relations
• Better quality and reliability of services

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.

52 DeVops www.certiprof.org www.certiprof.org DeVops 53


DevOps
Culture
The world of technology is a constantly changing environment and therefore,
software development is just as such. Among these changes is the DevOps
culture.

There is no denying that over time, DevOps impact has significantly grown.
Specifically within today’s fast-paced and competitive IT environment.

The wide availability of programming tools, languages and software services


made it possible to create almost unlimited options for software developers
in building and creating innovative applications. Being the developer and the
creator allows one to stay agile.

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.

Products and companies are shifting over time, therefore it is necessary to


have the ability to know how work on multiple areas and create better value.

DevOps Culture

54 DeVops www.certiprof.org www.certiprof.org DeVops 55


Continuous integration is also essential. This means being able to push code
directly into the users. This is a process of testing the code while in the
development stage.

This allows developers to act immediately as soon as feedback is sent back.


Continuously tested codes are less prone to errors, and they are easier to
release, as well.

Other factors include, continuous monitoring, continuous deployment


(getting the new code into the production process as fast as possible) and
resilience (building resilient applications so that you can respond to errors
thoughtfully and thoroughly).

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

56 DeVops www.certiprof.org www.certiprof.org DeVops 57


Organization - Organization -
Legacy Legacy

Performance, resource optimization Structure and reporting lines Command Alignment, integration, coordination Processes and governance rules
and control Leadership and collaboration

58 DeVops www.certiprof.org www.certiprof.org DeVops 59


Traditional Operations Dedicated DevOps
& Development team are created

60 DeVops www.certiprof.org www.certiprof.org DeVops 61


Team
Total Roles
DevOps • Process Master
• Service Master
• DevOps Engineer
• Release Coordinator
• Reliability Engineer
• Development Team
• Operation Team

Source: Amazon’s “Two Pizzas rule”


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

62 DeVops www.certiprof.org www.certiprof.org DeVops 63


Incremental
Adoption
An alternative approach for aggressive DevOps adoption is an incremental
adoption; although this may take longer, it will pose significantly lesser risk, and
will guaranteed a successful implementation.

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.

An incremental strategy has to preferably be made in a stepwise cyclical


approach which minimizes risks & costs of the DevOps adoption, and builds
necessary in-house skill-sets & momentum to implement bigger & faster cycles.
Every step will be built on the previous step, in matters of investment &
preparation throughout the overall cycle.

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

64 DeVops www.certiprof.org www.certiprof.org DeVops 65


System
Thinking
Most importantly DevOps organizations always think in terms of systems.

Systems mean sets of integrated processes which work towards common


goals.

For DevOps organization system means the business as a whole not its specific
departments or teams.

For coordinating activities reliable software development entail varied


procedures and processes.

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.

There may be many people & processes involved in this process.

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.

This also means becoming aware of potential ramifications of a change instead


of forgetting about modifications after codes are committed.

It also means system administrators must fully realize performance impact on

System Thinking applications once they are released to customers.

66 DeVops www.certiprof.org www.certiprof.org DeVops 67


Systems thinking form an excellent approach for thinking about blame also.

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.

In a case where a developer took production down, the incident would


become thoroughly investigated by bringing together appropriate people
while incorporating fixes to prevent future recurrences.

The incident would be fixed so even if someone else does the same thing
again; the system would prevent it.

68 DeVops www.certiprof.org www.certiprof.org DeVops 69


DevOps
Tools  - GIT
Git was produced following Linux community’s requirement for SCM i.e.,
Source-Control-Management software which could support to distributed
systems.

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

Feedback and is limited while providing security as forms of authentication.

70 DeVops www.certiprof.org www.certiprof.org DeVops 71


Cloud
Platforms
Docker
Cloud automation comprises of discrete automation objects or tasks which perform things
like spinning up bare metal servers or VM, installing OS images, & deploying applications
and network functions.  Docker brings portability to the applications through containerization
technology, where applications are able to run in self-contained units which
The tasks in Cloud automation are performed by many automation tools like homegrown are moved across platforms.
scripts & tools for configuration management.
It is made up of a Docker Engine - a runtime & packaging lightweight tool,
DevOps automation uses  functions of discrete automation like continuous integration, and a Docker Hub – which are cloud services for application-sharing &
build, and management tools for software configurations. workflow automation.

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.

72 DeVops www.certiprof.org www.certiprof.org DeVops 73


Js
JS allows simple building of fast and scalable network applications.

Docker JS platforms have libraries which enable applications to serve as


Web servers without need of software such as the Apache-HTTP-
Server or the Microsoft-IIS.
Docker brings portability to the applications through containerization
technology, where applications are able to run in self-contained units which Without having to make Web servers shorten DevOps to-do lists
are moved across platforms. & streamlines the code flow going from the development to a
deployment. Additionally the JavaScript can be used in both client
It is made up of a Docker Engine - a runtime & packaging lightweight tool, & server.
and a Docker Hub – which are cloud services for application-sharing &
workflow automation. Developers find an efficiency advantage due to code reuse. NODE.
JS apps are able to run on NODE.JS runtime on Microsoft Windows,
Docker has formed a vital portion of next-generation Yelp testing & the OSX, Linux, & FreeBSD.
infrastructure for service management.
It has been designed for speedy operation with great user experience.
Dependencies Isolation and the rapid spin ups of containers allow a An event-driven, non-blocking I/O model in NODE.JS enables
shortened development cycle and increases testing speeds by over 400%. lightweight applications which are highly efficient.
Docker streamlines continuous integration (CI) using Dockerized build-
slaves. CI systems are designed so that many virtual instances run as an This platform is suitable in data-intensive and real-time application
individual Docker can host multiple build-slaves. running in distributed devices.

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.

However, teams which take on DevOps & NODE.


JS face risk of being inadvertently blocked from realizations of the
business outcomes preferred.

Without right tooling, DevOps merger of roles & duties may create
chaos & unintended outcomes which includes issues related with
scaling, reliability and load management.

74 DeVops www.certiprof.org www.certiprof.org DeVops 75


Jenkins
This is an engine for extensible & continuous integration
used as one of the top tools by DevOps engineers wanting to
Chef monitor repeated job executions.

With Jenkins the DevOps engineer finds it easier to integrate


Chef DevOps tools provide frameworks for automating & managing changes in projects and can access outputs easily when they
infrastructure through simple DSL. find something going wrong.

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.

Puppet Enterprise offers orchestration of data centers by


automating the configuration & management of the machines
& software.

There are also open source Puppet versions available which


have been used by Stanford University to bridge gaps in
software development for its digital library service and
system administration needed for keeping services running
in, secure ways.

76 DeVops www.certiprof.org www.certiprof.org DeVops 77


Gartner
DevOps Model

Gartner DevOps Model

78 DeVops www.certiprof.org www.certiprof.org DeVops 79


80 DeVops www.certiprof.org 81
DevOps
Checklist

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.

Checklists could help a proceeding with the setting up of DevOps cultures


but are not considered as unique ways for proceeding with an organizational
transformation.

Setting up of DevOps infrastructure for multiple times business needs of an


organization are for things like business-continuity & disaster-recovery which
may significantly impact downtime costs & costs of downtime preventing.

DevOps Checklist and Other factors like meeting the customer demands, Security, reducing time for

State of DevOps Report


bringing to the market, cost minimizing for machines and manpower.

It is also necessary to understand these business needs for making a DevOps


strategy which can make meaningful impacts on an organization.

82 DeVops www.certiprof.org www.certiprof.org DeVops 83


DevOps
Self-Assessment

Self-Assessment

In enterprises there is a need for continuous assessment which forms a


cornerstone for scalable development of enterprise DevOps.

Self assessment will empower development & operations teams in


accelerating rapid delivery & iterations based on accurate & actionable
feedback on products.

Assessing outcomes and impacts forms an important and critical discipline


which IT teams must embrace during implementation of DevOps. This
process needs to be comprehensive, automatic and continuous.

Without a continuous assessment in a DevOps toolkit, there is a risk of


moving blind & missing big opportunities which may be easily within reach.

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.

For determining and measuring which features in an application are very


valuable & which least valuable self assessments are needed.

Many features or functions may rarely or never be used.

These are expensive for maintaining and makes innovation difficult, thereby
slowing down the development team hence a process of continuous self-
assessment is compulsory.

84 DeVops www.certiprof.org www.certiprof.org DeVops 85


Current Report Analysis

Source https://puppet.com/resources/whitepaper/2016-state-of-devops-report
86 DeVops www.certiprof.org 87
Literature References

Jens Smeds, K. N. (2015). IEEE 11th International Conference on Global


Software Engineering (ICGSE). Lecture Notes in Business Information
Processing Agile Processes in Software Engineering and Extreme
Programming , 166-177.

Kort, W. D. (2016). Dashboards and Reporting. DevOps on the Microsoft Stack


, 77-96.

Kort, W. d. (2016). Integrating Testers into DevOps. DevOps on the Microsoft


Stack , 205-229.

Noureddin Kerzazi, B. A. (2016). Who needs release and devops engineers,


and why? Proceedings of the International Workshop on Continuous Software
Evolution and Delivery - CSED ‘16 .

Stephen Jones, J. N. (2016). Management challenges for DevOps adoption


within UK SMEs. Proceedings of the 2nd International Workshop on Quality-
Aware DevOps - QUDOS .
The Phoenix Project

Gene Kim, Kevin Behr, George Spafford


ISBN-10: 0988262576
ISBN-13: 978-0988262577
IT Revolution Press
(January 10, 2013)

88 DeVops www.certiprof.org www.certiprof.org DeVops 89


Address:
2925 NW 130 Suite 410,
Sunrise, FL. 33323.

Phone: +1954-9030604

Email: pam@certiprof.org
www.certiprof.org

DeVops www.certiprof.org

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