DevOps Fundamentals

DevOps Fundamentals

Understanding the basics right!

DevOps is a mindset, methodology, process, and set of practices. It is a collaboration between a Developer and Operations team involved in building, deploying, operating, and maintaining applications. It blends lean thinking with agile philosophy.

Let's understand how DevOps has evolved over the years and why companies are focusing on implementing DevOps culture in today's world. Back in 2008, the initiator of DevOps Patrick Debois, presentation on 10+ deploys per day: Dev and Ops Cooperation at Flickr helped in bringing out the ideas for DevOps and resolve the conflict of "It's not my code, it's your machines".Most of the development teams used the Waterfall model to develop the code which is time-consuming because of the larger size of the team and delays the process of deploying the code in production. To overcome this issue dedicated teams, smaller batch sizes, and automated processes helped in reducing the delivery time of the code in a production environment. Codes that were large and bundled for the production release were jammed resulting in lower productivity. Reduction in code size delivery helped the teams to increase their productivity. Software tools version incompatibility, licensing, system configurations, scaling, maintenance, and upgrades are taken care of by the DevOps team for smooth delivery of the code in the production environment hence reducing the chances for application failure. As a result, an organization can focus more on its goals.

Best Practices/Principles of DevOps

  • Continuous Improvement / End to end responsibility

  • Automate Everything you can

  • Customer Centric action

  • Cross-Functional autonomous teams

  • Security should be built into continuous integration and deployment processes during the migration to a cloud-based platform

  • Proper Devops tools selection

  • Service and Resource Governance

DevOps Tools

To implement DevOps and work within the DevOps setup, various tools are required. The selection of the tools is an integral part of an organization as it should be implemented based on the needs and objectives of the company. The below image describes well the tools that are used in DevOps.

  • Code: Git, JIRA, Confluence.

  • Build: Maven, Gradle

  • Test: Junit, Cucumber, Selenium

  • Release: Jenkins, Codeship

  • Deploy: Docker, AWS

  • Operate: Kubernetes, Ansible, Chef

  • Monitor: Splunk, Datadog,Grafana,Nagios,New relic