Building and deploying software is vastly different from how it was done just a few years ago. With the popularity of containers and microservices, developers can push out a new crop of cloud-native applications faster than ever. But technologies that make developers’ lives easier still tend to create complexity for the IT operations teams that have to keep those apps running, warns Daniel Lopez Ridruejo, cofounder and CEO of San Francisco-based Bitnami, which provides open source application packages for Oracle Cloud and other IT infrastructure service providers.
“Microservices allow you to segment and develop services independently, but they add complexity when it’s time to orchestrate their production,” Lopez said in his June 29 keynote at the Oracle Code event in Mexico City. Application containers such as Docker package source code and language runtimes so that they can run anywhere, but that still leaves the problem of having to efficiently put a container into production and manage the servers to run it.
Soon, automating the deployment of containers using orchestrators such as Kubernetes will transform the cloud yet again
“At this level of complexity, automation is no longer optional,” Lopez said in his talk on the future of application deployment, delivered in Spanish. (Oracle Code brings together modern software developers in 20 cities worldwide. Check here for the few remaining events, and for archived keynote content.)
Many more companies will soon face this container-driven complexity. A survey of more than 18,000 Bitnami users found that about 30% had adopted containers in 2016, and that number shot up to more than 60% in 2017. Cloud-native development has moved well beyond tech startups.
Containerized, Transparent, And Isolated
Lopez highlighted three characteristics of applications built by and for the cloud.
First, they are containerized, meaning they’re packaged in such a way that includes both the source code and everything needed to run that code on any platform. This structure eliminates problems due to subtle differences in development environments, libraries, platforms, and devices.
“A Python program is packaged with a Python interpreter, a PHP app has its PHP interpreter, a Java app has a runtime plus the rest of the dependencies of the operating system,” Lopez said. And the package doesn’t have to strictly be a container. It could also be a virtual machine. “This is very important in order to reproduce the state,” he said.
Second, cloud-native apps are transparent: You can see what goes into a container, and you can manipulate and inspect virtual machines in a way that used to be difficult.
And third, the isolation—often in the form of microservices, or chunks of application functionality that can interact as services—gives developers newfound power to separate and restrict these processes.
“The dynamic orchestration of these resources lets you take maximum advantage of your hardware,” Lopez explained. “You can deploy them as you need. You can deploy three or four containers, and as you see new application loads, these containers can create additional containers in a totally automatic and transparent way.”
That automation is where container orchestrator Kubernetes comes in, Lopez said. With beginnings as an open source project from Google, Kubernetes is fast becoming a standard tool in the cloud, he said, because it “eliminates the need to manage server lifecycle.”
Bitnami is betting heavily on Kubernetes, starting with the acquisition of Skipbox in March, and is already creating and delivering Kubernetes-ready server applications that can be deployed and managed in Oracle Cloud. Bitnami has been part of multiple Kubernetes-related technologies, including core contributions to open source projects such as Helm, Monocular, and Ksonnet. It has led projects such as the Kubeless native serverless framework and the Kubernetes application deployment management tool Kubecfg.
Next: Serverless Technology
Lopez’s vantage point lets him offer developers insight into the popularity of different deployment methods.