Lecture 5
Lecture 5
and Operations
                 Avita Katal                                 Vinayak Bajoria                            Susheela Dahiya
        School of Computer Science                    School of Computer Science                  School of Computer Science
    University of Petroleum and Energy            University of Petroleum and Energy           University of Petroleum and Energy
                   Studies                                       Studies                                      Studies
               Dehradun, India                               Dehradun, India                             Dehradun, India
            avita207@gmail.com                         bajoriavinayak@gmail.com                      sdahiya@ddn.upes.ac.in
    Abstract— DevOps is a cooperation of advancement and                                II. RELATED SURVEYS
activities conceived to weight on correspondence and coordination
between them. The fundamental of DevOps is to assist an                  One of the essential objectives of this research was to
association with growing and exceed expectations. With its comprehend the adoption patterns of DevOps as organizations
assistance an association can create programming items and advance. Our theory was that there are particular stages in
administrations. The fundamental utilization of DevOps is to DevOps advancement and explicit practices that empower
streamline the everyday exercises of an association and accelerate organizations to scale accomplishment over the silo teams.
the procedure for auspicious conveyances. Organizations are
concentrating on the computerization of procedures along these           Huttermann [1] defined DevOps as a set of practices that
lines convenient conveyance and quality outcomes are streamline the software delivery pipeline, emphasizing the
accomplished. Getting the workforce prepared with the most learning by streaming feedback from the production to
recent innovations and getting ideal work for them have turned development and improving the cycle time. However, the
into the need of great importance. This survey paper puts definition is incomplete as cultural aspects of DevOps were
forward the required cultural, organizational changes along with overlooked but, Huttermann was right to point that DevOps is
automation tools to realize DevOps. It also addresses the common not a new team or department in the organization. He refers to
objections raised again DevOps and how to address it.                four key aspects in a blog post by Wilis[2]: culture,
                                                                 automation, measurement and sharing (CAMS). Similar works
   Keywords—DevOps, Developers, Operations, tools, Cultural,
                                                             by DeGrandis[3], Humble and Molesky[4], Limoncelli and
Organizational, Automation
                                                                    Huges[5], Loukides[6], Bang et. al[7] and Roche[8] add to the
                      I. INTRODUCTION                               definition of DevOps. They imply that DevOps is an
                                                                    organizational revolution shifting mindsets from silo teams to
    A typical organization or company is made up of various large scale collaboration in the organizations. Some of them
business units like Research and Development, Information throw light on the key cultural aspects also like openness,
Technology (IT), Manufacturing, Finance, Human Resource communication, incentive, ownership, respect and trust.
and many more. IT is the backbone of all the business units
and is mostly used by them for free flow of information,               However, most of the above literature focused on
communication and software delivery and maintenance completing the definition of DevOps. Puppet Labs survey of
required for inner workings of the units. Finance department 2012[9] taken by over four thousand IT Operation
may need customized software for easy calculation of the GST professionals DevOps enables high performance and shipped
rates as per the various tax slabs, IT provides all these services. code thirty times faster and deployments eight thousand times
A typical IT business unit of any mid-tier Company consists of faster than their peers. The survey also showed that DevOps
Architects, Project and Product Managers, System Owners, increased reliability and restored services twelve times faster
Developers, Quality Assurance team, Business Analysts, and than the peers. In the 2014 survey[10] puppet labs showed the
Centre of Excellence. In a typical organization all these teams relationship between the organizational performance, IT
work at various levels of the software delivery pipeline to performance and DevOps practices. It stated that firms with
deliver software to the end client, which can be a third party strong IT performance are twice more likely to exceed their
customer or any other business unit of the organization. profitability, market share and productivity goals. DevOps
However, often these teams are independent silo teams with practices like version control and continuous delivery
their own policies and procedures surrounding their stage of correlates with strong IT performance. Organizational culture
deployment time. This leads to various organizational pains is also an important aspect for both IT and the whole
like outages, slow IT, and infighting. It also leads to organization itself. Cultural practices like High-trust, shared
knowledge waste, over production waste, motion waste and responsibilities, cross-functional collaboration, learning from
many more.                                                          failures and new ideas strongly correlate with organizational
                                                                    performance and result in job satisfaction.
    Under the DevOps the goal is to add value and improve the
