Cloud Platform, Part 2 of 3

Foreword

In our last newsletter, we introduced background on the rise of the cloud platform, its application model and advantages. In this newsletter, we will describe the key technologies of the cloud platform and how the cloud technology is used.

The Cloud is an innovative architectural model developed from previous data center models. One of the most significant aspects of this new model is a distributed architecture that employs virtualization and containers.

Virtualization

What is virtualization? What role does it play in the Cloud?

Virtualization is a resource management technology that abstracts the physical resources of computers and converts them into one or more computer environments that can be divided, combined, and defined as virtual computing entities. Virtualization plays a very central role in the field of cloud computing. Using virtualization technology, users can create multiple simulation environments or dedicated resources based on a single physical hardware system, that enables simple and easy allocation of computer resources, and efficient delivery of system services.

Virtualization in the cloud platform relies on the use of virtual machines, creating a kind of “software computer” that effectively provides the same functions as a physical computer. This new architecture enables easier implementation and management of computing tasks such as application programs and operating system functions as the needs of users arise and change. In addition to being able to run multiple operating systems on a single computing resource and use resources more effectively, the virtual machine also offers advantages in disaster recovery and application management. As a result, many services in the cloud platform are built around the virtual machine, which is one of the core functions of the cloud platform. Two of the most common virtualization platforms used today are:

  • Vmware:This is a mature and complete commercial virtualization platform offering easy installation and maintenance and comprehensive documentation. In particular, its graphical interface greatly reduces the learning curve of users. The main drawback: as a commercial offering, the cost of use increases as the data center expands, driven by the need to purchase more licenses and professional support services in support of a larger system.
  • OpenStack:This is an open source virtualization platform, whose core virtualization technology is KVM of Linux. The benefits of open source are a free and flexible architecture. Related storage and network design can be customized with this virtualization platform using operator-developed drivers. The main drawback: while purchase costs are free or low, the associated documentation is not always fully updated, making the deployment and application learning curve steeper and more difficult than VMware.

Notwithstanding which platform is chosen, the benefits of virtualization technology use within the cloud platform not only reduce the complexity of the deployment, but also shorten deployment time. However, while configuration and deployments may be simpler and faster, customer experience also shows the approach is not entirely without drawbacks. These include:

  • The process of deploying new virtual machines takes longer than desirable.
  • More downtime is required for application upgrades or downgrades.
  • The ability to migrate data between different virtual machine platforms is not always supported.

In the face of more flexible cloud platform service applications, virtualization technology has some limitations. By comparison, “containers” offer characteristics of lightweight operation and more flexibility, which overcome such limitations. Containers have thus played a greater role in the field of cloud technology.

Containers

What are containers? Why are they needed?

A virtual machine is a server that is abstracted from the actual computer hardware and enables multiple virtual machines to be run on a single, physical server. Containers take this abstraction to a higher level, which, in addition to sharing the underlying virtualized hardware, also enables sharing of the operating system. In short, a container is a solution to the problem of how to keep software running reliably when operating across different computing environments.

Containers and virtual machines both enable resource isolation, scalability and disposability, but because the container does not carry its own OS, it also effectively reduces the computing load, which enables the container to use fewer resources than the virtual machine.

The key benefits of containers are:

  • Lightweight: The size of a container is typically tens of megabytes, while the size of a virtual machine with its own entire operating system may be several gigabytes. Therefore, a single server can host more containers than virtual machines.
  • Resource-efficient: Containers enable more applications to be run with fewer (virtual & physical) computers and operating systems.
  • Portability: Through containerization, applications are easier to move across architectures or platforms as well as running smoothly in desktops, data centers, and cloud environments. Operators do not need to rewrite code for each new operating system or cloud platform, which enables greater efficiency of software development.
  • Instant operation: Virtual machines may take several minutes to boot their operating systems and start running the applications they host, while containerized applications can start almost immediately. This means that the container can be instantiated “on the fly” when needed, and can disappear when it is no longer needed, thereby freeing up resources on the host.
  • Standardized process: Containerization allows for greater modularity, and the application can be split into multiple modules (such as databases, application front ends, etc.), and the modules can be changed without rebuilding the entire application, enabling standardization of services and micro services for development and deployment.

Due to these advantages, container application usage is increasing rapidly. As a result, IT teams need a means of automating container orchestration to improve system scalability and availability. Container orchestration systems have emerged as a result, and Kubernetes has quickly become the most popular choice today.

Kubernetes

Kubernetes is the Greek word for “helmsman” or “pilot”. First announced by Google in 2014, it is an open source container orchestration solution. After years of development and use, Kubernetes is a mature solution that provides comprehensive management tools that can plan and automatically execute container-related tasks, including deployment, configuration, load balancing, and self-healing to achieve high availability, making container deployment applications particularly powerful. In addition, Kubernetes provides a wide range of support features and applications that can support a variety of typical workloads, programming languages and architectures. Compared with other solutions, Kubernetes also offers a high degree of flexibility and can be applied to a variety of application scenarios.

Who needs Kubernetes?

For IT staffs who want to build cloud services using large-scale container-based solutions, it is hard to avoid choosing Kubernetes. However, Kubernetes usage tends to be a complex undertaking— building a solution is not always easy, and it is unrealistic to expect a first project to work out of the box. Expert advice: Until your staff has developed good knowledge and proficiency with Kubernetes, it is safest to deploy it on a small rather than large scale first. Finding a well-built Kubernetes application service solution in the market is usually a good way to start.

Future trends in cloud -containerization

Based on lightweight deployment and operating mechanisms, containers are regarded as a good shortcut in development of cloud applications. As more and more cloud-specific applications proliferate, containers have become important technologies for cloud platforms, such as Google, Amazon, and Microsoft. Major cloud vendors have already adopted containers, and their role in the cloud platform can be expected to grow rapidly. Market research from Gartner predicts that by 2024, 75 percent of enterprise-level applications will be redeployed as containerized cloud services.

Putting it Together

Recognizing the immense benefits of the evolving cloud platform and how it can help your business, you may be eager to employ it. But given the many cloud platforms from which to choose, how do you make the best choice for your business?

Next month, we will provide you with information and insights to help you navigate this exciting new field and to help you find the right choices for you. Stay tuned!

⇒ Follow Us ⇐

Stay connected with our social media for the latest updates