For internet companies, moving to the cloud is a smart decision. It reduces the overall cost of spending while maximizing work efficiency and productivity. This article will point out the advantages and disadvantages of moving to the cloud or building a private cloud and where are the boundaries?
1. What is cloud computing
Cloud computing is a type of distributed computing, which refers to decomposing huge data computing processing programs into countless small programs through the network "cloud", and then processing and analyzing these programs through a system composed of multiple servers. The applet gets the result and returns it to the user.
The local software infrastructure is usually deployed on the user's computer in advance, and all resource users can access and manage it themselves; compared with local services, the cloud has the following characteristics:
-
On-demand service - use when needed;
-
Network access - through the network as a transmission medium, the cloud provider is responsible for maintaining its infrastructure;
-
Resource sharing - multiple resources are centralized and used by multiple clients;
-
Scalability-Resources are elastic, save and improve resource utilization to the greatest extent, and have the advantages of platform independence and unlimited storage expansion.
2. What are the disadvantages of public cloud?
-
Cloud is a public resource that is accessed by millions of users every second. Cloud service providers may be attacked to steal user information, so the cloud has security problems to a certain extent.
-
Data is stored on third-party machines, and there may be problems with third-party viewing and modification of user privacy data.
-
More control does not lie with yourself, but with the cloud provider. If there is a problem with the cloud, you can only wait for a third-party response.
The cloud itself is divided into public cloud, private cloud, hybrid cloud, etc. The above points are all characteristics of public cloud. Many enterprises do not trust public cloud platforms, especially many domestic enterprises require independent and controllable technology, combined with Its own business growth rate requires building its own private cloud platform. So what needs to be done to complete the construction of a private cloud platform? Figure (a)
(a)
3. What work needs to be done to build an enterprise-level cloud platform?
3.1. IaaS infrastructure as a service
IaaS infrastructure as a service, which provides computer architecture and basic services, provides all cloud computing resources for us to directly access and use, such as data storage, virtualization services, servers and networks.
Target audience: enterprise administrators.
Advantages: Cloud provides infrastructure and services, enhances scalability, and dynamically scales on demand.
Disadvantages: Security issues and network service delays will arise as the cluster size increases.
3.2. PaaS Platform as a Service
PaaS mainly provides a development environment/platform, consisting of programming languages, operating systems, web servers, and databases, where users can build, compile, and run programs without worrying about their infrastructure. Faced with the sharp increase in the volume of Internet business and users today, PaaS is a part of enterprises that need to focus on construction. Many enterprises build container cloud platforms based on Kubernetes. Common public clouds include Alibaba Cloud, Tencent Cloud, and Amazon Cloud.
Target audience: Developers.
Advantages: rapid development and deployment, elastic expansion, continuous delivery.
Disadvantages: Developers are limited to using the languages and tools provided by PaaS. If they use bare metal servers to deploy in the early stage and migrate to the cloud in the later stage, there may be some difficulty and adaptation period.
3.3. SaaS software as a service
Use software on demand, pay as you go. Independent of purchasing programs, the service runs in the cloud, is platform-independent, and requires no software to be installed on a PC. One or more instances of the service are run in the cloud for use by multiple end users. Cloud computing greatly reduces the operating cost of enterprise software. Such as network disks, Internet surfing services, etc.
Target audience: users.
Advantages: can be accessed through any platform, no need to care about what network environment. Great for collaborative work.
Disadvantages: Cloud services are available to all users, for example: browser compatibility may prevent some services from being used.
3.4 、 PaaS VS IaaS
Where is the boundary between PaaS and IaaS in the process of cloud platform construction? Many companies may confuse the two in the construction process, but there are actually certain boundaries.
-
IaaS mainly performs resource allocation, operating system installation, server startup, network configuration, etc. on bare metal machines.
-
PaaS mainly manages computing resources logically, allocates and schedules application-related resources, and mainly serves upper-layer applications to the greatest extent, as shown in Figure (b).
(b)
4. Is the cloud platform really right for you?
Before construction, it takes a lot of time to sort out and evaluate various feasibility analyses of the components. Having said that, a lot of people will probably give up; yes, frankly, cloud platforms are not really suitable for most teams, and if you are on a small team of 15-20 people, it will cause you a lot of pain , with little benefit.
4.1. Take building a container cloud platform as an example
Currently, Company A's systems all run on 3 bare metal servers or 5 virtual machines. Considering that hardware resources cannot be flexibly scheduled, they are now considering migrating to Kubernetes.
First of all, you need to apply for more machines. There is always a transition phase in the migration. In the early stage, a service needs to be run on the bare metal server, and the Kubernetes containerization platform needs to have a service. In addition, you need to consider the underlying services you depend on;
Secondly, developers need to learn to adapt and a certain amount of human input. Developers need to understand a lot of concepts before they can use them. Node, Pod, Container, Service, Deployment... Various resource objects, as shown in Figure (c) can be used It can be seen that Kubernetes is a huge system, and its operation and use are very complicated. It contains 58w lines of go code. If we want to serve better work, it must be essential to study its operating mechanism.
(c)
In the end, you need to consider data migration and legacy system migration, because Kubernetes itself is a cluster, and you have to consider distributed storage management, configuration management... If your system itself is not suitable for cluster deployment, you cannot use the cloud The role of the service, you have to consider splitting the service into distributed micro-service programs. This kind of program is difficult to write. The writing process needs to consider many issues such as distributed transactions. Secondly, debugging and log troubleshooting will also increase the complexity, so you are in the cloud. In the vortex of the platform, I can't extricate myself......
So many Kubernetes usage issues have been said above, does it mean that it is useless, of course not. For example, the current service customer is a financial business, which cannot be downtime 7*24 hours, and is used by tens of thousands of users. This requires consideration of service scalability and upgrade reliability, which is what Kubernetes is best at.
4.2. Is the container cloud platform really necessary?
For any technology, you must be reserved before using it. Others say yes, it is suitable. If it is you, it may be another scenario. You must learn to understand the essence of technology, just like building an enterprise-level cloud platform. Why build an enterprise-level cloud platform before building? What is the significance of construction can be considered from three aspects?
There are more and more business systems, and there are a large number of data interactions and interface calls between each system. There are still a large number of systems that need to be built. When problems occur, they are always tinkered. It is impossible to plan and analyze problems from a global and system perspective. . In terms of resource management, there are multiple computer rooms and data centers, and there may be some zombie services in them. It is impossible to effectively monitor and dynamically schedule the sharing of underlying computing resources, and it is impossible to achieve peak-to-valley complementarity and scalability. The demand requires fast delivery, continuous operation, and a large number of users and large amounts of data that already exist or can be predicted in the future.
5. Summary
With the development of the Internet and the increase of network bandwidth, enterprises should take advantage of cloud computing to reduce overall cost expenditure while maximizing efficiency and productivity. In the long run, for large Internet companies, migrating to Cloud is a smart decision.