flow in the organization. Development and operation teams are          In the report of 2015[11] by Puppet Labs, most of the
not siloed anymore, they are merged together and engineers previous findings were discussed in details but they also shed
work across the entire application lifecycle and are not limited light on Deployment pain points, pathological cultures,
to single function. The focus is to add customer value, unproductive and wasteful work and critical role played by
eliminate waste, reduction of cycle time, and identification and mangers in any DevOps transformation. In the 2016[12] report,
removal of bottlenecks. DevOps is well explained with the focus was one of the most important aspects of DevOps
CAMS acronym, Culture Automation Monitoring and Sharing. culture: Quality, High-performing organizations spend twenty
It is a cultural movement that aligns people, processes, two percent less time on unplanned work and rework. As a
technology, towards a common goal of eliminating waste and result, they are able to spend twenty nine percent more time on
increasing value. Tools are used to build together a DevOps new work, such as new features or code. They are able to do
capability from an automation standpoint, also tools help to this because they build quality into each stage of the
allow sharing i.e. having true feedback loops between the development process through the use of continuous delivery
Developer and Operation teams. They can also be used to practices, instead of retrofitting quality at the end of a
share ideas. Implementing DevOps can increase the company development cycle. Also, they showed that undertaking
evaluation, job satisfaction, and promote a culture of sharing technology transformation can produce sizeable cost savings
and learning.                                                       for any organization. Moving a step ahead in 2017 survey
report [13] they showed that loosely coupled architecture and are delivered. A DevOps organization understands that there’s
teams is the strongest predictor of continuous delivery.      no time for long delays therefore the multiyear projects are
                                                              shrunk down to small units and instead of releasing the entire
   However, all these reports and literature reviews missed a software at once, versions of the software are continuously
key point ‘what is the executive summary of the entire released. This can only be realized when a cultural and
DevOps?’. This survey provides the required executive organizational change is achieved by realizing the values of
summary for any person who wants to implement DevOps by DevOps in the organization.
understanding what DevOps actually means and the tools that
you may need to realize it.                                                    IV. REALIZING DEVOPS
    III. SOLVING TRADITIONAL IT PROBLEMS VIA                           The whole aim of DevOps is to add value and improve the
                     DEVOPS                                        flow within the organization. It’s about freeing up the resources
       Every Industry or company is in dire need to bring the      and eliminating waste, to work systematically to get rid of any
software into the core of their business for instance, customer    non-value-added process, to reduce the cycle time i.e. the time
service is often provided through software. Companies              customer orders to the time the product is actually delivered.
following traditional IT practices can have silo teams at          DevOps is also about sharing information, not only within the
various stages of the software delivery pipeline. These teams      team but also with other teams. It works on the concept of
are skill centric, made by banding together the people with        work being pulled, not pushed and avoiding bottlenecks. In
same skill set in one team. This drives greater utilization, and   words of John Willis DevOps can be explained with CAMS
benefit from economies of scale. However, in such typical IT       acronym, Culture Automation Monitoring and Sharing. It is a
environment every new feature has to pass at least 3-4 silos       cultural movement that aligns people, process, and technology
before being delivered to the end customer in which it spends      towards a common goal of eliminating waste and increasing
80% of the time waiting between silos. A DevOps organization       value using some accompanying technologies.
instead has cells which consist of cross functional teams,
focused on single software.                                          A. Cultural Change
                                                                         Transforming the traditional IT organization to a DevOps
       Given the modern demands the traditional IT practice Organization starts with reestablishing the purpose of the
involving the use of Commercial off the Shelf (Cots) software organization. Questions need to be asked that what has to be
is dying and the companies are moving towards using Custom changed in order that DevOps values can be realized. Realizing
software’s under DevOps , where the companies use open DevOps may require identification of the shared goals of the
source software and cater it as per the needs of the organization, fair and common compensation formulae, values
organization.         In the present market trends, the business of the organization etc. A DevOps organization quality is
objectives are changing frequently; a product developed prioritized over deadlines, staffs isn’t considered to be easily
following traditional IT practices may be missing some replaceable or interchangeable rather they are considered as an
                                                                     asset to the organization. These cultural changes are inevitable
essential features and may not fulfill the changed business
                                                                     if an organization has to realize the values of DevOps.
objectives as they would have changed while the product was
being developed. Instead in DevOps, small versions of the                This all begins by empowering the employees so that they
products are developed and released continuously until the can make the required decisions to maintain the service. Like,
entire and final version comes out. This helps the team to cope Developers can raise alarm if they feel the quality of the
up with the ever changing business needs of the client. product or service is being compromised at any point of time.
Continuous release of product in form of versions also reduces The employees should be allowed to take the ownership. With
the risk by daily integrating the code into the trunk, automated Empowerment comes Accountability, the entire teams are to be
testing, ensuring all environments are in sync. In simpler held accountable for the product, project, entire service
terms, code is promoted from one stage to another if and only success, and quality. A measurement of success of application
if, it is sure that it will work in the production.                  of DevOps principles is done using quality as a factor. Quality
                                                                     is maintained from the start itself. Quality Assurance teams and
        In traditional IT practices after a project is completed the testers are not relied upon for catching defects in the software;
