DevOps is one of the buzzwords that have emerged in recent times. Several people and organizations continue to use quite frequently. In fact, there is no exact answer to the question “What is DevOps?” Thus, it is about the experience, perception, and understanding of the organization. It also involves how it fits the current situation.
From this understanding, you can conclude that DevOps is not a tool, technology, or an innovative framework. Thus, it is more of concept and philosophy. Moreover, it is a culture of an organization where application lifecycle management is the point of focus.
DevOps is obtained from merging of these words: Development and Operations. This means that a team has various responsibilities in application release cycle. You should note that it has similarities with collaboration, communication, and feedback between the different stakeholders such as testers, developers, configuration management team, infrastructure team, and deployment team.
Sub-Concepts
Continuous Integration
This is a culture of integrating source code or application code into source code repositories like GIT and SVN several times daily. In fact, build tools such as Maven and Ant are used for verification of the integration source code. It also involves the integration of the continuous integration behavior by the tools.
Cloud provisioning
This is a situation where virtual machines are highly available, quite flexible, and pay per use. It is quite beneficial to develop various types of instances for various environments such as testing, development, staging, testing, and production. There are different cloud service providers like Amazon Web Services and Microsoft Azure. You can take some cloud service models into consideration like Platform as a service.
Configuration Management
It is quite helpful in making a runtime environment that is consistent across all environments. Ansible, Puppet, and Chef can be used as the configuration management tools. You will find them quite easy to manage the resources like tools used in Cloud environment.
Continuous Deployment
This is a term used to mean simply daily use. In this case, a package file is deployed into an environment that is ready. It is paramount to orchestrate an end to end process as far as application release management is concerned. You should note that visibility into orchestration offers insight into the automation process.Moreover, it is useful in creation and maintaining of DevOps culture.
DevOps is relatively new. Its meaning and roles continue changing. Fortunately, there are lots of books that are filled with the latest information. Thus, you are sure to get useful information that can enhance your understanding.