In this article, we are going
to have a basic introduction to DevOps. what are the various goals,
benefits, and practices of implementing DevOps in any organization?
What
is DevOps
DevOps can be defined as
a culture or process or practice within an organization that increases the communication,
collaboration and integration of the Development (which includes the QA team) and
the Operations (IT Operations) teams. The aim is to automate and speed up the
software delivery process much more frequently and reliably.
Even though ‘Continuous
Delivery’ is another term that is often used in conjunction with DevOps, there are
some differences.
Some of the phases may
not fit in all kinds of services or products. Ex. ‘Operation’ phase is not relevant
in the case of a product that is shipped to an external customer. The operation
of that product falls under the customer’s operation life cycle.
DevOps
Goals
The goals of DevOps are
to make improvements across all components in the product and service delivery.
They include :
• Improved deployment
frequency
• Faster time to market
• Lower failure rates of
new releases
• Faster recovery time
from crashes or failures.
DevOps Benefits
Some of the advantages of DevOps are :
• Significantly shorter
time-to-market
• Improved customer
satisfaction
• Better product quality
• More reliable releases
• Improved productivity
and efficiency
• The increased ability
to build the right product by fast experimentation.
DevOps Practices
DevOps is more than just
a set of practices. There are many that are used in the industry. The following
section will list the top and commonly used practice in a DevOps process in an
IT organization.
i. Start small.
Trying to do too much at
once is a recipe for disaster. It is better to start small projects and gain the confidence of the team. Start a project that has a high success probability. This
could be a pilot or prototype or proof of concept project.
ii. Concentrate on the
process and not on the tools.
It is better to be a tool
independent and a good process should have the ability to replace one tool with
another without too much disruption.
iii. Put everything
under version control.
To reliably deploy an
application on to production, all the items that are required for building the
application: code, test cases, design documents, external libraries, databases and
anything that could be updated, has to be put under version control.
iv. Maintain a production-equivalent staging environment
Typically the development of the environment is different from production. So, to avoid issues that are found
only after going into production, like performance, access related and such, it
is advised to have a staging environment where all those issues can be found
before production.
v. Frequent deployment
to production
To make any new feature,
bug fixes, security patches to the customer ASAP, it is suggested to deploy
code frequently. It could be once for each sprint cycle in an Agile development
setup, or once every duration as fixed by the DevOps team (part of Release
Management).
vi. Automate build of
app environment
For a simple application,
this is not much of a concern. But for most complex applications, setting up
the run environment, like setting load balancer, databases, web server, network
interconnectivity and all things operation oriented, it is better to have an
automated way to DevOps Strategy Document build environment to
reduce time to set up and also reduce any human errors. Infrastructure as a
Service (IAAS) is used for this purpose.
vii. Automate deployment
of application
In addition to the above
environment build automation, it is also very beneficial to have automation to
deploy the application to the environment. This includes initializing the databases,
initial setup of the application, installation of dependencies and others. The automated
build and deployment can be achieved through ‘Infrastructure as a code’ methodology.
DevOps
Tools
Since DevOps is more of
a process, there is not a single tool that helps in deploying DevOps practice in
an organization. It is more of a ‘toolchain’, a suite of tools that helps in
the implementation of a chosen DevOps practice. DevOps implementation doesn’t
mean to throw away existing tools in favor of new ones. It involves in
integrating the existing tools and migrating the non-compliant tools to fit the chosen
practice/process. The process steps you need to consider for tools support are:
• Request capture and
ticket workflow
• Source Control
• Agile Planning
• Test Case Management
• Build automation
• Continuous deployment
• Release Management
• Automated test scripts
and Load Testing
• Feedback Management
• Team Collaboration
• Application Telemetry
• Lab Management
• Cloud provider
integration
amazing information and easy to understand thanks.
ReplyDevOps Course in Hyderabad
thanks for sharing,its very useful
Replyoracle training in chennai
oracle training institute in chennai
oracle training in bangalore
oracle training in hyderabad
oracle training
hadoop training in chennai
hadoop training in bangalore
Excellent blog DevOps Training in Bangalore | Certification | Online Training Course institute | DevOps Training in Hyderabad | Certification | Online Training Course institute | DevOps Training in Coimbatore | Certification | Online Training Course institute | DevOps Online Training | Certification | Devops Training Online
ReplyHi, Thanks for sharing nice stuff...
ReplyDevOps Training in Hyderabad