Tuesday, March 1, 2016

App Dev Cloud Stack - Why containers at scale matter

Manage and monitor containers at scale
is a major challenge.
This series started with the statement, what do you mean by "Can't ignore the stack anymore?"

When your background is application development, you have spent many hours, days and years perfecting your craft. You have not only learned languages and concepts, you have made it a point to learn to make good architectural decisions when pulling together the applications you develop.

The problem is, we tend to ignore the stack we are working on as much as we can. Well it's time that we as application developers broadened our horizons a bit, expanding our understanding of the stack we work on with the introduction of Cloud, Platform As A Service (PaaS) and containers to our toolboxes.

Our tour of your Cloud stack continues from our previous article in this series where we covered scaling containers, what the limits are and how to achieve containers at scale. Why containers at scale are important to our Cloud stack, what that means for application development and why it matters will be discussed in this article.

Why it matters

After detailing what containers at scale means, we now need to look at answering the question why containers at scale matters. This helps us as application developers appreciate what our Cloud stack is providing as we strive to deliver container based microservices and applications.

Containers at scale matter.
As our container usage grows and as our infrastructure become more burdened with striving to support our development projects, there will arise issues that directly effect our application delivery.

When we deliver more and more container based services, think in thousands and tens of thousands of containers, imagine what might happen. Our containers would be spread far and wide across our infrastructure, reaching a point that their relative distance to each other becomes so great that performance of our applications is affected. It is one of the more important solutions, that of providing robust orchestration features to your Cloud stack, that can take into account integration and performance issues around container based services.

Every application developers knows that it is imperative to be able to create, move, modify, configure, deploy, migrate and monitor our container based applications. If this sort of container usage is left unchecked, if there is no management, monitoring, orchestration and policies enforced then you are going to be buried under your Cloud stack.

Managing containers at scale.
Did you realize that not all containers are alike?

Each container is used to run some workload, but what do these workloads look like? Some workloads will be containerized services that have to be long-running and always available, such as customer facing applications. There will be other workloads that are more batch oriented, just running for short periods of time and not sensitive to failures. If they fail, they can be retried until they successfully complete. These batch oriented containers will have varying priorities and certain service levels to meet.

Another thing to think about when there are thousands and tens of thousands of containers deployed across an organization is how to monitor the health of each container, how to find a certain service provided by a container and how can we upgrade our deployed containers without disrupting our services? This data is crucial to being able to accurately bill based on usage statistics and service level agreements around containers in the Cloud stack.

Pretty daunting, isn't it?

Luckily there are robust orchestration features available in our Cloud stack. There are management features that allow for services to remain in close proximity to applications with a heavy usage pattern. There are monitoring features to keep applications and services both running and scaling as their workloads increase and/or decrease over time. There are billing features and tooling to ensure the users of containers are billed accordingly for the services the Cloud stack is providing.
Red Hat Cloud Suite

The Open Source solutions available to solve these tasks are Red Hat Atomic Enterprise Platform for containers at scale together with Red Hat CloudForms for management. They solve the issues described and support application delivery using containers at scale.

Next we will be taking a closer look at what is directly related to application delivery, that is the seamless self-service developer experience provided by our Platform as a Service (PaaS).

App Dev Cloud Stack series

Missed a previous article or looking for a specific article in the series?
  1. Can’t ignore the stack anymore
  2. Foundations for a stable Cloud
  3. Beginners guide to containers at scale
  4. Why containers at scale matter
  5. It’s all about the PaaS baby
  6. Open interoperability critical to success (coming soon...)
  7. Securing containers at scale (coming soon...)