Some days it may feel like the role of developers is to make stuff that destroys your stuff – the bedrock of servers, websites and databases that you administer. Whilst developers create some of these things, there is little point if the environment that you administer can’t integrate them and keep them secure and functioning.
Whilst you’re accountable for application availability and performance, for keeping the IT environment stable, secure and always on, developers have a business mandate to make new things. They are asked to make them fast – new features, new services, new revenue streams. So, of course you are pulled in different directions! What about security, people! might be your plea, whilst you can literally watch them plotting a shadow IT workaround that dodges your need to safeguard the system. And it’s you, system administrators, that must deal with crotchety calls from the business when their app goes wonky, or there are availability issues. For the business, there’s availability, and then there’s everything else, but it doesn’t always feel like this is a shared understanding between developers and administrators. You live with the results.
All of this has resulted in a lot of PowerPointing about the need to bring Ops and Dev closer together. Sometimes it’s called DevOps, but it’s always about how each side needs to communicate more to manage production applications efficiently. Let’s start with understanding more about what developers do.
What do developers do?
Before any application is deployed in your data centre or in the cloud, developers have received a brief from the business about a need or proposed a solution to a business problem. Then they have designed, architected and coded their application, usually starting on a laptop. They have also integrated the various components after selecting and testing them. They’ve made prototypes, ensured function testing, and demonstrated its capability tothe business. Now it’s ready for production.
What do developers need?
Speed: Developers must often wait weeks for Ops’ procurement and provisioning wheel to turn for their request(s) to be handled. Automation of workflows helps, so that developers’ ticket requests for infrastructure and software, and configuring and copying database software are not manually handled. A self-service, automated private or hybrid cloud for on-demand provisioning can help developers to optimise the process of delivering working code into production. As DevOps.com explains, developers have different needs, and the provisioning process needs to accommodate and enable them to manage their own initial configurations: “The cloud platform should offer a set of automated provisioning tools to allow developers and testers to create their own dev/test environments. The cloud solution should include both a self-service user interface and an API-driven infrastructure-as-code that lets developers create VMs and databases, access storage, set up network connections, etc., using RESTful API coding.” This helps to bridge the divide between business needs and accountability, and between the division of labour reflected in the Dev/Ops roles.
Flexibility and freedom to innovate: Today’s developers are looking to container technology to provide the flexibility and freedom they need to create. These software-defined application environments, which host individual applications or services, are changing how developers deal with the cloud, microservices architecture, and security. And it’s making applications faster to deploy, and easier to update and isolate. Modern applications can now be deployed as a set of microservices hosted on distributed infrastructure in a consistent deployment environment.
These are just some of the ways Operations can become the enablers of innovation, removing blockers for developers and keeping the system available and safe.