The world we live in is constantly changing. Although most humans would like things to stay the same. Working in software development for almost twenty years I have seen multiple changes. From the technology to the way we use it. The traditional developer role is morphing as more companies use the DevOps approach.
It sounds like a great idea to push your developer and operations roles together. What that means in practice can be different for every organization. According to The Agile Admin, DevOps can be usefully defined; I propose this definition as a standard framework to more clearly discuss the various areas DevOps covers. Like Quality or Agile, DevOps is a large enough concept that it requires some nuance to fully understand. I guess it is quite a broad definition. That can be helpful in a new role like this.
For most of my technology career technology teams have broken down with development and operation/support teams. The school of thought is that these are each specialty that don’t seem to overlap. Out of the agile development changes, teams have started to push together various skillsets. DevOps will take these development specialists and team them up with admins or operational roles. The goal here is to evolve the work to automate more things. Empower these people to do more and leverage tools to increase velocity.
There are technical, cultural, and business benefits of adopting a DevOps practice. New Relic shares how it empowers continuous software delivery, increases productivity, and enables faster delivery of features. As organizations try to become more effective the DevOps revolution can help companies do more and more.
There a many practices that enable DevOps in an organization. Some of the most important is Continuous Integration. Essentially integrating code every time a check-in happens. This is not a new practice but an essential one. Coupled with a continuous delivery that brings fixes to production immediately, now this is a newer practice. This happens after numerous automated tests have run to approve the production deployment.
Some of the other popular DevOps practices are Microservices. They essentially create small services that run a simple task and communicate with other services through a defined interface or Application Programming Interface(API). Configuration management use code to change the configuration in repeatable and standardized ways. This frees up people from doing manual work. The last one we will discuss is infrastructure as code. This is where we provision code with version control and continuous integration. Using cloud resources we can modify resources programmatically.