entire team involving Developers, testers, Project Managers instead the developers are held accountable for delivering good
move to a new project and the software developed becomes code. An environment is created where teams are committed
one of the many applications maintained by the company. But, towards excellence. In case of a failure, the team responsible
when an issue occurs during the maintenance period, after the should accept the accountability for the mistake and other
team has dispersed, there is no one to take the responsibility. teams should volunteer too.
This can lead to infighting and finger pointing, which could
cost a potential client. A DevOps organization avoids this by            This creates another great cultural aspect of DevOps,
understanding that failure is inevitable. So , instead of trying to  Teamwork.    Teamwork is Development, Project Management,
                                                                     Operations, Testing, and Quality Assurance all working
avoid failure and finger pointing they try to understand the
                                                                     together both in normal and crisis times. It creates a sense of
failure, put up a fairly small team together, recover fast and get
                                                                     collaboration, during crisis hours; deep relationships between
the product online again.                                            the members of the teams create a team by bringing individuals
                                                                   together to solve the problem. Teamwork helps in creating a
      Traditional IT companies need to develop a want for          sense of mutual respect within the organization, where each
incremental values. In most of these companies, there are          and every one is valued for the unique skill set they bring to the
massive, multiyear projects that constantly miss budgets, and      table.
timelines. CIOs and CEOs have realized that speed can be a
competitive advantage. Long windows of 2-3 years can lead to           Learning, continuous improvement is also a huge part of
change in business objectives by the time the product or values    the cultural aspect of DevOps. A DevOps organization values
and encourages learning; this helps the individuals and teams      or code infested with bugs. It may be done to develop the code
to develop new required skills. An environment for learning        within the deadline or they may feel that it is the job of Testers.
can be facilitated by providing resources like online              This makes Quality Assurance and Testers as bottlenecks and
subscriptions to help teams learn, organizes conferences to        deployment fails. Therefore, rigorous integration testing is
brainstorm ideas, encourage public profiles and engagement         required to assure the quality and standards.
where teams can learn from the public. Teams can learn from
each other’s mistakes, they can provide knowledge about their         Another major bottleneck is Lack of Communication;
ongoing work to other teams and keep the curiosity alive          teams may not share the objectives and plans with other teams
within the organization. It helps to build trust within the       within the software delivery pipeline. This makes the work for
organization which is another important cultural aspect. A trust  various parts in the pipeline to be batched up, at one point of
between the various parts of the organization that lie on the     time, Quality Assurance may have nothing to test and then
supply chain is necessary.                                        suddenly they have huge amount of code to test within a short
                                                                  time window. Instead, if a feedback loop runs through the
B. Organizational Change                                          pipeline, Developers, Testers, Operations can evaluate the
    Organizational change is brought by understanding the outcome of their work. They can monitor and have knowledge
work being undertaken by the organization, alteration of team about what other parts of the DevOps Organization is working
structures, streamlining of procedures. DevOps leader, Jeff on.
Cessna, said that nothing useful can be designed without
understanding the people from whom it is being designed. A            Another possible alternative while altering the team
DevOps organization understands the system, the value structure can be reorient the various production lines around
provided by the system, and the waste being generated within specifically maintained dedicated teams, instead of the teams
the system. It understands the process, for ex. It identifies the moving from one product to another. This helps in maintaining
waste involved in the process or steps that can be taken to add the consistency, shared knowledge, and quicker delivery.
value to the customer. It also understands the flow between the DevOps organizational changes can be recognized when teams
Developers, Testers, Quality Assurance, Production and have higher commitment, as a part of the pipeline they
Support. The main aim is to understand the software delivery understand that the ultimate customer is the end user.
pipeline.                                                         Development may have Operations as the customer but
                                                                  Operations may have end user as the customer therefore,
    A bottleneck in an organization is a constraint that hinders everyone in the pipeline must be empowering the next team in
the smooth flow of the software delivery pipeline. A bottleneck the pipeline.
can be caused due to some technical problems, social debt,
people, tools, and even outside parties. Like, In inconsistent C. Automation Tools
environments, developers may not have production like                 The automation tools of DevOps help to realize the
environments to develop code against. The code works upon a framework created by applying the cultural and component
local administrator, but fails during the production. This may changes. DevOps tools automate the repetitive tasks, the
be due to the change in the configuration of the environments feedback loop between the Developers and Operations and
or sheer size, this leads to a bottleneck for Developers who other teams, identification and removal of waste, and smooth
have to wait for Operations to provide the right environment. It flow of software delivery pipeline. It consists of collaboration
also becomes a bottleneck for Deployment as Quality tools, planning tools, developer environment tools, continuous
Assurance cannot reproduce code with defects. Therefore, integration tools, and deployment tools.
Operations should maintain a similar environment everywhere,
whenever demanded.
                                                                     1) Collaboration tools: Collaboration is important aspect
    Organizational change can also be brought by altering the     of organizational  change as it helps teams to take action and
