Although containers have many technical advantages, their value has not yet been unleashed.
A container is more lightweight than a virtual machine (VM) because each VM carries its own guest operating system (OS), while a container shares a host OS with other containers. However, for that very reason, containers are less stable than VMs. When a large number of containers are running simultaneously, some of them may fail due to insufficient OS resources. Furthermore, other problems affecting a host OS can compromise container reliability and stability.
Kubernetes (K8s), the most common container platform in the industry, is used here as an example. Kubernetes is an open source container orchestrator that automates various manual processes involved in deploying, managing, and scaling containerized applications.
As the development of open-source software is not business-driven, the majority of this software cannot provide the reliability and maintainability required by enterprise-class applications. Kubernetes is no exception.
Despite the wide popularity, this container platform is suffering from a major defect that can cause many difficulties when implementing the platform within enterprise IT systems. This defect is insufficient operational stability. Despite clear shortcomings regarding operational stability, container platforms like Kubernetes do not offer any effective solutions. This is why so few customers use container platforms as the infrastructure for their core services.
Although Kubernetes has not provided a solution, the host of the Kubernetes project, Cloud Native Computing Foundation (CNCF), took action.
CNCF shifted its focus from container technology to storage, hoping to utilize professional storage capabilities, like high availability and disaster recovery, to make up for the disadvantages of the container platform. This culminated in the introduction of the groundbreaking Container Storage Interface (CSI) plugin on the release of Kubernetes 1.9.
With CSI, the data of containerized applications can be saved on highly-reliable external storage and protected through the use of methods like snapshots and clones. In this way, even if a container fails, its data can be kept intact. Once containerized applications are restored after a failure and so they can continue to access data and avoid any unexpected issues arising from data loss.
The introduction of CSI indicates that decoupled storage and compute architecture is officially recognized as the standard architecture for containers, making professional storage one of the best choices as the foundation for container data.
As container technology matures, an increasing number of enterprise applications are embracing containerization. For a container platform to serve as the infrastructure for an enterprise's core services, it must be able to provide outstanding service continuity, excellent performance, and convenient management. To meet the preceding requirements, the container platform must, at the very least, overcome the following shortcomings:
Insufficient fault recovery capabilities: The container platform cannot automatically recover from a node, storage, or site fault. When a container runs mission-critical stateful applications, such as a database, the availability of the application may be compromised.
Risks of data inconsistency: Most containerized applications use distributed architecture, which can cause data consistency risks. However, the container platform does not provide a corresponding solution.
Lack of agility in storage provisioning: Most containerized applications are reconstructed by microservices and composed of small application programs carried by dozens of containers. Starting an application, therefore, means starting dozens of containers simultaneously and allocating the respective storage resources. In most cases, however, the storage system's capability to allocate resources in batches is insufficient for containers.
Huawei is committed to addressing those challenges and building an optimal container storage foundation for enterprises' core services. In the age of cloud native, Huawei has settled upon Network Attached Storage (NAS), a file storage protocol created 40 years ago. After extensive cooperation with customers and partners, Huawei has explored a NAS-based container storage solution. The reasons for choosing NAS as the container storage foundation are as follows:
1. Easy to use with diverse functions: NAS storage resources can be easily accessed through direct mounting. In addition, NAS provides several features (such as multi-tenancy, quota, and QoS) that are necessary for cloud services, which eliminate the need for extra construction and reduces system complexity. NAS also provides several security compliance functions like ransomware protection, antivirus, and log audits, all of which are critical for effectively controlling risks. Simplicity is a key reason for the popularity of container platforms, so container storage should also be simple.
2. Data sharing and broad compatibility: In contrast to SAN storage, NAS is designed to allow multiple servers to share and access the same data. Aside from databases, most containerized applications require data sharing. For example: web applications require multiple servers to share web page resources; log analysis applications require log resources; and continuous integration applications require code resources. In addition, except for a few mainstream commercial software, few applications can proactively manage SAN storage resources. In contrast, NAS is compatible with almost all application types. With these advantages, NAS is suitable for most containerized applications.
3. Stable running and fast recovery: Containers have an important fault tolerance feature known as pod failover. This feature allows containerized applications running on one server to be migrated to another healthy server if the original server is damaged. NAS supports shared data access, eliminating the need for data consistency checks and server mapping. After the application is mounted to the new server, it takes just 40 seconds to recover the service using NAS, while 6 minutes are required using SAN.
NAS has now become the most popular container storage solution. According to statistics, 74% of users use NAS as the foundation for containers.
In the past, every IT leader would ponder migrating their services to the cloud. Now, regardless of who is ready, the era of multi-cloud services has arrived. Fortunately, we no longer have to make a choice between the elastic public cloud and the private local deployment, because we can use containers to build a localized cloud that combines the advantages of both.
Currently, determining how to build a container platform that can be used as the infrastructure for enterprise core services is developing into a major research topic for IT leaders. We hope that more vendors will cooperate extensively with their customers and partners and gradually come to find feasible ways to overcome the shortcomings of container platforms. In this way, more enterprises can gain opportunities to develop and achieve commercial success in the multicloud container era.
Disclaimer: The views and opinions expressed in this article are those of the author and do not necessarily reflect the official policy, position, products, and technologies of Huawei Technologies Co., Ltd. If you need to learn more about the products and technologies of Huawei Technologies Co., Ltd., please visit our website at e.huawei.com or contact us.