Featured in DevOps

Adin Scannell talks about gVisor - a container runtime that implements the Linux kernel API in userspace using Go. He talks about the architectural challenges associated with userspace kernels, the positive and negative experiences with Go as an implementation language, and finally, how to ensure API coverage and compatibility.

HyperGrid Announces Platform for Application Migration to Containers

HyperGrid, which was formed out of GridStore acquiring DCHQ, announced an application migration platform called HyperForm. It aims to migrate applications to any cloud or container infrastructure, with a focus on Java applications.

How exactly can a typical Java application be ‘containerized’? InfoQ got in touch with Amjad Afanah, VP of Product for HyperForm, to understand more about the capabilities of the platform.

HyperForm has a plugin model that lets application developers write custom scripts in different languages like Python, Perl, bash scripts or Ruby and attach these as listeners to container lifecycle events. These events are emitted by the platform. The events are fired at times like creation and destruction of the container and other intermediate points. The other feature that enables containerization is data injection, which, Afanah says, “retrieves information from containers and inject them at deployment time in other dependent containers as environment variable values”. The framework extends Docker Compose, according to an article by Afanah.

The latest Docker release supports improved load balancing of services using Linux IPVS, including integration with Swarm, IPVS being a Linux kernel feature that can be used for load balancing. The latest release of HyperForm also supports Docker Swarm as a tech preview feature. Does this preclude other load balancing mechanisms in HyperForm? That’s not the case, according to Afanah:

HyperForm can definitely take advantage of the Linux kernel's built-in load balancing functionality using Docker Swarm. However, HyperForm also provides an easy way to set up HTTP load balancing using whatever software like Nginx and Apache HTTP. The custom plug-ins are again used to automate the update of the HTTP Load Balance any time an application is scaled in/out.

Modern Java applications that have a distributed architecture have service dependencies between them, usually tied together by a service discovery software like Consul. Service discovery in a containerized environment involves registration of a service with the registry (e.g. Consul) when it comes up in the container, either manually or by using something like Registrator. Registrator is a service that automatically registers and deregisters services in Docker containers. So how does HyperForm handle such cases?

The same plugin model mentioned above is used to provide service discovery features. For example, upon addition of a new server to an existing cluster behind a load balancer, an event is triggered which fires a plugin. The plugin is responsible for modifying the load balancer configuration with the new server details.

The underlying infrastructure for running the HyperForm platform can be VMware vSphere, OpenStack, AWS or Azure.