team structure. DevOps is reorganization, not a new team to       thus produce  results. Collaboration is regular communication
hire. The idea of DevOps is to promote collaboration and          of meaningful   information  with the decision making body. It
virtual teams that work together. In a typical IT organization, can be encouraged through downtime exercises or by
after a project is deployed a skeleton team is left behind. This simulation of failures. Collaboration tools includes real-time
leads to loss of the tribal knowledge as the original team has chat boxes, discussion rooms, knowledge repositories and
disbanded so in face of crisis, specialists are brought in to many more. All these help in avoiding knowledge waste i.e.
solve the problem. This can be solved through DevOps disruption in the free flow and absorption of knowledge within
principle, which counteracts deploy and disband model, by the system, loss in date due to constant reshuffling, lack of
organizing teams purposefully around the internal products. In
                                                                  communication within teams and loss of key information. It
a DevOps organization, team of Developers, Quality
Assurance and all retain some ownership of the system and also helps to avoid waiting waste, for ex. Developers are
service moving forward. Therefore, in crisis people who have waiting for the environment to be created or updated,
worked upon the project and taken the accountability can be Developers waiting for the code to be tested, customer waiting,
easily brought in to solve the problem.                           and many more.
   Custom manual builds can also become a bottleneck as                    Collaboration tool like Skype and Lync, provide quick
they require constant update. Therefore, often there is an         one-to-one collaboration. The video chat and conferencing
inventory of useful features available in the source control but   engages teams together which helps in taking quick decisions
cannot be used in Deployment or Development phases as they         or quick question and answer session. However, Skype has to
need to be updated. This leads to unreliable and inconsistent      be downloaded, configured, and installed on various systems,
long running custom builds, that can be avoided through
                                                                   tools like CampeFire are web-based group chat tool that lets
continuous integration and delivery tools. Poor quality is
another major bottleneck, in absence of accountability and         you set up password-protected chat rooms in just seconds. A
shared excellence, Developers may forward incomplete code          client, colleague, or a vendor can be invited to chat, collaborate
and make decisions but, these have limited functionalities.         effectively will help to know that although technicality of the
Another useful way is Documentation; an accessible and              system is correct, but an error has occurred in customer
updatable documentation help teams and keeps the document           experience and they cannot use the system correctly. In such
relevant. GitHub Wiki which comes with every GitHub                 scenarios tools like Microsoft System Center, is able to
repository is easily editable and helps to keep track of the        perform group based collective management and monitoring of
commits made to the page. Like someone can store the coding         multiple systems in a Microsoft environment. Logstash is
standards for APIs or exceptional handling strategy. It helps to    another important tool that integrates data from multitude
maintain to persistent information.                                 sources like logs, metrics, web applications, and various AWS
                                                                    services all in continuous streaming fashion. Logstash filter
    2) Planning tools: To implement DevOps values like              parse each event to identify name fields and build structure for
communication, transparency, and teamwork, teams are                a common format that can provide easier accelerated analysis
engaged in planning. This requires formal project management        and business values. NewRelic is another tool that is built
tools; Kanaban Boards is one such work and workflow                 around the concepts of DevOps and has designed user interface
visualization tool that uses sticky notes on a whiteboard to        that can be viewed by the entire team to track the changes in
communicate status, progress and issues. It can be used to          real-time. Through it, services can be pinged to check their
share information, distribute ownership of tasks, maintain          health, latency, response time and thus, providing a holistic
transparency, and much more. Like once a week Quality               view of the service.
Assurance, Development, Design and Project Management,
Product Management, and Operations come together and                       Tools like Kibana can be used to make charts, rank data,
review the business objectives. Together, they prioritize the       explore numbers and much more. It turns the raw data into
needs and put forward feedback on the priority list. This helps     information from which knowledge can be derived. Logstash
in maintaining the transparency, which reduces the knowledge        delivers useful insights through the Elasticsearch, similarly
waste and confusion about the blockers in upstream and              Graphite and StatsD can be used for statistics, rendering
downstream also have planning features, online view which           graphs, or time series analysis. Monitoring helps in taking
can used to manage the product backlog, assign things to            smart decisions using the information emitted by the system. It
individual sprints and much more. JIRA is another important         helps to understand the system from inside out and outside in.
tool with Agile Roadmap planning feature that can be used to        These tools can do monitoring of the individual components
track progress and easily share plan to the stakeholders.           inside the system while being outside the system.
    3) Issue Tracking Tools: Issue tracking is all about rapid          5) Configuration Management Tools: Configuration
