background

In recent years, resource allocation based on container technology has become more and more popular, and Kubernetes, as the de facto container choreography technology in the container field, has begun to be gradually implemented in enterprises. The new generation of cloud-native applications is gaining popularity with container/microservice /DevOps technologies. However, in the enterprise application ecosystem, the current cloud native system only accounts for a small part, there are still a large number of traditional applications cannot enjoy the benefits of container technology, the industry needs a special solution for traditional applications to quickly enter the cloud.


Boyun visited and surveyed a number of enterprise customers and found that the current migration of traditional applications (non-micro-service architecture) to container cloud platform is mainly faced with the following problems:


  • A large number of Legacy applications cannot or are difficult to be modified (such as microservitization and containerization), requiring various agents to be installed.

  • Traditional applications are often deployed on VMS. However, VMS start slowly and cannot meet service flexibility and flexibility requirements.

  • Virtualization technology has a heavy stack and high resource consumption, and customers want to leverage the power of powerful server hardware.

  • Operation and maintenance personnel of traditional applications tend to regard the application system as PET rather than cattle, and they prefer to make adjustments manually after discovering problems.

  • Applications are performance-sensitive, and high-density deployment in a container environment can cause performance problems such as CPU context switching.

For the above pain points, neither virtual machine nor container is the optimal solution. After extensive technical investigation, we found that fat container technology is a feasible and reasonable solution. First of all, given the trends in technology,
Fat container technology is widely used by the pioneers in the container field in the early stage of container development, which can not only gain the advantages of lightweight container but also widely support traditional applications. However, with the rapid popularization of containers, fat container technology as a transitional stage technology has not been carried forward. Second,
Fat containers can also be implemented in a variety of ways, many enterprises or open source organizations have also launched various solutions, which can be basically classified into two types: VM-based and Container-based. These solutions are also largely integrated with Kubernetes, making them ideal for today’s container cloud platforms.



Boyun fat container technology BeyondVM

BeyondVM is a container-based fat container technology that is compatible with OCI standards and can be flexibly integrated with Kubernetes cluster.




01

1 process

Container technology advocates single-process model, and an obvious difference between fat container technology and container technology is to run an init process inside the fat container, while traditional containers (such as Docker containers, etc.) take the CMD specified in the container image as the process with PID =1 in the container. BeyondVM technology supports the use of systemd and sbin/init as init processes. The introduction of init program makes it possible to operate and maintain the fat container, and also provides great convenience for traditional cloud applications.





02

Container of CMD

The CMD of a container represents the business system running inside the container. BeyondVM technology will automatically host it in the Init process, so that operation and maintenance personnel can easily carry out operation and maintenance of business systems.


03

System components or specific agents

Traditional applications and application operators rely on many system components, such as SSH /rsyslog/ Crond. This part of the traditional application can be directly installed on the cloud corresponding components and made into a mirror, which not only obtains the advantages of container delivery portability, but also retains the traditional usage habits.


04

Resource View Isolation

After years of maintenance, traditional application systems often have multiple optimization measures. For example, after services come online, the running parameters are automatically adjusted according to the size of environmental resources. However, in a traditional container environment, even if the CPU/MEM quota is set for the container, the service system inside the container still sees the computing resources of the host. This causes many problems for traditional applications such as typical Java applications. BeyondVM technology utilizes LXCFS technology to view isolation of the container’s resources so that the internal running business systems can automatically be aware of the container’s own computing resources.




05

Hook handling before and after a business starts and stops

Because BeyondVM technology is integrated with Kubernetes, the hook functions provided by Kubernetes for POD can be used to implement the processing required before and after a business system is started.


Compare with container and VIRTUAL machine technologies




The virtual machine

The container

BeyondVM

model

Based on KVM + QEMU, kernel isolation

Based on cgroup+namespace, shared kernel

  • Kernel isolation based on RUNV

Based on cgroup+namespace, shared kernel

  • Kernel isolation based on runV duration

Resource consumption

heavy

light

light

The volume of the mirror

big

small

small

Process model

Multiple processes can run on a VM

Single process in container

BeyondVM can run multiple processes internally

State to keep

  1. Fixed IP
  2. Save the changes within the VM
  1. Fixed IP addresses are not recommended and the function implementation depends on network plug-ins
  2. No changes are saved after republishing
  1. Fixed IP
  2. Save the change action *
Elastic scaling

Heavy state, slow elastic expansion

Manual and automatic fast elastic expansion

Manual and automatic fast elastic expansion

portability

poor

strong

In the

Microservices, DevOps support

poor

strong

strong

Kubernetes support

poor

support

support

The main scene

  1. Traditional resource application process

  2. Old system resource pools

  1. Stateless, fast scaling

  2. Microservices, fast scaling

  1. The old system can be quickly added to the cloud and flexibly scaled

  2. Business systems that rely on resource view isolation

  3. CPU sensitive service system





BeyondVM core advantages

BeyondVM provides a relatively complete process tree and a container environment for system services, enabling businesses to get virtual machine running experience and realize the migration to the container platform without changing the code. Using BeyondVM technology, you can achieve:

  1. Lighter resource allocation capability than VMS, facilitating rapid resource application and flexibility.
  2. Similar to virtual machine experience, you can log in, can install any component.
  3. There is a fixed IP address. The IP address of the fat container remains unchanged from the time it is created to the time it is deleted.
  4. You can use SSH to remotely log in to the system.
  5. After login, standard packages such as mysq and Apache can be installed using the traditional yum command.
  6. The O&M agent can be installed without affecting the application deployment process.
  7. Resource isolation, such as CPU and memory.
  8. The resources seen by the JVM, the monitoring tools, are not the resources of the entire physical machine, but the resources actually allocated for use by the fat container.


Looking forward to

In the process of container cloud platform construction, new business systems are often put online. A large number of existing services in an enterprise still run on physical machines or virtual machines. Although some enterprises have encountered the problem of cloud difficulty in traditional applications, the overall demand for this part is not strong. There is reason to believe that as container technology becomes a larger part of the enterprise ecosystem, the cloud demand for traditional applications will be released, and fat container technology will play an important role.