Learn about deploying and managing application containers in large scale systems with Evolute
What is Evolute?
Evolute enables large organizations to deploy and manage containerized applications in production with confidence and ease. Our strongest suit is enabling particularly large private cloud environments to do that at scale.
How is Evolute different from other solutions?
Our approach is different and while we have rich integrations with other familiar solutions and technologies we have done a few things fundamentally differently. The main difference is addressing networking and self-discoverable applications on the container level. Each application has its own IP address which gets recycled as containers are taken down. In addition, we introduced significant improvements to the deployment and management of containers resulting in unparalleled performance. Most importantly, Evolute’s philosophy is to manage entire services at a time thus allowing for true scalability.
I am not using containers now, should I consider using them?
The short answer is yes! Containers have significant advantages compared to virtual machines, allowing you to do much more with less when it comes to large scale private cloud environments. Unlike virtual machines, you can restart or spawn a container in seconds instead of minutes. In addition, you can deploy and manage multiple containers sharing the same CPU and memory as opposed to a single virtual machine. Containers have become the top priority of many companies. While the technology is not new, it has enjoyed a recent surge in popularity and increase in attention by companies like Google, Docker, Mesos and CoreOs to name a few. The longer answer, however, is yes but with caution. Containers must be set up correctly to avoid security issues and for the most part inter-container networking and self-discoverability have hitherto been lacking. These are areas in which Evolute makes a difference, allowing companies to enjoy this promising technology with confidence and ease.
Who is Evolute for?
We focus on production grade, large scale out applications. While container networking and security challenges are pervasive, many companies address them on a smaller scale. Also, if you are looking for containers only at the development and staging stage, these issues may not be as crucial. However, when deploying and managing containers in production at scale, these challenges are detrimental. If you have hundreds of thousands of servers to manage in your data center or private cloud, this is where Evolute can make a difference. Our technology can support up to Five 9’s availability and allow you to truly manage and control containerized service at scale.
When everyone is talking about public cloud why are you targeting private cloud?
That’s a great question. Evolute’s technology and solutions can certainly be deployed and be useful in public cloud environments. However, we make a real difference in private cloud deployments. In large scale systems it’s all about control and the cost of scaling up. Public cloud has many advantages but is lacking in control, flexibility, security and scaling up. Private cloud maximizes these factors. However, when used in private cloud deployments, existing virtualization technologies are expensive and are not as flexible to scale. Evolute’s solutions utilize application containers to allow companies to deploy twice as many applications compared to existing virtualization technologies. Evolute also enables a much faster deployment, helping companies get their product faster to market while saving on licensing costs. We’d be happy to learn more about your particular case. Feel free to drop us a line or request a demo. We’d love to help.
Is it really that fast?
Oh Yes. Here are a few numbers to ponder: 30 seconds for application deployments per LXC (Oracle DB with Data), 500 instance Hadoop cluster in under 60 seconds; less than 1 second to initialize a single container. Usually these tasks are an order of magnitude slower. Furthermore, our experience shows that deploying such complex systems at scale can take well over a year in many cases. Today, deploying and managing containers at scale requires several components and vendors. Evolute is a one stop shop, addressing these challenges and keeping complexity at bay.
You often talk about services and applications. What’s the difference?
This is a very fundamental question. Let’s look at a container. Usually a container runs a single application. However, you rarely run an application in isolation. While a single application can fail, it is imperative that your customers still have access to what the application does. If you are watching Netflix, for example, you would like your movie or favorite TV show to continue. A service is comprised of several copies of the application together with their database which ensures that there are enough copies running at any given time. You can control the safety buffer and other configuration options for each service in Evolute.
How can I use Evolute to trust containers in production?
The main challenges today for deploying containerized applications and services in production are inter-container networking, security and availability, and speed. These are exacerbated for large scale systems. Let’s look at each of these briefly.
- Networking: Each host may run a few containerized services. Services may interact with each other and thus need to be discoverable. In most solutions, each container has a port address, which is very hard to work with. Evolute, on the other hand, assigns each container a unique, recyclable IP address that can be both discoverable by other peer containers across different hosts and also by outside applications.
- Security and high availability: Containers must be set up correctly or they will be left vulnerable. Evolute enforces industry best practices when creating and maintaining containers to make sure your containerized services and applications are fully secured. While it really takes a few seconds or less to spawn or restart a container this does not mean necessarily high availability. You need to first detect which container is down and whether it is just the container or the host as well. Consequently, you need to switch to another container running a copy of the service or application or restart the container or host. This becomes a very hard challenge for large scale environments. Fortunately, Evolute has a built in solution that can guarantee up to Five 9’s availability.
- Speed: While there has been a tremendous improvements in container technology and that a simple container can take seconds to initialize, on a large scale and when significant amounts of data is concerned -- the picture is pretty blick. At Evolute, we worked hard to bring this technology to the next level, which allows you to truly benefit from unparalleled speed and responsiveness.
Can you tell me more about the security risks of having containerized applications?
Containers have a number of attack vectors including, host, container and network security. While other solutions default to insecure implementations which often leave the foundation of your company’s data and enterprise systems unprotected from an attack. In addition to protecting applications at the host and container layer, network and application functions (userspace) must too be secured. Evolute properly protects your container, application and network by authenticating all LXC, cgroup and Layer 3 kernel interactions for hardened security.
Evolute has dedicated storage at the container level rather than the host level. Why is that important?
This is a great question. We are currently writing a blog post dedicated to this question. Stay tuned.
What is Evolute’s approach to address networking challenges across containers?
We do this at two levels:
- The container level: Evolute’s went a step beyond the default port address for each container. Each container is equipped with its own recyclable IP address. This helps containers discover and communicate with one another.
- The service level: Eventually it comes down to deploying and managing services at scale. You can do it via either the command line or GUI to control and define each service and help streamline service management and control. You can define what database is associated with a service, how many instances to run at any given time and, of course, the underlying containerized application.
Ok, I am interested. How do I get started?
Glad you asked. Please drop us a line or request a demo . We’d love to hear about your particular case and see how Evolute can help you get the best out of your infrastructure.