response, to collect, triage, and respond to the issues such that   management is one of the most important parts of DevOps, it
it solves the issue raised by the subject. The subject can be a     enforces a state to avoid configuration drift by using
third party to the organization like the customer or it can be      automation to achieve the required consistency. Like
someone within the organization like Developers or Operations       establishing a particular server state while the server is online,
team member. Zendesk is a tool that creates knowledge base          configurations can potentially change from server to server,
over time by collecting information from the support teams          when one quickly fixes them while forgetting to maintain
about the customer service issues they have been receiving          consistency elsewhere. Therefore, automation is necessary to
over time. Through this knowledge base, it allows to create an      enforce consistency which in turn requires configuration
online, customizable, help centre that can solve the third party    management tools. In this scenario, tools can be used to
i.e. customer issues. It has built in Artificial Intelligence       maintain a large set of servers with repeatable and automated
powered Answer bot, a feature, that can send customers most         configuration enforcement by treating infrastructure as code
relevant documents on the issue while they wait for an agent.       that can be source controlled and deployed.
However, when it comes to solving issues raised by people
within the organization, other tools have to be looked upon. If          DevOps, abstracts environment like a configuration file
an organization tier 1 person collects information and hands it   which can be deployed easily and any changes are made
off to another team, which puts it into their bug database, then  systematically rather than manually. Like on a cloud platform,
it goes to the developers as a part of feature, all achieved by   servers are not manually updated with a new load balancing
copying data multiple times. This leads to knowledge waste,       policy rather it is performed centrally or pushed into affected
transportation waste, and motion waste. Tools like JIRA, can      servers all at once. This helps in maintaining consistency, one
be used to track and solve such issues that rise within the       of the key values of DevOps. It avoids time wastage in
organization. It also supports continuous deployment and          correction of manual defects, instead of Developers tweaking
integration. It provides a shared list of issues on which people  individual production machines, configuration tools are used to
can interact to solve them.                                       push services along the deployment pipeline with a detailed
                                                                  audit trail. It enforces a systematic state and allows controlled
    4) Monitoring Tools: DevOps success potentially hinges access.
upon the manner in which system is monitored. Like, after
release it is important to have the telemetry in place to measure        There are tools like Chef, where one can create
the positive and negative impacts of the release. This requires cookbooks and recipes with Ruby and manage clusters of
monitoring of the business system metrics before and after the Linux servers from a central server or perform Chef Solo,
release. There may be no negative system performance after without a centralized server, where each server maintains its
deployment but, new customer sign-ups have almost cratered own configuration locally. It also has Azure integration, thus
and no new orders are coming in. Monitoring the system allowing cloud integration with the tools. Another great tool,
Puppet can be used to create declarative infrastructure             hypervisor technology. It is consistent and can be set up using a
definitions; also the entire lifecycle can be managed starting      single command ‘vagrantup’. It can also be used to configure
from provisioning to runtime, deployment and reporting.             networks, set up multi-machine configurations. Like an
Puppet is open source so it can be customized to support the        operation team can use it to do a quick development, test
needs of the organization to manage the clusters of Windows         locally and use the same workflow to test on the cloud. It also
and Linux servers. It comes with lot of prebuilt modules for        has Vagrant Cloud, which allows sharing of servers with base
managing and maintaining commercial software and open               OS as Ubuntu, Windows, or Linux through a HTTP port or as a
source software both. However, both Chef and Puppet require         SSH client so that software can be run upon them for
pure Ruby knowledge.                                                experimental purposes. It realizes infrastructure configuration
                                                                    file, as a code.
        Another great tool is Salt, based on Python and it can be
