Many organizations are trying to find ways to bridge the gap between developers and operations to facilitate productive and efficient workflows. DevOps is the practice of ensuring than an organization’s development and physical environments and process are set up to deliver new builds into production rapidly.
Changing roles – DevOps
Developers, especially those who work in an Agile shop, have little difficulty with the migration to DevOps. They’re used to being assigned to one application or set of capabilities, so they tend to be deep vertically into one technology limiting the scope of their reach within that application, suite or platform.
Infrastructure and security professionals have traditionally been more horizontally aligned. It is rare that the infrastructure disciplines limit their scope to a particular application. They usually provide services across multiple applications. These roles struggle more with being attached to one product/application team. Traditionally, these resources relied on standards, streamlined and repeatable processes to keep the quality and the value high. Similar access, bandwidth, compute, storage, security features are provided to every application using the shared resources. The value these roles brought to our organisations was in the efficiency in which we leveraged their resources (technology, process or human) and how well we spread them across all our offerings. The value equation has changed. Velocity is what drives business. Efficiency only saves costs. Making the market requires a different mindset, thus leveraging our resources differently.
DevOps Teams run the entire Application
Soup to Nuts. Development, QA, Infrastructure, Security, Operations are all accountable for one application, its feature iterations, its uptime, its performance; almost everything. Integrate Agile and the project team is measured on how well it was able to keep its commitments to release a feature within a set time frame. It’s about releasing to the user community within a sprint. This means that you will deploy new code into an existing environment to provide a new capability to the technology consumer within a short time frame. Moving code to production must be nimble and quick and must be able to rollback quickly without taking down the system.
Releasing a feature by infrastructure is now obsolete. A pipeline handles the integration of the code within the code base and a build will be automatically be generated. This new accountable application team becomes essential to the development and operations of the application. All roles on the team become part of support.
Infrastructure based roles assigned to DevOps teams will evolve their roles. While they will still have some purview over shared resources, they will be measured along with the rest of the team on how well features were deployed on a set timeline in their assigned vertical. They will care about they same things they always did, but automation will compel them to learn to code.
Cloud and Infrastructure as Code
While cloud can be managed through graphic user interfaces, to manage at scale and participate in automated deployments, people need to learn to provision and configure using infrastructure as code.
“Born in the cloud” applications are immutable and not reliant on their operating systems (OS), which means that should OSs be required, they can and should be rebuilt on the fly. They aren’t patched, and you don’t troubleshoot them. You rebuild them using the latest build and the app doesn’t care. But you need to deploy them through code as the application counters may trigger scale outs and scale backs of compute, storage etc. Under the conditions where an event is triggered, your “infrastructure as code” can be invoked.
Platform services in the cloud are the future. Typical Infrastructure as a Service requires more care and feeding then Platform services where compute, storage, operating system and other base components are tackled by the cloud provider. Code is key to managing these services.
Continuous Integration, Continuous Delivery (CICD) Pipelines
CICD pipelines are highly effective in the management of releasing a feature. They help us automate the code releases into production. As soon as the code for a set features is ready for production it can be integrated into an existing code base and delivered to the user facing environment. This is done with no down time typically and is fully automated. There is still quality assurance and user acceptance testing occurring in a pre-prod environment, but the whole code release occurs with no manual intervention.
Bottom Line: Innovative Digital Capabilities Drive Value
In a digital economy, innovative digital capabilities will drive value generation for companies developing new products or layering on value to existing ones. Financial benefit will be driven by getting out there first and iterating on versions quickly as you take feedback from your consumer. Being the first to innovate will require agility in IT and they will have to automate processes to ensure timeliness, accuracy and still protect your reputation. DevOps needs to permeate more traditional shops and siloed groups need to be united in the support of a platform or a specific application