观点:云原生架构的5条原则
极客时间编辑部
讲述:丁婵大小:2.24M时长:04:52
在 Google Cloud 中,我们经常把“云原生架构”这一术语作为迁移或构建在Google Cloud Platform(GCP)上的应用程序所期望的最终目标。但云原生究竟是什么意思呢?更重要的是,你如何着手设计这样一个系统?
EMEA 云解决方案架构负责人汤姆·格雷(Tom Grey)发文称云原生架构的重点是通过横向扩展、分布式处理,以及自动更换故障组件来实现弹性和扩展。他列出了云原生架构的五个原则,这些原则将有助于确保设计充分利用云,同时避免将旧的方法引入新平台的陷阱。
原则一:自动化设计
自动化一直是软件系统的最佳实践,但云技术使得基础设施以及位于其上的组件自动化变得前所未有的简单。尽管前期投资通常会更高,但从中期来看,无论从投入的角度,还是在系统的弹性和性能方面,几乎总能获得回报。自动化流程可以比人更快地修复、扩展和部署系统。云上的架构并不是一次性的,自动化也不例外,因为会找到新的系统操作方法,所以将发现新的东西可以自动化。
原则二:善用状态
存储的“状态”,可以是用户的数据或者是系统的状态(例如,作业中运行的实例数量,运行中的代码版本),这是构建分布式、云原生架构最难的方面。因此,设计系统时应该有意地去了解何时以及如何存储状态,并尽可能设计无状态的组件。
无状态的组件可以很容易实现以下功能:
1. 伸缩:要扩展,只需添加更多的副本。要收缩,可以引导实例在完成当前任务后终止;
2. 修复:要“修复”一个失败的组件实例,只需尽可能优雅地终止它并启动一个替换;
3. 回滚:如果部署得不好,无状态的组件更容易回滚,因为可以终止它们并启动旧版本的实例;
4. 负载均衡:当组件处于无状态时,负载均衡要简单得多,因为任何实例都可以处理任何请求。有状态组件的负载均衡要困难得多,因为用户会话的状态通常驻留在实例上,这迫使该实例处理来自给定用户的所有请求。
原则三:支持托管服务
云不仅仅是基础设施,大多数的云提供商都提供丰富的托管服务,提供各种各样的功能,让我们轻松管理后端软件或基础设施。但是,许多组织对利用这些服务持谨慎态度,因为他们担心被某个供应商给“绑定”。这是一个合理的担心,但托管服务通常可以极大地节省组织的时间和运营开销。
原则四:深入实践防御
传统的体系架构非常重视周边安全,粗略地说,它建立了一个强化的网络边界,内部有“可信赖的东西”,外部有“不受信任的东西”。不幸的是,这种方法总是容易受到内部的攻击,以及鱼叉式网络钓鱼(spear phishing)之类的外部威胁。此外,提供灵活的移动办公的压力越来越大,进一步破坏了网络边界。
云原生架构起源于面向互联网的服务,因此始终需要处理外部的攻击。它们通过在每个组件之间应用身份验证,并通过最小化这些组件之间的信任(即使它们是“内部的”)来实施深度防御。因此,没有“内部”和“外部”之分。此外,云原生架构应该将此想法扩展到身份验证之外,包括速率限制和脚本注入等内容。
原则五:架构不止
云原生系统的核心特征之一是它总是在进化,这同样适用于架构。作为一个云原生架构师,随着组织需求的变化、IT 系统环境的变化以及云提供商自身的能力的变化,你应该始终寻求优化、简化和改进系统的架构。尽管这无疑需要不断的投资,但过去的教训是显而易见的:要发展、增长和响应,IT 系统需要生存、呼吸和改变。过时的、僵化的 IT 系统会迅速使组织陷入停顿,无法应对新的威胁和机遇。
以上就是今天的内容,这些原则并不是创建云原生架构的神奇公式,但希望能为如何充分利用云提供强有力的指导。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论