used to set up angel list model that uses SSH instead of the         8) Continuous Integration tool: Continuous integration is
idea of agents on individual boxes over the centralized server   about realizing one of the most important values of DevOps,
model. However, it also supports a centralized server or a       speed. It is an incremental process to prevent the last-minute
master server, or one can run minions all over the windows and   integration problems. In most of the big enterprise projects, last
linux machines. It is focussed on high speed communication       phase integration testing turns out to be the most painful part of
between the nodes over the polling strategy used by Chef or      the project, where all the independently developed components
Puppet. Ansible is another great tool that uses SSH for          are taken and made to work together. It involves a lot of fixing
automating configuration management, provisioning and more.      which is inevitable. However, in continuous integration, there
It has a concept of playbook for configuring and deploying and   are centralized build engines, coupled with automated test
orchestrating deployments. However, it does not come up with     suites, automated security inspection and other code inspection
a lot of support for Windows. Therefore, with these tools a      suites, that verify code quality before committing the build.
desired state of configuration can be achieved over the          This leads to continuous build, test and release which helps to
windows and Linux servers easily. Features and roles can be      realize the business objective before they change and gives an
enabled or disabled, registers can be managed, software can be   advantage over the competitors by maintaining the speed. It
deployed and have a central configuration with a pull server     also removes the bottleneck at Quality Assurance where
and push things out to individual machines.                      continuous integration not allows works to be piled up. The
                                                                 constant availability of working code and immediate feedback
    6) Source Contol Tools: One of the key points of to developers if the build fails maintains quality assurance and
Configuration management is to allow systematic changes but reduces defect waste.
to ensure this controlled access is necessary. Source control is
used to closely guard the software assets i.e. code and for              Tools like TeamCity, work well with Visual Studio is
configuration of all the environments. So, if Infrastructure good for .Net solutions and supports NuGet. It allows testing
configuration is performed and it passes the testing phase but before any commits are made to the changes and also shows
fails during deployment, one can compare the progress reports. Tools like Hudson, now Jenkins, can be used
configurationally changes that took place before and after the also for monitoring software builds while quickly integrating
code were deployed. If something works differently than it is changes. It can distribute builds across servers for complicated
supposed to, source control tree can be looked upon to find by builds. Another tool TravisCI require least maintenance and
whom, when and where the change has been made that caused integrates well with GitHub, it also supports a wide range of
the behaviour in question. It provides a better audit trail, programming languages.
security and compliance to the environment. GitHub is the
most widely used web-based hosting service for version               9) Deployment tool: The principle of continuous
control and Source Code Management. It provides access integration results in continuous deployment, it means that
control and several other features like bug tracking, feature every new build goes for production immediately. Deployment
requests, task management and wikis for every project.           tools are used to make deployment more reliable, it encourages
                                                                 thoughtful collaboration between the Developers and Operation
    7) Development Environment Tools: Development and helps to make deployment an automated process. Like
Environment tools are used to accelerate social development there may be a bug fixed or there can be a compliance and
and enforce consistency. It removes the problem of code not security problem that has been solved and these changes are
working in different environments, like it is working over the pushed till production. Deployment tools give an audit trail
local machine of the developer but fails during the production. from the starting till production, so that if any errors have been
These problems can also be solved using the configuration made, can be caught. It brings DevOps to life, where all the
management tools, like providing developer with the similar tools up till now come together and help to realize value to the
configurations as in the production environment. In addition to end user.
that, new tools like web-based IDEs have emerged. Tools like
Codenvy, is complete browser-based development with a                    A tool like CloudFormation, in Amazon Web Services is
whole host of languages. It is useful in social development used to deploy environments and Elastic Beanstalk is used for
scenarios, where collaborative development like pair code deployments. Environment deployment can be achieved
programming is being performed between teams.                    via templates. Packer is another great open source tool that
                                                                 creates images for platforms using provisions that configure the
       Another great tool is Vagrant, it is a portable work running machine before turning them into Vagrant image or a
environment that can be source controlled and run on any VMware template or AWS machine image. All these templates
can be then run as a command line built which have latest Chef                              Configuration    Provides      cookbooks      and
                                                                                            Management       recipies to manage clusters of
code. So, instead of patching or updating a server, images can
                                                                                                             Linux or Windows servers
be used to simply replace them. Tools like Packer make image                                                 individually (Chef Solo) or
template creation much simpler.                                                                              centrally.
                                                                        Puppet              Configuration    An open source software that
                                                                                            Management       can be customized as per the
       Docker is another great tool; it is a Linux technology for                                            needs of the organization using
creating isolated containers that are portable between the                                                   the pre-built features.
machines. This is OS virtualization versus server virtualisation. Salt                      Configuration    Focussed on high speed
The Operating System now acts as hypervisor and manages the                                 Management       communication over the poll
                                                                                                             strategy followed by other
containers deployed over it. These individual containers have                                                Configuration       Management
isolated resources, CPU, memory, network, virtual interfaces,                                                tools.
and content isolation. This provides a higher density use of a Ansible                      Configuration    Makes use of SSH technology
                                                                                            Management       and also has features and roles
virtual machine and since it can be used on any hardware, it is                                              that can be enabled and
employed more and more in the continuous deployment                                                          disabled to maintain a desired
pipeline and continuous integration pipeline where the code                                                  state of configuration.
can be tested over different containers.                          GitHub                    Source Control   Web-based hosting service that
                                                                                                             provides version control and
                                                                                                             source code management.
       Octopus is another great tool that works well with both Codenvy                      Development      A web-based development tool
