“Cloud on service” has always been an ongoing process. From 2010 to 2017, the focus of efforts has been on “own physical construction” to “IaaS infrastructure as a service”. On this basis, various cloud vendors have launched network products, database products, storage products, and provided “PaaS” level products to promote the process of cloud. We call it “Cloud on Services 1.0”.

Cloud on Services 1.0 is essentially a migration of your own physical services infrastructure to those provided by cloud vendors, equipped with a number of specialized tools. In this process, however, there is little interference with the underlying architecture of the service technology chosen by the developer; Most of the current flow is traditional service architecture.

What are the traditional service architecture patterns? What are the characteristics? Here I list a few for you to feel the contrast

  1. Local file systems are used for persistent storage, mixing data files with application files.
  2. Running many services on the same server, such as Mysql, Redis, Nginx, and a host of scheduled tasks.
  3. Install and upgrade using a hodgepodge of scripts and manual processes.
  4. Configuration is stored in files, usually scattered in multiple locations, and mixed in with the application’s files.
  5. Interprocess communication is via the local file system (for example, placing a file on disk that is read by another process) rather than TCP/IP.
  6. Designed to run only one instance of an application on a single server.

These features may expose many problems during maintenance, for example:

  1. Automated deployment is difficult, and while it can be done with a variety of tools, there is still plenty of room for improvement.
  2. If you need to run multiple different instances of your application, it’s difficult to have multiple instances on the same server.
  3. If the server goes down, it takes a long time to recover due to manual processes.
  4. The process of deploying a new version is largely or mostly manual and difficult to roll back.
  5. It is likely that the test environment will be so different from the production environment that some production environment problems will not be detected during testing.
  6. It is difficult to scale horizontally by adding new instances.

These problems will become more and more prominent with the development of the business, which will eventually consume huge human costs and accumulate many risk factors. Even if the service facilities are in the cloud and there is a strong environment, the maintenance problems of the internal system will always hinder and affect the high-quality service.

Container technology, which avoids the problems caused by the traditional service architecture pattern, has emerged as a new architecture pattern in recent years.

Container services, by standardizing the way in which business code and the environment resources it depends on are packaged into an image, and then an instance is launched on the server to run the image and provide the service.

For example, if you work in an Internet cafe and use the pure system of the Internet cafe, you need to install the office software you need before you can start formal work. Just like you need to carry out targeted operation and maintenance according to the different service facilities in the traditional mode to run your business projects.

Container service in the above example, you bring a hard drive (or a USB drive), store your office system in it, go to an Internet cafe, plug in your hard drive, and immediately use the familiar system.

In order to better explain container service, we have prepared a 30-minute live replay to help you feel the process of using container service from practice. Click the end of the article to read the original text.

Through the 30-minute application demonstration, the application and development process of container technology was comprehensively displayed, and the characteristics of container technology could be summarized from the process:

  1. Easy to deploy, you can replace the entire old version directly with the new container image.
  2. Automated deployment is also relatively easy and can be driven entirely by CI.
  3. Rollback in the event of a deployment failure simply switches to the previous image, which is very convenient.
  4. The application upgrade does not need to consider the complicated upgrade configuration process or perform tedious steps.
  5. The same container image can be fully tested in different environments and then deployed directly to production to ensure that the test environment is exactly the same as the production environment.
  6. The system is easier to recover from an outage because a new container with an image of the application can be quickly launched on a new hardware resource and attached to the same data source.
  7. Developers can test new features locally as containers in a more realistic environment.
  8. More efficient utilization of hardware resources, multiple container applications can be run on a single host.
  9. Containerization is a solid foundation for supporting zero-downtime upgrades, Canary deployment, high availability, and horizontal scaling.

Docker is always talked about in playback. What is the relationship between container technology and Docker? Docker is a technical tool for building containers that is currently popular. For example, Android and IOS (Docker) are relatively popular among mobile terminal operating systems (container technology). Because of popularity, various manufacturers will adapt to make the technical solution go smoothly without barriers.

As we build more and more services, the same service may contain multiple container instances because of concurrency, so how to effectively manage and coordinate the location resources of multiple containers? How do I handle container-to-container communication? This requires container choreography techniques.

Kubernetes is currently the most popular container choreography technology, providing apis to control how and where containers are executed, manipulate Docker containers, and adjust workloads to solve some of the complex tasks of scaling multiple containers across multiple servers.

Kubernetes is currently the most popular container choreography technology, providing apis to control how and where containers are executed, manipulate Docker containers, and adjust workloads to solve some of the complex tasks of scaling multiple containers across multiple servers.

Let’s take a look at the configuration required for standard container services, which are suitable for teams that are familiar with container choreography and can be flexibly configured to suit their needs

It is also very expensive to master Kubernetes and maintain it independently. It requires a good professional background to do well. It is difficult to accumulate such a large amount of knowledge for a rapidly developing enterprise and business team. How do we use container services when we don’t know much about them?

Wechat cloud hosting, by simplifying the complex configuration process, provides easy configuration and highly available container services; It also integrates business-related suites, including databases and object storage that can be automatically expanded and shrunk. Meanwhile, it also provides a lot of accumulation of wechat’s service technology to create a one-stop back-end service platform with security and ecological characteristics.

That is to say, even if you do not have wechat related application services, you can also use wechat cloud hosting to provide services for your business, which has strong advantages in anti-brush attacks and secure links.

So how do you migrate your project to cloud hosting? We have summarized a migration guide, and recommend that you learn to use it together with live playback videos.

If you are in the enterprise want to get professional support, and want to have some preferential strategies, you can sign up for cloud hosting enterprise incentive plan, the team will have someone to follow up to help.

Click here to get: “Full Live playback” and “accompanying source code”