With conference season in full bloom, next week brings the opportunity for DevOps folks to take a deeper delve into the ins and outs of container technology at Container World, which will be taking place in the heart of Silicon Valley at the Santa Clara Convention Center April 17-19. Here at ITPro Today, we’re proud of our association with the event, which is co-sponsored by Informa, our parent company.
Representing Docker, the company that’s almost single-handedly responsible for popularizing container technology, will be software engineer Anusha Ragunathan, who will be giving a presentation titled “Provisioning and Management of Storage in the Docker Platform,” in which she’ll discuss Kubernetes storage on Docker’s platform, with a focus on application provisioning.
Ragunathan comes to the table with plenty of experience. She joined the team at Docker nearly four years ago after spending nearly 10 years at VMware. These days, she’s the maintainer of the Moby open source project and the author of the Docker plug-in framework that allows third-party plug-ins for storage, network and authorization to integrate with Docker’s platform. She also contributes to the Kubernetes sig-storage open source project and works on storage features for Docker Enterprise.
ITPro Today recently took the opportunity to interview Ragunathan by email, and asked her about the future of container technology, as well as about her upcoming presentation at Container World.
What new developments can the industry expect to see from Docker?
2019 is off to a great start for Docker’s open source contributions.
Containerd, the container runtime behind some of the industry’s biggest projects such as Docker and Kubernetes, graduated within the Cloud Native Computing Foundation. Containerd was started by Docker and donated to CNCF as a top-level project because of its strong alignment with Kubernetes, gRPC and Prometheus. The graduation is not only a strong signal of the robust design and quality of the project, but an indicator of the adoption of containerd as the default runtime in cloud environments such as Google Kubernetes Engine and IBM Cloud Kubernetes Service. Also, containerd is the only runtime that supports Windows containers.
Also, Rootless Docker, the latest upstream of the Moby Project (an open source project that manages the container ecosystem), has support for running the daemon and containers as unprivileged. This is a big step towards helping developers build and run containers without needing administrative privileges.
On product offerings, this year Docker announced a new product, Docker Enterprise Desktop, that provides enterprise-ready container-based development for developers and operators on Windows and Mac desktops. Features such as Application Designer provide a way for developers to easily create new Docker applications using templates.
It’s worth pointing out that Docker was named as a leader in The Forrester New Wave: Enterprise Container Platform Software Suites, Q4 2018 report. In 2019, Docker Enterprise will continue to focus on features such as container runtime and orchestration, security, image management and user experience.
What technology will be the most disruptive to containers over the next year?
The IoT world will see a growing adoption for containers and orchestrators. We will see a new wave of development in this area, given that containers are well suited for the small-footprint, low-latency environments that IoT devices operate in. Rancher’s recent release of K3s (a lightweight Kubernetes-based orchestrator) and Canonicals’s microk8s are evidence for this growing market.
Managed Kubernetes will be a popular adoption path for Kubernetes. Managed Kubernetes solutions offered by cloud providers provide an initial easy access to Kubernetes for developers and operators looking to explore the technology. Such deployments might stay in the cloud or move to on-premises data centers or have a mix of both.
Persistent storage in containers will also pose challenges.
Containers started out to be ephemeral in nature, so stateless microservices suited the model well. Persistent storage was an afterthought to containers. Unlike monolithic applications that reserve a fixed amount of storage long-term, microservices are short-lived on a host and the orchestrator tends to move the application across the cluster. As a result, containers require fast provisioning of storage volumes, repeat attaching and detaching of the provisioned volumes to cluster nodes, as well as mounting these volumes into the microservice application. Now, imagine this getting done in hyper scale and account for the different on-premises and cloud environments that containers can live in. This poses challenges to the ecosystem.
The good news is that there are standardization efforts to ease some of the pain. Container Storage Initiative is an industry specification that aims to resolve the problems in the storage ecosystem by establishing a standard for container orchestrators in order to provide a pluggable framework for storage providers. This helps with seamless and consistent deployment of storage solutions. This year, storage providers are working actively to provide CSI-based plugins for container orchestrators.
There is also technology for observability in microservices.
Container-based microservices create flexible environments to develop, distribute and deploy. However, once the services are deployed, visibility of interactions between services, as well as insights into cluster infrastructure, becomes increasingly complex when troubleshooting.
DevOps teams use application performance management tools to view dashboards to debug complex microservice-based interactions, and APM tools are becoming quintessential to DevOps. Another development in this area is open standards in application instrumentation, such as OpenTracing, in which applications instrument their code to spew out traces while running. These traces can be collected by analytics software, which helps derive inferences from the collected traces.
Finally, application package management.
How does a cloud engineer develop a package for an application that’s built with services that can be run in varied environments, such as different runtimes and different cloud providers? The solution went beyond Helm charts and subsequently Container Native Application Bundle emerged. CNAB is a specification for package management that creates a manifest for distributed applications, which eases application installation across a gamut of environments. Application Packages such as docker-app are already working to support CNAB.
At Container World, you’ll be speaking about provisioning and management of storage in the Docker platform. What can attendees expect to hear?
The audience can learn about using persistence storage in microservices. I will go through the history of how it began, its evolution and its current state. I will talk about what solutions Docker offers from its Kubernetes integration, as well as touch on Kubernetes’ native support for block and file storage. The talk will provide details of the different types of volume provisioners (in-tree, external provisioners and CSI plug-ins) and potential associated demos. We will finish the talk with how Kubernetes handles high availability for workloads with volumes attached. I will also touch on persistence in Docker Swarm and what Docker offers for Windows workloads.
What are you hoping the audience will take away from your session?
Persistence in containers is becoming a reality, thanks to the huge ecosystem of storage providers, container orchestrators and user adoption. Audience members will learn to deploy workloads with persistent storage, whether its host-local, on-prem or in the cloud.
How do you prevent backup/restore issues, and how can engineers like yourself avoid issues in the future?
If you are a developer and your company or organization is already cloud-friendly, use those cloud resources for backup. This will ensure that in case of a disaster rising from spilling coffee on your laptop, you can replace your laptop and restore your data.
Examples would be to commit your code to your source control server as frequently as possible; document in the cloud, using a service such as Github gist or Google Docs; and to use cloud storage, such as Google Drive or Dropbox, to store important files, apps, VMs and data.
Also, use a cloud backup service to back up your data to the cloud. There are numerous offerings in this area, so it’s best to understand all the features and pick the right one for you.
Anusha Ragunathan will be giving her presentation, “Provisioning and Management of Storage in the Docker Platform,” at 11 a.m. PDT April 19 as part of the Cloud Native Storage track at Container World at the Santa Clara Convention Center in Santa Clara, California.