当前位置:网站首页>"Five layer" architecture of cloud applications and services
"Five layer" architecture of cloud applications and services
2022-06-28 03:33:00 【Ultipa】
A complete set of cloud applications 、 Service architecture can usually be divided into 5 layer .
· Load balancing layer (Load Balancing)
· Application service layer (Application Server)
· Cache service layer (Caching Server)
· Database service layer (Database Server)
· Cloud storage layer (Cloud Storage)

chart : Five layer architecture of cloud applications
(1) Load balancing
Load balancing layer (Load-Balancing Layer,LB Layer) The implementation of 5 The first to face users in the layer architecture , It is also relatively easy to implement . Usually to avoid SPOF, At least two sets shall be set LB The server ( Usually on two physical hosts , In order to avoid single hardware failure SPOF). The entire extension setup process can usually be fully automated , For example, through DNS API To configure adding or deleting LB node . The most common LB The solution is HAProxy or Nginx, They can usually support load balancing across cloud platforms ( That is, servers and other layers cross the cloud , Of course, the design and implementation complexity of this architecture will increase dramatically . As we mentioned earlier Cloud Bursting It is a typical cross cloud infrastructure pattern ). Intelligent LB Layer implementation can be based on the health status of the application server layer 、 Load state to dynamically drain , To ensure that the system really achieves balanced load .
Cloud service providers often provide out of the box LB service , for example AWS Of ELB(Elastic Load-Balancer)、RackSpace Of CLB(Cloud Load-Balancer), also VMware vCloud Air Gateway Services Both provide powerful LB service .
(2) Application service
Below the load balancing layer is the application server layer , It handles LB Forward the user request and return the corresponding data set . Generally, data sets are divided into static data and dynamic data . The former can be reserved in the cache layer to reduce the load on the application server and database server ( See above ) And accelerate the client to get the returned data , The latter usually requires the cooperation of the underlying database layer to dynamically generate the required data sets . The extension of this layer is usually realized by monitoring the load of existing servers ( Mainly CPU, The second is memory 、 The Internet 、 Storage space ), And conduct horizontal or vertical expansion as required . Horizontal scaling (Scale-out) It is usually an online homogeneous server ( Physical or virtual machines ), To reduce the load on existing servers or server clusters ; Vertical expansion (Scale-up) That's right. CPU、 Memory 、 The Internet 、 Storage space for upgrade . Horizontal expansion usually does not require system offline , But vertical expansion requires the upgraded host ( It could be a virtual machine or a container ) restart .
The application service layer involves application service logic , When multiple servers work together , You also need to ensure that the services running on them are consistent . This DevOps The problem is usually as PaaS Layer part of the task or in the data center M&O Component to achieve consistent application upgrade 、 Deployment, etc. .
(3) cache
The cache layer may exist between the application server layer and the database server layer , It may also be above the application server layer . The former can be used to reduce the repeated calculation and network load of the database server . The latter is used to reduce application server load and network bandwidth consumption . Cache technology is widely used , from Web The server 、 middleware 、 Databases are heavily cached to reduce unnecessary double counting , So as to improve the comprehensive performance of the system .
The extensibility of the cache layer is implemented to avoid the occurrence of SPOF On the basis of ( The cache server of a single node or the method of sharing nodes with the application server are not desirable in the production environment ), It mainly focuses on how to achieve load balancing among multiple cache nodes . The most common distributed simple cache implementation is memcached( The busiest in the world 20 Websites , Yes 18 I used memcached3), At multiple stations memcached A hash table is formed between servers , When a new cache node is added or an old node is deleted ( Or offline ) when , Existing nodes do not need full-scale changes to generate new hash tables ( This algorithm is also called Consistent Hashing Algorithm, Consistent hash algorithm ). For the replacement and update of data in the hash table ,Memcached It's using TTL(Time-To-Live) And LRU(Least-Recently-Used) Pattern . For more complex high scalability cache system design , Belong to NoSQL Class CouchBase The database provides a more robust implementation of enterprise level caching , for example Data Persistence( Constant data storage )、Auto-Reblanacing( Automatic load balancing )、 Multi tenant support, etc .
In the following two-tier architecture, we will make a separate article to explain to you .
边栏推荐
- Websocket (simple experience version)
- 2022 electrician (elementary) recurrent training question bank and online simulation examination
- Object class, and__ new__,__ init__,__ setattr__,__ dict__
- 导入Excel文件,解决跳过空白单元格不读取,并且下标前移的问题,以及RETURN_BLANK_AS_NULL报红
- 国泰君安证券靠谱吗?开证券账户安全吗?
- 数据库的迁移
- matlab习题 —— 数据的基本处理
- 可扩展数据库(下)
- Ten reasons for system performance failure
- 建立自己的网站(17)
猜你喜欢
![Redis cluster setup [simple]](/img/20/9974a290f8c5d346e2b404b48b02e5.png)
Redis cluster setup [simple]

R1 Quick Open Pressure Vessel Operation Special Operation Certificate Examination Library and Answers in 2022

Dataloader parameter collate_ Use of FN

根据Explain查看sql执行计划,对SQL进行优化

17 `bs object Node name h3 Parent ` parents get parent node ancestor node

CI & CD 不可不知!

__ getitem__ And__ setitem__

Idea auto generate code

What is the core problem to be solved in the East and West?

Object class, and__ new__,__ init__,__ setattr__,__ dict__
随机推荐
PPT制作小技巧
【PaddleDetection】ModuleNotFoundError: No module named ‘paddle‘
Object类,以及__new__,__init__,__setattr__,__dict__
TypeScript 联合类型
Arm development studio build compilation error
Idea auto generate code
WARN: SQL Error: …
猴子都会用的圆形滑动自动吸附UI工具
文件的相对路径写法
Solution to not displaying logcat logs during debugging of glory V8 real machine
Redis cluster setup [simple]
数据库系列之MySQL中的执行计划
Custom controls under WPF and adaption of controls in Grid
同样是MB,差距怎么这么大呢?
数的每一位平方和
Notepad++--列编辑模式--用法/实例
数据库系列之MySQL配置F5负载均衡
What are the technologies to be mastered in the test? Database design for software testing
Notepad++--常用的插件
How does the open-ended Hall current sensor help the transformation of DC power distribution?