ASP.NET and TeamCity. It can be deployed in Azure                                           Environment      that allows pair programming.
environment and provides information related to the latest Vagrant                          Development
                                                                                            Environment
                                                                                                             Has Vagrant Cloud that allows
                                                                                                             sharing of servers through a
deployments made, its state and other valuable insights. It can                                              HTTP port or SSH client so that
be used to manage application configurations that are                                                        software can be run from
environment sensitive like IIS settings. It can introduce                                                    anywhere.
                                                                TeamCity                    Continuous       Works well with Visual Studio
approvals and manual interventions as everything cannot be                                  Integration      Online and supports NuGet,
automated. It even allows self-service deployments with role-                                                allows testing before commits
based access.                                                                                                are made and generates reports
                                                                                                             thereafter.
                                                                        Jenkins             Continuous       Allows monitoring of software
           TABLE1. DEVOPS TOOLS AND THEIR FEATURES
                                                                                            Integration      builds along with integrating
Tools               Type            Features                                                                 changes.
Skype, Lync                         Provides Chat boxes and video       TravisCI            Continuous       Supports wide range of
                    Collaboration   chat features for both one to                           Integration      programming languages and
                                    one communication and teams                                              integrates well with GitHub
CampeFire           Collaboration   Sets up browser based,              CloudFromation      Deployment       Amazon Web Service based
                                    password secure chat rooms for                                           environment           deployment
                                    teams within minutes                                                     solution, its variant Elastic
GitHub Wiki         Collaboration,  Easily updatable blog like                                               Beanstalk      is    for    code
                    Documentation   pages that helps to familiarize                                          deployments.
                                    any new participant with the        Packer              Deployment       Uses images to create a server,
                                    ongoing work.                                                            and templates can be run as a
Kanban borads       Planning, Issue Communicates status, progress                                            command line built
                    Tracking        and issues to the entire team       Docker              Deployment       Creates isolated containers on
                                    using simple visualization like                                          OS thus allowing higher density
                                    sticky notes on a whiteboard                                             use of Virtual Machines.
JIRA                Planning, Issue The Agile Roadmap feature of
                    Tracking        JIRA also allows to share
                                    progress with stakeholders.         Octopus             Deployment       Works well with ASP.NET and
Zendesk             Issue Tracking  Allows to create online,                                                 TeamCity.
                                    customizable, help centre and
                                    provide excellent customer
                                    service using Knowledge stored
                                    in its knowledge base
Microsoft System    Monitoring      Monitors multiple system in a                        IV. MYTHS ABOUT DEVOPS
Centre                              Microsoft environment.
Logstash and        Monitoring      LogStash         along       with        Although change is inevitable yet it is not easily
ElasticSearch                       ElasticSearch integrates data        accepted so every organization will raise some objections
                                    from multiple sources and
                                    explores data to provide
                                                                         before employing DevOps within its software delivery
                                    valuable real-time insights.         pipeline. With the advent of Cloud Computing, most of the
NewRelic            Monitoring      Interactive     User    Interface    IT business units of the organization are being outsourced as
                                    allows the entire team to track      executives don’t think IT has value and are thus decreasing
                                    changes in real time and
                                                                         investment into it. However, in such scenarios one needs to
                                    provides holistic view of the
                                    services                             incubate the ideas of DevOps more into the organization so
Kibana              Monitoring      Can rank, chart data to provide      that IT can deliver customized software that can be useful to
                                    insights for monitoring the          other business units. Executives need to realize that they
                                    system                               require a cultural and organizational change to build the
