Last week’s container event of the year, KubeCon, hosted by the Cloud Native Computing Foundation, attracted more than 12,000 attendees to the San Diego convention center. While there, I attended numerous sessions but I also spent a good portion of time chatting with DevOps professionals, Kubernetes practitioners, and vendors to understand the practicalities behind deploying and managing containerized workloads and microservices. 

Container deployments are growing, and along with that Kubernetes, the leading container orchestration platform. In the 2019 Container Adoption Survey, which surveyed 501 IT pros, 87 percent of respondents said they are now running container technologies, up from 55 percent in 2017. And 40 percent of enterprise companies included in the Cloud Native Computing Foundation’s bi-annual survey reported that they’re running Kubernetes in production environments.

Why this container craze? A leading reason is because of the complex multi-cloud and hybrid infrastructure environments present in most midsize to large enterprises today. Containers, which isolate application code from the running environment, help solve the problem of portability between clouds and ensure agility, making it easier to deploy faster across environments. Containers also enable teams to divide monolithic applications into smaller logical units, or microservices, to allow for easier horizontal scaling and load balancing. 

Based on conversations and sessions I attended, here are my biggest takeaways from KubeCon for IT Operations:

#1 - Resource Allocation is a Pain Point

A common theme of the conference was the fact that organizations are struggling to maintain container environments without the help of large teams. We’re talking enterprises that have dozens of clusters running over 100,000 containers with only 15 people. There is a dire need for more automation to better manage container environments in the Kubernetes IaaS model.

Practitioners are trying to determine what steps to automate and which tools are most useful. People were talking about service mesh technologies and PaaS offerings such as Pivotal Application Service (PAS) that deploy containers without managing underlying clusters and load balancing, and AWS Fargate, an alternative to Kubernetes for teams running container workloads exclusively in AWS. Similar to Pivotal Application Service, AWS Fargate allows you to run containers without having to manage servers or clusters nor spend time provisioning and configuring virtual machines to run them.

#2 - Monitoring is Immature

Many attendees mentioned monitoring has become a real pain when dealing with containers and microservices. The ephemeral nature of containers and the sprawl of microservices creates more opportunities for things to go wrong. In turn, this complicates the ability to observe these services and track the root cause of issues. Shockingly, even large modern companies are using homegrown or primitive methods to monitor and troubleshoot container applications, such as by running an SSH or RDP command to remote into a node and running a “kubectl get services” or “docker ps” command to see where there might be a stopped service or container.

People talked about using open source tools like Prometheus and Grafana in tandem for metric collection and visualization, but these tools struggle when dealing with multi-cluster environments due to performance limitations when querying across a large dataset. Many agreed that a balance of open source and commercial monitoring tools is a best practice. When enterprises need better insights and dashboards for multi-cluster environments and teams want to persist data longer over time, there was a consensus  that commercial tools may be a better bet. However, for one-off queries that were repeatable and hitting a small amount of time series, many agreed that Prometheus and Grafana provided a reasonable solution. 

#3 - The Container Journey is also Hybrid

Yes, containers are all the rage in the news cycles but most organizations are taking a cautious and gradual transition to microservices-- much like the enterprise journey to the cloud. My impression was that few companies begin with a microservices orientation, not even cloud native superstars like Uber and Netflix. Despite popular perception, monolithic applications are not such an outdated or terrible idea. There is simplicity in having a centralized service as long as there isn’t serious resource allocation toward maintaining and managing it.

Organizations do need business justification and strategy to adopt containers, due to the massive change and investments required to fulfill new hosting, monitoring and bandwidth needs. The container journey, much like the cloud journey, will be individual to the organization and tied to business needs and goals.

Next steps:

Cloud-Skills-report-CTA (1)

 


Recommended posts