What is DevOps
DevOps is the coolest buzz words that is around in the industry. It sounds nice but what is it all about?
DevOps is the collaborative combination of DEVelopment and OPerationS.
DevOps is the combination of various software development practice that enables rapid application development and deployment.
DevOps is the mindset or culture that makes the collaborative development happen. This mindset no more allows silos of Developers, testers and operations. All are part of development engineering team. They work together to make the product successful.
As part of technical evolution, many helpful tools have emerged which makes team to deliver collaboratively, quickly, efficiently and transparently.
How exactly it differs from traditional method
Traditionally operations team comes at the tail end of the development cycle and helps in infrastructure provisioning. The operations team does not get any insights on the business requirements, products, performance expectations etc. Typically, the development team pushes the deployable to the testing team and then the deployable get thrown over the wall to the operations team to push it to respective environments. All these engineering functions operate in boundaries or silos.
In DevOps, the team consists of business analysts, developers, automation tester and operation engineers.
All team members are part of the product development; right from its inception, discussing requirement to architect, design, development to automated build, test, deploy to production. This way team collaboratively works and have open communication and transparency of details. Team understands the purpose and works towards it. Production landscape is visible to the team. The production metrics and application information is easily available to everyone. Team supports the product application together. With the available usage info, metrics information team finds improvement and optimization opportunities.
Team clearly knows the goal i.e. it could be reduce time to deploy & ship software or reduce operational expense, or make the product highly available etc.
DevOps makes use of various collaborative tools, automation tools and techniques to achieve the objective. The choices are discussed and debated in the team. Everybody’s opinion is respected. Unlike a traditional approach where the decisions are taken in heaven and implemented on the earth. 🙂
DevOps is more than usage of awesome tools and techniques, it is about culture change within the team, business unit rolling up to organizational culture change. We will see more about this when we discuss Agile and its scaled implementation.
Focusing specifically about DevOps tools and techniques, we will learn about infrastructure as a code, building automated development to deployment pipeline, scaling on demand, high availability, cost optimization techniques etc.
Dont worry, in the following articles, you will get to know about all the latest and greatest from Github to Jenkins, Chef to docker to Kubernetes, Hybrid cloud to the awesome clouds like Amazon Web Services.
There a lot of interesting ground to cover. Lets start.