Graphite, StatsD    Monitoring      Provides statically rendered
                                    graphs, time series analysis and     trust back between the various units of the company and
                                    other      statically    relevant    remove such myths. The various other myths are-
                                    information by monitoring the
                                    system changes.
                                                                       teams that have shared knowledge and shared
   Ignorance- organization often sees DevOps only as                  ownership of the service can be formed.
    Quality enforcement and object to its                             Lack of Knowledge- A big objection can be that
    implementation on the grounds that they already                    none of the teams know about DevOps. The answer
    have Quality Assurance and Release team. This is                   to this is, learn. DevOps is not always hardcore
    because they have a wrong perspective about                        technical skills, it is better communication,
    DevOps, DevOps is a mind shift, cultural and                       teamwork and continuous improvement. It is also a
    organizational shift. It is not merely having                      skill set that has to be developed so that
    separate disciplines, DevOps has feature teams,                    organization can improve its software delivery
    software teams, and service teams that are focussed                pipeline and most importantly customer service
    on customer service and have been embedded in                      experience.
    various disciplines.
   Security- It is a myth that if Developers touch the                                   CONCLUSION
    production, information security problems and code            DevOps is a cultural and organizational change that can
    security problems can arise. However, this can be        be incorporated within the environment by focusing on why
    solved easily using DevOps, DevOps focus a lot on        it is needed, changing accountability, trusting each other to
    quality, it is one of the main criteria for having       work towards a shared objective, identifying bottlenecks,
    organizational change and quality can reduce the         creating dynamic teams, changing the mode of thinking,
    security vulnerabilities. DevOps push code faster        rearrange more around services rather than pump and dump
    through the pipeline and pushing code quickly            strategy and delivering persistent values. With DevOps
                                                             mindset employees are happier and systems have lesser
    means that vulnerability can actually be patched         defects that can be fixed faster using the automation tools
    faster. Also, automated mirror test environments         like collaboration tools, issue tracking tools, source control
    provide security testing before production. All this     and management tools.
    is realized using DevOps and removes the question
    of security.                                                                          REFERENCES
   Remote teams- Most of the times DevOps teams             [1] M. Huttermann.: DevOps for Developers, vol. 1. Springer (2012)
    are not locally available, it can be an off-shore        [2]J.Willis:     What     devops     means      to  me,     July    2010.
    team. It can be tricky, but with help of right           http://www.getchef.com/blog/ 2010/07/16/what-devops-means-to-me/
    collaboration tools and shared culture and vision it     [3] DeGrandis, D.: Devops: So you say you want a revolution? Cutter IT J.
    can be made possible. Instead if a major part of         24(8), 34–39 (2011)
    software delivery pipeline is outsourced or              [4] J. Humble., J. Molesky : Why enterprises must adopt devops to enable
    developed under a partnership agreement by some          continuous delivery. Cutter IT J.24(8), 6–12 (2011)
    third party, it reduces the control of the               [5] T. A. Limoncelli, D. Hughes, L. L. Lisa themedevops: New challenges
    organization over the particular part of the pipeline.   proven values. Login 36(4), 46–48 (2011)
   Impact of DevOps on Operations- DevOps does              [6] M. Loukides: What is DevOps? O’Reilly Media, Inc. (2012)
    not adversely effects the Operation team; DevOps         [7] S.K. Bang, S. Chung, Y. Choh, M. Dupuis : “A grounded theory
    means both Developers and Operations work                analysis of modern web applications: knowledge, skills, and abilities for
    jointly to deliver software. Operations still has to     devops.” Proc. of the 2nd Annual Conference on Research in Information
    provide quality environments to Developers,              Technology, RIIT 2013, pp. 61–62. ACM, New York (2013)
    Testers, Production and others. Operations have to       [8] J. Roche: Adopting devops practices in quality assurance.
    configure, monitor, maintain and tune the                Communications of the ACM 56(11), 38–43 (2013)
    environments. DevOps is all about Developers and         [9] Puppet Labs and IT Revolution Press. 2013 state of devops report
    Operations working together, understanding their         (2013). https:// puppetlabs.com/wp-content/uploads/2013/03/2013-state-of-
    part in their software delivery pipeline, creating       devops-report.pdf (Accessed 19 December 2018)
    feedback loops and optimizing each other.                [10] Puppet Labs, IT Revolution Press, and Thoughtworks. 2014 state of
    Developers cant expected to construct network            devops report (2014). http://puppetlabs.com/sites/default/files/2014-state-
    topology or troubleshoot all server OS issues but, it    of-devops-report. pdf (Accessed 19 December 2018)
    does change their role by adding more value added        [11] Puppet Labs, IT Revolution Press, and Thoughtworks. 2015 state of
    roles.                                                   devops report (2015). https://puppet.com/resources/whitepaper/2015-state-
   Legacy Systems- It is often argued that Legacy           devops-report. (Accessed 19 December 2018)
    systems cannot support the new tools and provide         [12] Puppet Labs, IT Revolution Press, and Thoughtworks. 2016 state of
    the required changes. However, DevOps does not           devops report (2016). https://puppet.com/resources/whitepaper/2016-state-
    only mean automation tools, with legacy systems          of-devops-report. (Accessed 19 December 2018)
    one can build up the necessary flow leading up to        [13] Puppet Labs, IT Revolution Press, and Thoughtworks. 2017 state of
    the legacy systems to release stuff effectively,         devops report (2017). https://puppet.com/blog/2017-state-devops-report-
    efficiently test and verify the code changes.            here. (Accessed 19 December 2018)
    Continuous integration, scripted deployments can
    still be performed and in DevOps culture Service