4.3 性能设计
随着高速互联网的普及,客户正在寻求加载时间最小的高性能应用程序。组织已经注意到,应用程序的性能与其营收受到的影响成正比,缓慢的应用程序加载速度将严重影响客户参与度。现代企业对性能有很高的期望,这导致高性能应用程序成为企业在市场竞争中的必备条件。
与韧性一样,解决方案架构师需要在架构设计的每一层中都考虑性能。团队需要进行监控以确保其有效运转,并持续改进。更好的性能意味着更高的用户参与度且能提升投资回报率,应用程序的高性能设计旨在处理由外部因素(例如互联网网速)导致的应用程序运行缓慢问题。例如,在网速良好的情况下,你可能将博客网页的加载速度设计为500毫秒以内。但在网速较慢的情况下,你可以在等待图像和视频加载的同时,先加载文本来吸引用户。
在理想的环境中,随着应用程序工作负载的增加,自动伸缩机制将会在不影响应用程序性能的前提下处理额外的请求。但在现实中,当伸缩生效时,应用程序延时会有一段时间的上升。实践中,最好通过增加负载来测试应用程序的性能,确认是否可以实现所需的并发量和用户体验。
在服务器层面,需要根据工作负载的特点选择正确的服务器类型。例如,选择合适的内存与算力来处理工作负载,因为内存拥塞会降低应用程序性能,并最终可能导致服务器崩溃。对于存储来说,重要的是选择合理的IOPS(Input/Output Per Second,每秒的输入输出量)。对于写密集型的应用程序来说,需要较高的IOPS以减少延迟并提高磁盘写入速度。
要获得出色的性能,请在架构设计的每一层中使用缓存。缓存可以将数据保留在用户的本地存储,或将数据保存在内存中,以提供超快响应。以下是为应用程序各层添加缓存时需要注意的地方:
□通过用户系统中的浏览器缓存来加载频繁请求的网页。
□使用DNS缓存可以快速查询网站地址。
□通过CDN在用户位置附近缓存高分辨率图像和视频。
□在服务器层面,最大限度地利用内存缓存来服务用户请求。
□使用Redis和Memcached之类的缓存引擎来处理缓存层的频繁查询。
□使用数据库缓存来处理内存中的频繁查询。
□注意每一层的缓存过期和缓存逐出情况。
综上所述,应用程序的性能是解决方案架构设计必不可少的因素之一,并且直接关系到组织的盈利能力。解决方案架构师在创建解决方案设计时需要考虑性能因素,并坚持不懈地持续改善应用程序性能。
更多关于不同缓存模式的内容见第6章。性能是一个至关重要的因素,第7章将继续深入探讨优化应用程序性能的技术。