Automated DevOps - Now’s the Time
With the wide of adoption of the cloud and Software as a Service (SaaS), Infrastructure as a Service (IaaS), and Platform as a Service (PaaS) models for application development and deployment, DevOps has become the de facto methodology for application deployment. Not everyone, however, can just jump on the DevOps train; a lot of commercial companies, especially larger enterprises, have built applications, processes, and services over many years. Many of these are monolithic in nature, so they're not so easily divided up into components and put into distributed compute architectures. However, many of these companies are staking their futures on digital transformation to create market advantages - speed of delivery and agility for competitive customer acquisition. For smaller companies without the legacy backlog of software supporting critical business functions, there is still a significant amount of manual overhead in adopting a DevOps methodology and tooling. Providing the combination of the development and deployment infrastructures and then staffing them with skilled DevOps engineers is not only incredibly time consuming – there’s not a whole lot of them out there today – but they’re also incredibly expensive if you can find them. While it would seem DevOps is critical for optimizing work in a cloud environment, it also seems that barriers to entry are extremely high for companies of any size.
Dominic Holt, Founder and CEO of harpoon has a more personal view of the DevOps evolution. “Long before any of these fancy DevOps technologies existed, it was a fairly simple process to be a software developer. You would write all your software on your development laptop, and you knew at some point it was going to have to run in a production environment. But you were never exactly sure what it was going to look like - how it was all going to come together. There was a lot of general anxiety about how it would run in production - would it scale? When DevOps was in its infancy there was this thought that all software developers were just going to learn DevOps, and this was going to become a basic requirement of the trade. But based on the evolution of DevOps I've seen so far, it’s not going to happen any time soon. I believe it's still a niche skill set in software development, much like embedded software development, or mobile software development, or data science are - not every software developer is going to go build statistical models or machine learning algorithms or mobile apps. I don't think there's going to be a point where all software developers just know everything about DevOps and make it part of their repertoire. What was really fascinating to me was that after I became reasonably fluent in DevOps as a software engineer, it completely changed the way I started building software. My focus became on improving speed to market, about making sure that when it is deployed, everything goes correctly the first time versus wasting all that time going back and forth, trying to make your software work in different environments. So now, when I'm writing a new software project, the very first thing I do is build a bunch of infrastructure: scripts, container images, etc., so that it will run in any environment. Then when I get to production, I know it's just going to work. I don't have that anxiety anymore; I don't have that cloud over my head. The difficulty is it took me 12 to 24 months to even become dangerous with these tools and frameworks. A lot of software developers are not going to pick up those skillsets. I don't think it's a sustainable model to have to hire extremely expensive DevOps engineers with these niche skillsets to come in and build that initial infrastructure every time from scratch. Given the rate of change in technology it’s inevitable that automation technology will commoditize DevOps. Just as machine learning is hard and not everybody will become a data scientist you see the evolution towards automation. Amazon is making SageMaker and Data Robot is doing similar things. I think the natural evolution of technology is that we create these layers of abstraction that we overlay on top of very difficult functions that make them easier and cheaper. People in the future are going to look back on this moment now, and they're going to ask why did Mom spend millions of dollars building out custom scripts and containers every time she deployed a new piece of software? All I have to do is search for what component I need – compute, databases, containers, and drag and drop it and click some buttons, and it all just kind of works under the covers.”
Automated DevOps is not just the vision of a few bold technologists. Companies like harpoon have already started the process by implementing a unique visual layer overlaying Kubernetes that enables developers to literally drag and drop to deploy their software without having to write a single script or line of code. Moreover, it enables developers to add more capacity, scale, and data storage to their applications when and where they need it without having to rewrite their applications or pull them offline. Most importantly, critical security processes and compliance standards are baked into the harpoon environment so software can be deployed safely and securely. By using a product like harpoon, companies of all sizes get the benefits of a large DevOps team – speed to market, platform independence, achieve digital transformation more rapidly, and maintain highly secure environments without the cost, time, or training required to hire and deploy a full DevOps team. Technology has moved so far so fast that automated DevOps is the most likely evolutionary step in application development and deployment.