云原生应用的可复制性设计与实践
1. 云原生应用面临的挑战
在云环境中开发应用时,会面临诸多挑战。一方面,云平台本身可能不可靠,硬件故障、计划内的系统维护等都会导致应用出现不可用的情况。传统 IT 应用往往将可靠性的责任推给硬件工程师和运维人员,认为应用的可靠性取决于运行它的硬件。然而,硬件的可靠性是有限的,且提高硬件可靠性的成本极高。即便硬件很少出现故障,也无法完全消除计划外和计划内的停机。
另一方面,云应用通常会被众多用户共享,当大量用户同时使用应用时,应用可能会因负载过高而出现性能下降、请求丢失甚至崩溃的问题。传统 IT 为应对客户端请求容量问题,主要有两种方法:
- 垂直扩展 :让应用使用计算机更多的资源,如 CPU 和内存,以处理更多并发请求。但这种方式存在局限性,当计算机的 CPU、内存、网络带宽或存储资源耗尽时,应用将无法继续扩展,且扩展后资源难以释放,往往需要重启进程。
- 最大容量设计 :根据可能出现的最大客户端负载来设计应用的容量。但大多数情况下,客户端负载远低于最大容量,这会导致资源浪费,而且仍有可能出现超出最大负载的情况,使应用变得不可靠。
2. 可复制应用的概念与优势
为了让应用在不可靠的云平台上可靠运行,并能根据客户端负载动态调整容量,可将应用设计为可复制应用(Replicable Application)。可复制应用能够运行多个冗余的应用副本,这些副本提供相同的功能,且彼此之间互不干扰。
云平台的管理功能中包含应用部署器,通过重复运行部署器,可以从应用包中创建新的工作负载实例,即应用副本。这些副本是同一应用包的部
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



