Dev Ops
Dev Ops
Dev Ops
Hello every one, Thank you for your great support to make me another
Knowledge share about Devops Topics and Automation Tools
1. Devops origin
DevOps is the offspring of agile software development – born from the
need to keep up with the increased software velocity and throughput agile
methods have achieved. Advancements in agile culture and methods over
the last decade exposed the need for a more holistic approach to the end-
to-end software delivery lifecycle.
What is Agile Software Development?
• Dev is often unaware of QA and Ops roadblocks that prevent the program
• QA and Ops are typically working across many features and have little
• Each group has opposing goals that can lead to inefficiency and finger
The Dev team that has a goal to ship as many features as possible, kicks a
new release “over the wall” to QA. Then the tester’s goal is to find as
many bugs as possible. When the testers bring their findings to Dev, the
developers become defensive and blame the testers that are testing the
environment for the bugs. The testers respond that it isn’t their testing
environment, but the developer’s code that is the problem.
Eventually the issues get worked out and QA kicks the debugged new
release “over the wall” to Ops. The Ops team’s goal is to limit changes to
their system, but they apprehensively release the code and the system
crashes. The finger pointing resumes.
Ops says that Dev provided them faulty artifacts. Dev says everything
worked fine in the test environment. The fire drills begin to debug the
system and get production stable. The production environment isn’t Dev’s
and QA’s responsibility, so they keep hands off while Ops spends all night
fixing the production issues.
Each day new code is deployed as the developers complete it. Automated
testing ensures the code is ready to be deployed. After the code passes all
the automated testing it is deployed to a small number of users. The new
code is monitored for a short period to ensure there are no unforeseen
problems and it is stable. The new code is then proliferated to the
remaining users once the monitoring shows that it is stable. Many, if not
all, of the steps after planning and development are done with no human
intervention.
The vertical axis depicts the three levels of the DevOps delivery chain:
continuous integration, continuous delivery and continuous deployment.
The DevOps community refers to organizations in the top right of the
DevOps continuum as pink unicorns because there are currently so few of
them that you don’t see them in the wild very often. Popular examples of
these unicorns are companies like Netflix, Etsy, Amazon, Pinterest,
Flicker, IMVU and Google. In a recent poll participants indicated where
their organizations fit on the DevOps continuum:
Another important point is that moving up and to the right takes time and
many organizations’ first step will be a blend of culture, tools and
continuous integration, so don’t be discouraged when you read an article
about how if you're “not doing DevOps” unless you're deploying all the
way into production without any human intervention.
DevOps can be a blend of culture, tools and maturity that make sense for
your organization and what makes sense will most likely evolve over time.
The important thing is to continually strive to break down the walls and
bottlenecks between the phases of software delivery by improving
collaboration and automation. In the following sections we dive deeper
into each aspect of the DevOps continuum to help you better understand
where you fit.
Waterfall Development
Continuous Integration
Continuous Delivery
Continuous Deployment
Teams that utilize continuous delivery don’t deploy untested code; instead,
newly created code runs through automated testing before it gets pushed
out to production. The code release typically only goes to a small
percentage of users and there’s an automated feedback loop that monitors
quality and usage before the code is propagated further.
There are a very small number of companies that are truly practicing
continuous deployment. Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU
and Google are popular examples of companies doing continuous
deployment.
While DevOps nirvana is often not the end goal for most enterprises, they
often focus on moving towards continuous delivery.
6. What Are the Values of DevOps?
DevOps focuses heavily on establishing a collaborative culture and
improving efficiency through automation with DevOps tools. While some
organizations and people tend to value one more than the other, the reality
is it takes a combination of both culture and tools to be successful. Here’s
what you need to know about these two DevOps values.
DevOps Culture
DevOps is just adding the operations’ mindset and maybe a team member
with some of those responsibilities into the agile team. Whereas before
DevOps progress is measured in terms of working software, with DevOps
progress is measured in terms of working software in the customer’s
hands.
To achieve this, Dev and Ops must break down the silos and collaborate
with one another, share responsibility for maintaining the system that runs
the software, and prepare the software to run on the system with increased
quality feedback and delivery automation.
DevOps Tools
Source control has probably been around for forty years, but it’s a major
component of continuous integration. Popular source code repository tools
are Git, Subversion, Cloudforce, Bitbucket and TFS.
Build Server
The build server is an automation tool that compiles the code in the source
code repository into executable code base. Popular tools are Jenkins,
SonarQube and Artifactory.
Configuration Management
Virtual Infrastructure
There are also private clouds. For example, VMware has vCloud. Private
virtual infrastructures enable you to run a cloud on top of the hardware in
your data center.
Virtual infrastructures combined with automation tools to empower
organizations practicing DevOps with the ability to configure a server
without any fingers on the keyboard. If you want to test your brand-new
code, you can automatically send it to your cloud infrastructure, build the
environment and then run all of the tests without human intervention.
Test Automation
Test automation has been around for a long time. DevOps testing focuses
on automated testing within your build pipeline to ensure that by the time
that you have a deployable build, you are confident it is ready to be
deployed. You can’t get to the point of continuous delivery where you’re
fairly confident without any human intervention that your code is
deployable without an extensive automated testing strategy. Popular tools
are Selenium and Water.
Pipeline Orchestration
Patrick had taken a consulting job for a large datacenter migration. He was
in charge of the testing, which meant he was spending a lot of time with
Dev and Ops. Patrick had always been bothered by the differences
between how Dev and Ops worked, but he became particularly frustrated
with the challenges of managing work across the two groups on this
datacenter migration.
2008
Fortunately, Patrick was so excited to see that someone else was interested
in solving the challenges of Dev and Ops working together that he tracked
down Andrew and they decided to start a Google group named Agile
System Administration.
2009
Patrick Debois watched the presentation in Belgium via a live stream and
was inspired to start his own conference, DevOpsDays, in Ghent, Belgium.
The conference brought together an energetic group of forward-thinking
minds trying to improve software deployment. What may be even more
important is that this group of people kept the conversation going on
Twitter with the hashtag DevOpsDays. In an effort to save Twitter
character space, people soon dropped days and the hashtag became
#DevOps.
2010
The following year, DevOpsDays were held in Australia and the U.S. Over
time, there were more and more DevOpsDays that were hosted in different
countries and cities around the world. The face-to-face meetings ignited
more and more people to get energized about DevOps until it had become
a full-on grassroots movement.
2011
Up until 2011, the DevOps movement has been fueled by individuals and
open source tools with little attention from analysts or vendors. But in
2011, the movement began to go mainstream, catching the attention of
analysts like Cameron Haight from Gartner and Jay Lyman of 451
Research. Big vendors started to market DevOps.
2012
2013
The public thirst for DevOps information inspired several authors to write
books on the topic. Notable examples are The Phoenix Project by Gene
Kim, Kevin Behr and George Spafford and Implementing Lean Software
Development by Mary and Tom Poppendiek.
Understand the collaboration and shared tools strategy for the Dev, QA,
DevOps teams need to come up with a common tools strategy that lets
them collaborate across development, testing, and deployment (see Figure
1). This does not mean that you should spend days arguing about tooling;
it means you work on a common strategy that includes DevOps...
• Processes
• Communications and collaboration planning
• Continuous development tools
• Continuous integration tools
• Continuous testing tools
• Continuous deployment tools
• Continuous operations and Cloud Ops tools
Coming up with a common tools strategy does not drive tool selection —
at least not at this point. It means picking a common share strategy that all
can agree upon and that is reflective of your business objectives for
DevOps.
Kanban tools provide the ability to see what you do today, or all the items
in context with each other. Also, it limits the amount of work in progress,
which helps balance flow-based approaches so that you don’t attempt to do
too much at once. Finally, Kanban tools can enhance flow. In Kanban,
when one work item is complete, the next highest item from the backlog
gets pushed to development.
Select tools that can help you understand the productivity of your DevOps
processes, both automated and manual, and to determine if they are
working in your favor. You need to do two things with these tools. First,
define which metrics are relevant to the DevOps processes, such as speed
to deployment versus testing errors found. Second, define automated
processes to correct issues without human involvement. An example
would be dealing with software scaling problems automatically on cloud-
based platforms.
is more than just automated testing; it’s the ability to take code
Test automation
and data and run standard testing routines to ensure the quality of the code,
the data, and the overall solution. With DevOps, testing must be
continuous. The ability to toss code and data into the process means you
need to place the code into a sandbox, assign test data to the application,
and run hundreds — or thousands — of tests that, when completed, will
automatically promote the code down the DevOps process, or return it
back to the developers for rework.
Part of the testing process should define the acceptance tests that will be a
part of each deployment, including levels of acceptance for the
infrastructure, applications, data, and even the test suite that you’ll use. For
the tool set selected, those charged with DevOps testing processes should
to spend time defining the acceptance tests, and ensuring that the tests
meet with the acceptance criteria selected.
The tool should also help to define a chain of communications with all
automated and human players in the loop. This includes an approach to
correct the problem in collaboration with everyone on the team, a
consensus as to what type of resolution you should apply, and a list of any
additional code or technology required. Then comes the push to
production, where the tool should help you define tracking to report
whether the resolution made it through automated testing, automated
deployment, and automated operations.
Tools :
Pick up the Automation Tools to execute the flow of work deliver for the
project driven based
Key Features
Buddy
Buddy is a smart CI/CD tool for web developers designed to lower the
entry threshold to DevOps. It uses delivery pipelines to build, test and
deploy software. The pipelines are created with over 100 ready-to-use
actions that can be arranged in any way – just like you build a house of
bricks.
Jenkins
Features:
Vagrant
• Vagrant is a DevOps tool. It allows building and managing virtual
machine environments in a single workflow. It offers easy-to-use
workflow and focuses on automation. Vagrant lowers development
environment setup time and increases production parity.
Features:
Pager Duty:
Key Features:
Prometheus:
Key Features:
Ganglia:
Ganglia DevOps tool offers teams with cluster and grid monitoring
capabilities. This tool is designed for high-performance computing
systems like clusters and grids.
Key Features:
8) Snort:
Key Features:
Splunk:
Key Features:
Nagios is another useful tool for DevOps. It helps DevOps teams to find,
and correct problems with network & infrastructure.
Key Features:
Chef :
Chef is a useful DevOps tool for achieving speed, scale, and consistency.
It is a Cloud based system. It can be used to ease out complex tasks and
perform automation.
Features:
Sumo Logic helps organizations to analyze and make sense of log data. It
combines security analytics with integrated threat intelligence for
advanced security analytics.
Key Features:
OverOps:
OverOps is the DevOps tool that gives root-cause of a bug and informs
about server crash to the team. It quickly identifies when and why code
breaks in production.
Key Features:
Key Features:
Docker:
Key Features:
Stackify Retrace:
Key Features:
CFEngine:
CFEngine is a DevOps tool for IT automation. It is an ideal tool for
configuration management. It helps teams to automate large-scale complex
infrastructure.
Key Features:
• Provides rapid solution with the execution time less than one second
• An open source configuration solution with an unmatched security
record
• It conducted billions of compliance checks in large-scale production
environments
• It allows deploying a model-based configuration change across
50,000 servers in very few minutes
Artifactory:
Features:
Capistrano:
Capistrano is another useful remote server automation tool for DevOps
teams. This tool supports scripting and executing arbitrary tasks.
Features:
Monit:
Monit is an Open Source DevOps tool. It is designed for managing and
monitoring UNIX systems. It conducts automatic maintenance, repair, and
executes meaningful actions in error situations.
Features:
Supervisor:
Features:
• Supervisor is configured using a simple INI-style config file which
is easy to learn
• This tool provides users a single place to start, stop, and monitor all
the processes
• It uses simple event notification to monitor programs written in any
language
• It is tested and supported on Linux, Mac OS X, FreeBSD, Solaris,
etc.
• It does not need compiler because it is written entirely in Python
Ansible:
Key Features:
Code Climate:
Code Climate is a DevOps tool that monitors the health of the code, from
the command line to the cloud. It helps users to fix issues easily and allows
the team to produce better code.
Features:
• It can easily integrate into any workflow
• It helps to identify fixes, and improve team's skills to produce
maintainable code
• With the Code climate, it is easy to increase the code quality
• Allow tracking progress instantly
Icinga
Key Features:
New Relic APM is a useful DevOps tool. It gains end to end visibility
across customer experience and dynamic infrastructure. It allows DevOps
team reduce the time for monitoring applications.
Features:
Juju:
Key Features:
ProductionMap:
Scalyr:
Features:
Rudder:
• Rudder is a DevOps solution for continuous configuration and
auditing. It is easy to use web-driven solution for IT automation.
Key Features:
Puppet Enterprise:
Features:
Graylog:
Graylog is a powerful log management and DevOps tool. It has many use
cases for monitoring SSH logins and unusual activities. Its basic version is
a free and open source.
Features:
UpGuard:
UpGuard helps DevOps teams around the world to gain visibility into their
technology.It integrates seamlessly with popular automation platforms
such as Puppet, Chef, and Ansible.
Features:
Thank you So much for viewing, Hope you have get some good
experience to know about Devops and Automations tools.
Senthilkumar.Sivakumar