What Is DevOps?
By Mitesh P Soni
DevOps is a buzzword in recent times and lot of people and organizations are using it frequently. There is no single right answer for the question “What is DevOps”. It is all about perception, experience and understanding of the culture of the organization and how it fits in the current era.
Let’s make it clear that DevOps is not a technology, tool or any innovative framework. It is more of a Philosophy and concept. We can also consider it as a culture of an organization where application lifecycle management is in the center of focus. However, DevOps is made of merging of two words 1) Development 2) Operations. Both the team has different responsibilities in the Application release management cycle. It is more related to communication, collaboration, feedback between different stakeholders such as developers, testers, infrastructure team, configuration management team, deployment team etc.
DevOps includes different sub concepts such as:
Continuous Integration: It is more of a culture of integrating application code or source code into the source code repositories such as SVN and GIT several times a day. Build tools such as Ant and Maven are used to verify check in by integrating source code repositories and continuous integration tools such as Jenkins, Atlassian Bamboo, etc.
Continuous Testing: Automated Testing or Unit testing to be more precise. Junit or Selenium is used for such kind of automated testing and these tools are integrated in the continuous integration behavior by tools.
Continuous Provisioning or Cloud Provisioning: Virtual machines or cloud instance are highly available, flexible and pay per use. It is beneficial to create different types of instances for different environment such as development, testing, staging, and production. Different cloud service providers such as Microsoft Azure, Amazon Web services can be used. Different Cloud service models can be taken into consideration such as Infrastructure as a Service or Platform as a Service.
Configuration Management: Configuration management is useful to make runtime environment ready in consistent manner across all the environments. Chef, Puppet or Ansible can be used as configuration management tools. It is very easy to manage resources with such tools in Cloud environment.
Continuous Delivery or Continuous Deployment: Continuous Delivery or Continuous Deployment is terms which used loosely in day to day use. Continuous Delivery can be used when package file is deployment ready into any environment while Continuous Deployment term can be used when package file is production deployment ready.
It is always useful to orchestrate end to end process of application release management. Visibility into orchestration gives insight into end to end automation process and that is highly useful in creating and maintaining DevOps culture.
Article Source: What Is DevOps?