Skip to content

Latest commit

 

History

History
18 lines (10 loc) · 2.02 KB

第七章节.md

File metadata and controls

18 lines (10 loc) · 2.02 KB

CHAPTER 7

Disposability

可处置性是原始的12 factors中的第九个

作为一个云实例,一个应用程序的生命周期和支持它的基础设施一样是朝生夕灭的。一个云原生应用的进程应该是可处置的,这意味着他们可以快速的重启和停止。如果一个应用程序不能快速的启动和优雅的关闭,那么它就不能快速的扩展,部署,发布和恢复。我们不仅要在构建应用的时候想到这一点,关键是我们做到这一点就能充分利用云平台的优势

以前,在企业容器中部署的应用可能需要数分钟的时间去启动,较长的启动时间不仅限于旧版或企业应用程序,用解释性语言编写或写得不好的软件可能也需要很长时间才能启动

如果您正在启动一个应用程序,并且要花几分钟时间才能进入稳定状态,那么在当今的高流量世界中,这可能意味着在应用程序启动时会拒绝成百上千个请求。更重要的是,视应用程序部署所在的平台而定,如此缓慢的启动时间实际上可能会触发警报或警告,因为应用程序无法通过其运行状况检查。极慢的启动时间甚至可能阻止您的应用程序完全在云中启动

如果你的应用程序正在一个高负载的场景下,你需要快速的启动更多的实例去处理这个负载,但是慢启动会阻碍你通过扩展去处理较高的负载。如果应用程序不能快速和优雅的关闭,他们同样会失去失败场景下快速恢复的能力,不能快速关闭的能力同样会有耗尽资源的风险

许多应用程序会在启动过程中一些耗时教长的动作,例如获取数据缓存起来或者加载一些依赖项。为了真正地接受云原生架构,你需要单独处理这种动作。例如,您可以将缓存外部化为后端服务,以便您的应用程序可以快速启动和关闭,而无需执行启动前加载动作

项目主页