Название: Cloud Computing and MicroServices Автор: Jinmin Yang Издательство: Springer Год: 2025 Страниц: 446 Язык: английский Формат: pdf (true), epub Размер: 24.2 MB
This book explains cloud computing and microservices from the perspective of technological evolution, showing the ins and outs as well as the causes and consequences of cloud computing and microservices. The essence of cloud computing is to deepen resource sharing to improve cost-effectiveness by economies of scale and intensification.
From a historical perspective, this book summarizes the 2 leaps of the computing paradigm: from stand-alone computing to cluster computing, and then from cluster computing to cloud computing. On the basis of cluster computing, cloud computing has to further solve two key problems : 1) application programs can run everywhere on the cloud; 2) application programs running on the same computer do not interfere with each other.
Cloud computing has promoted informationization, bringing about new challenges to servers. Servers are facing the double pressure of increasing data volume and client requests, with the issue of service quality becoming increasingly critical. In this situation, the strategies and methods for servers to achieve efficiency, resilience, scalability, availability, security and consistency, as well as rapid development, rapid revision and upgrade, and fast startup are collectively known as microservice technologies.
Chapter 1 provides an overview of cloud computing and microservices. Resource sharing is the driving force behind the evolution of computing. The computing approach has experienced an evolution from stand-alone computing to cluster computing and then from cluster computing to cloud computing. In stand-alone computing, sharing means that multiple processes execute concurrently and they share resources on the same computer. Cluster computing extends sharing across computer boundaries. Cloud computing makes further efforts to reduce costs by deepening sharing. Specifically, it utilizes scale effect to achieve a mutually beneficial win-win situation for service providers and their customers. Under the sweeping tide of informationization, servers are facing the double pressure of increasing data volume and customer requests. The strategies and methods to enable server programs’ efficient operation, elastic operation, secure operation, rapid development, and rapid revision and upgrading as well as fast startup are collectively known as microservice technologies. ... Chapter 5 explains virtualization and cloud computing. Cloud computing evolved from cluster computing with one goal: to enable enterprise customers to migrate their business information systems to the cloud without modification and to run successfully on the cloud. Compared to cluster computing, cloud computing once again raises resource sharing to a whole new level. Based on cluster computing, cloud computing addresses two key issues. The first one is that enterprise customers’ applications can run successfully everywhere on the cloud. The second one is that multiple applications running on the same computer do not interfere with each other. This chapter structures the application into two parts, the application itself and the runtime environment, and then transforms the above two problems into the questions that whether applications can run on a cloud and whether it can run successfully. A solution to these two problems is then derived using virtualization strategies.
Chapter 6 explains microservice technology. Servers running on a cluster or cloud are dynamic in nature. This dynamism is manifested in three ways: (1) the computer on which a server program runs cannot be determined in advance, but in real time at runtime; (2) the number of replicas of a server is dynamically variable for the sake of service availability and throughput; and (3) when the amount of data in a server grows to an upper limit, the server is split in two. In addition, servers face the dual pressures of growing data volumes and increasing loads and face increasing security threats. This chapter explores strategies and methods for making servers run efficiently, securely, and resiliently as well as for enabling rapid development and deployment of server programs, rapid revision and upgrade, and rapid startup. Collectively, these strategies and methods are referred to as microservice technologies. This book is innovative, illustrated, and easy to understand. It is particularly suitable as a textbook for computer and related majors in higher education institutions or for engineering and technical training. This book is also very suitable for researchers and engineers to read, from which they can realize the connotation of cloud computing and microservices, and appreciate their subtleties.
Java is an improvement program for the problems of traditional compilation and operation. Java divides the compiler into two: one is called the front-end compiler and the other is called the back-end compiler. The front-end compiler compiles the Java source code into byte code, i.e., intermediate code generated with an intermediate language. The back-end compiler then compiles the bytecode into target machine code. In the Java scenario, the front-end compiler remains at the developer’s end of the application. The back-end compiler, on the other hand, is pushed forward to the user’s machine and built into the Java virtual machine. The back-end compiler is installed on the user’s machine and naturally knows the model and version of the computer. Thus, the back-end compiler can take full advantage of machine features to do optimizations when translating intermediate code into machine code. This is a major reason why Java has become popular.
Each operating system now provides its own Java virtual machine, which is distributed and installed with the operating system. This means that the Java virtual machine has become an integral part of the operating system. With Java programming, the developer of an application only has to maintain a distribution and keep the source code to himself. This trait is naturally very popular. Microsoft .NET technology is similar to Java technology in that it features a front-end compiler that compiles various high-level language programs into MSIL intermediate code.
Scripting languages are very popular these days, such as Node.js, Python, etc. From a compilation point of view, scripting languages have taken a step forward from Java by bringing the front-end compiler forward to the user’s machine as well. The developer of an application distributes the source program directly to users. The popularity of scripting languages is closely related to the boom in Internet applications and the generalization of open-source software. Software open source reflects changing times. It no longer makes sense to recognize the source program as a programming secret. In this context, scripting languages became popular. Scripting languages are attractive to users. Since scripting languages appeared later than traditional high-level programming languages, it is natural to introduce many new features in response to the shortcomings of the original languages exposed in practice. For example, programming in Python can reduce the amount of code to a teeny tiny fraction of programming in C++ or Java. The smaller code size not only improves programming efficiency and makes the code concise, but also ensures the quality of the code and enhances the reliability of the software. In addition, when the code size is very small, it becomes feasible to use the interpreted execution mode.
For beginners to thoroughly understand cloud computing and microservices, it is necessary to read, practice, and think about the connotations and associations between the knowledge. Based on this consideration, each chapter of the book, after the important knowledge points, is provided with reflection questions to guide the reader to think back and around, in order to test the learning effect, deepen the understanding of knowledge points, and train pioneering thinking. The exercises in this book have been carefully selected and organized to cover the important knowledge points.