CTO said that | non-container applications how to play cloudy? Whether we Kubernetes tube ah

Kubernetes has become the de facto standard container arrangement system, is now mainstream applications across cloud container operating system.

However, Kubernetes goal is not the container itself, but carries on its application, in essence, is to solve the (containerized) cloud application on this problem.

Container and K8s appeared , it provides a unified set of abstract core, so as to surround them achieve their business Cloudy possible.

So, how do non-container applications?

This article deals tell you, K8S regardless of how we control:

How to run the container application cloudy?

We from K8s learned three big move

Non-container applications how to run cloudy?

Under cloudy environment, if some cloud appear irresistible failure, it has little effect on the upper enterprise applications?

Non-container applications that do not support the use of container, both the Legacy APP , including those of the application container because of commercial reasons does not support, such as many traditional HPC applications. We like facing life sciences / semiconductor / automobile manufacturing industry, these users often use is the non-container applications.

Based on local + cloudy system architecture, divided into the following four levels: the application layer, service layer scheduling, resource allocation layer, layer cloud provider.

Cloud provider is the underlying infrastructure and resources.

The allocation of resources layer is the cloud provider's cluster resource management, further pooling, abstraction, becomes a dynamic pool.

Because it is not a constant value our users' needs, there is a fluctuating, sometimes there will be great demand in the short term, but in addition to these times, most of the time not so great demand, so we need dynamic management / Dynamic apply abstract cloud resources.

Layer service scheduling problem is how to apply the abstract good run in us the resources above, where the run, how to run these issues.

 

1

Container application how to run Cloudy

 

For containers of applications:

K8s solve this layer service scheduling, how the application running in the environment above, we configured application container provides a unified scheduling objects. Because K8s have a unified abstraction, so you can put K8s deployed in different clouds above, through the unified management, to achieve cloudy workload distribution.

But K8s unresolved issue is how to build on each cloud K8s cluster.

Although CNCF (native cloud computing Foundation) community has a lot of variety of tools, such as terraform , you can help users build a cluster, but after all it is a stand-alone tool, users will inevitably increase the cost of learning. And, if you want to control a certain Workload , dynamically apply these resources, you have to develop their own customized these extra things.

For users, these are obstacles to achieve cloudy.

 

2

We from K8s learned three big move

Uniform abstraction layer

By abstracting unified control interface ( API ), can be masked underlying differences, similar to the management of the different cloud resources. No direct contact with the underlying resources, we can provide a more scalable according to this abstract Stack .

Declarative description of the way of infrastructure

Using abstract control interface, cloud computing resource Uniform Description interrelated, which described the same set can be used on different cloud.

K8s describes a state, we think this is a good thing. why?

Because it is declarative framework describing the state, so the state how to achieve this kind of this thing, to the platform itself, we can now state of the platform and the status of these resources, such as the price of these aspects to how we deploy kind to reach this state.

Automation Management

Using the API , most of the business processes can be automated, reducing the burden of maintenance personnel.

For example, according to a user-specified size and strategic business dynamically scalable cluster size, to maximize the use of resources. For some calculation examples may be replaced at the same time and can be automated alternative recovery calculation.

 

3

Non-container applications how to run cloudy?

We must address the core requirements are: For the application of the container is not suitable, we can also define resource requirements and operating declarative fashion, without changing the internal logic of the application, the application will run in the cloudy environment.

When using these applications the user will have a sequence, for example, start and an application, and then generates a number of intermediate data, the intermediate data is fed to the next stage of the application, the application is consuming the next stage, in such a workflow applications to ultimately he wanted. This process becomes abstract and we used to schedule the distribution point for these applications.

 

Our system designed inside the five main components:

Cloud service abstraction Serverless layer

Unified Cluster System Description

Intelligent Policy Control System

Workflow Engine

Distributed File System Cache

Cloud service abstraction Serverless layer

Cloud abstraction layer to each cloud above some of the components used, such as the instance of virtual machines, networks, mirroring, subnet, firewall, these common features we do abstract. All cloud resources, whether local or public, into a large pool of resources. And the functions and resources can be split open, the use of computing resources cloudy heterogeneous lower dynamically provide services for users. For the operation of each resource, it is converted to the corresponding cloud provider API operation.

This abstraction layer can also help us achieve some clouds and some have, some cloud does not.

For example, AWS is now a Spot Fleet function, you can tell it how many machines I need, what kind of machine, then you can select a range to go. We have not seen this feature on Ali cloud or other cloud, we can now realize their abstract to such a function.

