云环境下软件设计与运维的关键要点
1. 弹性与可扩展性:云时代的核心需求
云的兴起为各类用户带来了几乎无限的资源池,使得应用基础设施能够在短时间内根据用户需求进行扩展。可扩展性设计有两种方式:水平扩展和垂直扩展。
水平扩展是指通过增加或减少实例数量来满足处理能力的需求,确保用户请求不仅能得到处理,还能在合理时间内完成,从而降低应用的延迟。垂直扩展则是增加或减少实例的计算能力(如 CPU、RAM 等),而非实例数量。
理想情况下,应优先选择水平扩展,原因如下:
- 垂直扩展不增加实例数量,若唯一的实例出现故障,可能导致整个系统崩溃(如果系统缺乏弹性)。
- 垂直扩展并不总是能保证处理更多请求,因为物理硬件限制了服务器能力的提升。
减少延迟至关重要,因为用户等待服务器响应的时间越长,就越有可能放弃使用服务,转而选择竞争对手的服务。
弹性是指系统从困难中恢复的能力。与可扩展性相关的是,当系统处于压力下时,即使触发了自动扩展请求(可能需要一些时间才能完成),也可能拒绝传入请求。如果系统缺乏弹性,就会崩溃,用户可能会丢失会话;而有弹性的系统会捕获失败请求,并多次尝试处理,最终成功完成请求。
为了利用云平台的优势,应用必须具备可扩展性和弹性。可以通过使用支持这些概念的云模式、工具和框架来实现。对于本地应用,以往可能因预先知道系统的最大负载而忽视了可扩展性和弹性的注入,但云环境改变了这一情况,系统可能会获得超出预期的成功,因此设计系统时应考虑应对这种情况。
2. 监控:保障应用成功的必要手段
当你构建并部署了一个新应用后,很容易忘记监控这一重要环节。监控是一个系统且定期的过程,用于收
超级会员免费看
订阅专栏 解锁全文

16

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



