Ready to decrease your cloud costs?  How about increasing availability and simplifying debugging at the same time?  Learn about containerization and cloud-native applications today.

Virtualization was going to eliminate all the problems from life.  With virtualization I can save a copy of the exact computer and configuration I want.  It could be copied over and over throughout the datacenter at the touch of a button in a day instead of ordering and racking hardware and doing installations over weeks.

Unfortunately it’s also slow and clunky.  The runtime overhead has gotten better, but it’s still not zero.  If I need to re-deploy a fresh copy in June of the VM I created in January still has all the security flaws discovered in between.  I could run all the updates in sequence when each copy and do a rolling update, but that takes days.  Virtualization also requires all of the resources for an operating system (disk, peak RAM, bandwidth, CPU overhead) everytime I scale horizontally.  That’s if everything has been done with best practices in mind.  The reality is that my ops team has (pragmatically) manually fixed problems because building an entire VM image for inventory takes hours.  My environment slowly migrates over time from something that can be back up in hours to an outage that can last weeks or even months.  All of this assumes no OS licensing cost per instance.

With Docker I generate my executable configuration from code into a Docker image, the fundamental runnable unit is code-as-infrastructure for my app and it builds in seconds to minutes.  The image contains the exact minimal environment I want, and the running instance is called a container.   On startup Docker assigns my container a local IP address (or as many as I need) and I can do whatever I like to make it public.  I can spin up more containers within milliseconds and it consumes only the resources for the executable, the operating system and kernel interface are handled by Docker.  Execution requires the overhead for my executable,  not an entire operating system.

Kubernetes is the orchestration system for Docker containers.  Create a Kubernetes cluster of servers and Kubernetes takes care of decisions like what should run where, are the appropriate number of each container running, and how they’re routed and load balanced.  If a container becomes unresponsive Kubernetes uses your set of rules to remove that container from the load balancer pool, kill the container, start a new one and add the new running container to the pool without any interaction.   The Kubernetes clusters can span not only physical and virtual hosts, but data centers and continents if configured to do so, providing geo-scaled redundancy.

It sounds great, but it causes a hiring issue.   You need to find people who know servers and  virtualization as well as Kubernetes now.  There are plenty of reasons to go that route and if you do Cascadeo Professional Services and Managed Services are there to take the hassle off your hands so you can focus on apps, code and keeping your customers happy, and is ready to handle monitoring in your cluster out of the box.

Cloud providers like Google, Azure and Amazon have also come out with Kubernetes turnkey offerings.   Environments range from push-button deployment of your scalable Kubernetes cluster to offerings where the user specifies a container and is provided with an external IP address or DNS entry, scaling, availability and responsiveness are handled for you. There are even intelligent cross-cloud offerings from companies like NetApp that choose which provider will run which parts of your deployment in real-time based on cost, performance, demand and any current routing issues.

There are plenty of other advantages to your organization.  How about being able to deploy two independent clusters for Blue/Green testing?  Need to deploy a previous version?  It’s as simple as a configuration setting and five-minute rolling update.

Scaling was a hassle before. Now you simply drop in new nodes, and your deployment automatically migrates containers to stabilize.  From a business agility standpoint changing cloud providers goes from a multi-month project to a multi-hour project, allowing you to leverage the best rates at will.   Availability stops being a matter of talking about spanning across cities or tectonic plates, it is now trivial to re-deploy across geo-political spheres of influence.

Have questions about how Cascadeo’s certified team of cloud deployment and managed services experts can help your business achieve its strategic goals?

Contact Cascadeo