Unfortunately, not all cloud resources can be accessed through this unified abstraction, especially in some high-end resources, such as AWS Lambda that we would not be able abstract. Because it is the use of the underlying resources to do a higher level of refinement, or a simplified form of higher-level, on a different cloud is not the same, some clouds may not.

 

Unified Cluster System Description

We learned K8S , provides a unified infrastructure system described on this basis, to define infrastructure through declarative description. In simple terms, the relationship between the virtual machine you want or are these virtual machines is how to define.

Like Hashicorp provided terraform proposed " Infrastructure AS code ", that is, the code architecture. We also use this idea, the benefits are clear you can see what your architecture, and you can describe this state. For example, you are in a cloud above defined and implemented such a framework, you can put it up to move to another cloud, and will not go wrong.

Achieve " the Write Once, RUN Anywhere " cloud floating across.

 

Intelligent Policy Control System

With the previous two as a basis, we can achieve based on user preference intelligent scheduling.

Earlier we mentioned our cluster is a dynamic cluster can run these businesses to determine where in a process according to the state on a strategy or a cloud, so we have an intelligent scheduling system, it will enter the user's this data is how much, what is the user's preference to schedule.

If the user preference is the cost, it can be slow to accept a certain degree. We can find some cheap resources, such as AWS 's Spot instance ( SPOT is a resource that we can use a very low price), but this does not guarantee that resources have always been. If the user selects this preference, we will go up and so this resource to a certain extent, when we have the resources to run sometimes, can be in the evening, have the resources or time to rerun the task. If the user very much hope that soon put the result worked out, we can mobilize the cloud's fastest we can apply the resources to help users get this thing to be calculated.

 

Workflow Engine

Typically, users in the use of their applications will have a workflow. For example, the first step in what procedures, what the second step program. We have integrated a workflow engine in the system, the user can edit workflows graphically. And the system is already installed some common procedures to support the order to perform the task.

Different steps have different characteristics. For example, some steps may need a lot of nodes at the same time to perform some task, complicated by a greater amount, some steps may not be so big. We can adjust our cluster size according to the workflow, which can also help users save costs.

 

Distributed File System Cache

This is a more important point: data access.

A program or an application is not complete work alone, certainly you need the data. Most applications are designed in traditional Linux / UNIX above, the user can access the data directly through file.

 

So we need two things:

First, there is a direct data access, the data access and build a cloudy above.

Second, the user data may already exist on some existing storage system, such as S3 / the OSS / the NFS . We think we should go directly to the user's existing use of these data, instead of then copy it again, do a new storage system. A common way is: to build up a cluster, the establishment of a temporary warehouse of data, copying data from the original place to use this data warehouse, and then copy back after use finished. We want to build such a caching system to avoid this duplication, it saves the user time to build the cluster . Many times users are put in a lot of data collection, the original way that is difficult to avoid the need to use data is also copied. For example, we have a distributed computing, this calculation does not need to use the data we have to have it copied out. With this in mind, that part of the cache we only need to use existing systems to be calculated after the write back to the target storage system inside.

And this design is a scale out architecture , when users reach the performance requirements of the time, you can scale performance by adding nodes ways.

We also support different caching strategies. There can be multiple different the Data Server , the data server can be on a different cloud, so put the data is cached in the local computing really you need, you can speed up data access. For example, I calculated in the cloud above, after the count finished, I hope to write it back to the top of a storage target.

Prefetching support automatic and manual prefetching. This means that, when we do the calculation to know where to put the application, so we can tell our caching system, the need to migrate data to go, thus avoiding unnecessary copies, in the time of the visit can quickly to use the data.

 

4

Under cloudy environment, if some cloud appear irresistible failure, it has little effect on the upper enterprise applications?

 

The specific effects need to see specific deployment and the application itself to analysis.

We use the double-scheduling concept:

The first level scheduling distribution business location, to solve the problem is where I want to put resources.

The second layer of the Internal workload scheduling assignment.

I've decided to put this time the workload on the cloud, I will create a cluster on the clouds. Part of the task will be run in this cluster, we are in the process of monitoring, if for some reason was stopped somewhere, and barriers to, the upper scheduler will find this matter, we will automatically scheduling tasks to another place, or another cloud. When the general schedule , business as a whole will be assigned to a cloud. If for some reason the entire cloud resource is not accessible, the first layer will dispatch service scheduling cloud to another.

So we can support the use of spot that can be preempted resource, can be scheduled in time to another place to go.

Guess you like

Origin www.cnblogs.com/fastone/p/11698518.html