2016 was a great year for the enterprise. We've seen a number of new technologies emerge - Docker v1.12 was launched with built-in orchestration, AWS added it's most powerful instances types, and the hybrid cloud (public+private) became the obvious choice for enterprises that migrate from legacy infrastructure. In this post, we look ahead to 2017, and forecast the top DevOps trends to watch out for this year.
Can’t contain the containers
DevOps is all about collaboration, synchronization, and teamwork. As we head out into 2017, one trend that’s definitely rocking everyone’s boat is the slow but steady shift towards containers and the fact that they will eventually catch up with VMs in terms of security and isolation. Even companies that aren’t using containers in production are using them extensively in development as a solid container-based workflow not only aids in agile application development but also with testing, staging, and fixing bugs.
One reason that containers have become the technology of choice for the DevOps world is the allowance for more agile infrastructure and the simplification of software development and delivery workflows. Most new technologies are generally associated with security risks mostly because they just haven’t been hardened by real world experiences yet and containers are getting plenty of real world experience now. In 2016, we saw a number of new security tools emerge for the container ecosystem like Docker Security Scanning, Clair and Hyper Containers and it isn’t going to be that long before containers are on par with VMs in terms of both security and isolation.
New container security tools will emerge
Docker security scanning is available as an add-on for both Docker Cloud and Docker Hub and can scan container images to make sure they’re free from known vulnerabilities and external exposure. Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers while Hyper Containers is a Hypervisor-based container that allows you to launch Docker images with standard Hypervisors. All this ads up to one thing and that is an increased confidence in the security capabilities of containers which will lead to a lot more enterprises using containers in production in the coming year.
Advanced Docker orchestration will be possible
Another trend that we are probably going to see is container management being taken to a whole new level. With Docker effectively setting the scene for a giant leap away from conventional VMs with regards to production, effective container management, or “orchestration” as it is called, is about to get a lot more technical and here’s how. Container orchestration can be simply referred to as the deployment of complex multi-container apps on multiple machines.
With the launch of Docker 1.13 came new capabilities to help build, manage, and secure containers. While version 1.12's big change was the integration of the swarm container orchestration directly into the docker engine, with 1.13 they are taking the swarm-mode in docker one step further.
Apart from the new Secret Management API that can be used to safely store and retrieve the more sensitive data used with Docker services, a number of new commands like the “prune” and “squash” commands have been introduced to further increase the efficiency with regards to disk space used by containers. A lot of effort is being put into making the swarm service more effective and flexible and Docker 1.13 adds Compose-file support to the “docker stack deploy” command so that services can be deployed directly using a ‘docker-compose.yml’ file. Another important change is that with version 1.13 you no longer have to worry about backward compatibility problems whenever you upgrade your CLIs as now all new CLIs are backwardly compatible with older daemons.
Google Kubernetes will continue to gain adoption
Though Docker Swarm is maturing and has the added advantage of being built for Docker, it still has some ways to go to become the preferred orchestration tool of the enterprise when compared to Google’s Kubernetes. This is mainly because while Kubernetes has a much steeper learning curve, it is in essence the result of Google’s many years of experience working with Linux containers including in production. Another factor is that although Docker Swarm uses the Docker API, it is also limited by it. In other words, if you’re looking to do something that is not included in the Docker API and you’re working on Swarm, to put it bluntly, you’re just plain out of luck. However, this particular shortcoming of Kubernetes brings us to our next trend.
As mentioned earlier, though Kubernetes comes with a steep learning curve as it wasn’t originally made to run with Docker, it’s still the most powerful orchestration tool and the first choice for most enterprises running containers. So if the most powerful tool for orchestrating containers isn’t user friendly enough, what does the enterprise do? The enterprise obviously sees it as a business opportunity for yet another “As a Service” offering like the one from Platform 9 which is essentially “Kubernetes as a Service”.
Now just imagine you have someone completely managing Kubernetes for you and all you have to do is work on your applications, this would be an ideal situation and far better than having to mess around with orchestration. Though Kubernetes is a great platform in itself, its shortcomings are definitely going to see more exploitation by tools and services looking to fill up those gaps that would make it the perfect orchestration tool for the enterprise.
DevOps teams prefer serverless computing
With reference to the shift towards containers and DevOps in particular, it has always been the aim of DevOps teams to be faster, lighter, more flexible, and basically, “smarter." In keeping with that ideology, it brings us to advent of most DevOps teams going “Serverless" in the not too distant future. Good communication is key to any DevOps operation, and with that comes the ability to eliminate any red tape that would mean wasting man hours while people sit around and wait for results or instructions.
With Serverless technology, DevOps teams can take that efficiency level one step further by eliminating the need for developers to manage any server infrastructure at all and devote their time to their applications.
Increasing productivity levels is any DevOps team’s ultimate goal along with end user experience enhancement. With the launch of AWS Lambda, Serverless computing is a very real option and the economic benefits of not having to pay for a server that runs all the time are immense. Since you only pay for resources used when your events are triggered, startups with smaller budgets could easily use this technology to realize their dreams; 2017 will definitely see a lot of those dreams realized.
AI will become more common in DevOps
Before we wrap up the trend predictions for 2017, one trend that just cannot be left out will be the adoption of Deep Learning and AI into DevOps workflows. As more and more DevOps teams continue to use the public cloud resources offered by AWS and Azure, a lot of them are going to come face to face with the powerful AI tools being put at their fingertips, and it goes without saying that a lot of those people are going to put those tools to work in 2017.
DevOps teams are always seeking automation and it doesn’t get more automated than AI. This could in fact be a marriage made in heaven and AI might soon be the most integral part of any DevOps team with more and more responsibility delegated to machines in terms of fixed and logical tasks while the human beings are afforded time to be creative.
It's clear that 2017 will see DevOps teams pushing the technology envelope, embracing changes a lot quicker than we would expect them to and coming up with new and innovative ways to improve productivity.
Image credits: stratoscale.com