现代云原生设计理念

前文传送门

现代设计理念

你会如何设计云原生应用程序?

需要遵循哪些原则、模式和最佳实践?

需要特别关注哪些底层/操作?

十二要素应用程序

目前被普遍认可的基于云的方法论是"十二要素应用程序",它给出了开发人员要遵循的一组原则和实践,帮助构建针对现代云环境优化的应用程序。

尽管适用于任何基于Web的应用程序,但许多从业者都将“十二要素”视为构建云原生应用程序的坚实基础。基于这些原则构建的系统可以快速部署和扩展,并可以添加功能以对市场变化做出快速反应。

重申“十二要素”方法论:

要素描述
Code Base代码仓库中一套代码,多处部署
Dependencies每个微服务显式声明并打包自己的依赖项、变更项
Configurations在环境中外挂配置
Backing Services将支撑性服务(数据存储,缓存,消息代理)看做附加资源,通过可寻址的URL公开
Build, Release, Run严格区分构建和运行阶段,现代CI/CD技术实现了这一原则。
Processes将应用程序作为一个或多个无状态进程执行
Port Binding通过端口绑定暴露服务
Concurrency对进程模型进行横向扩展
Disposability快速启动和正常关闭可最大程度地提高鲁棒性
Dev/Prod Parity保持开发、生产尽可能相似
Logging将日志视为事件流,使用事件聚合器将事件传递到数据挖掘/日志管理工具
Admin Processes用一次性动作 执行管理任务

凯文·霍夫曼(Kevin Hoffman)详细介绍了最初的12个要素(写于2011年)。此外,他针对现代云应用程序提出另外三个要素。

新要素描述
API First使一切成为服务(如果你的代码将被前端、网关或其他服务使用)
Telemetry在程序设计中包含遥测、健康检查
Authentication/Authorization一开始就实现身份认证和鉴权

关键的设计考量

除了十二要素方法提供的指导之外,还必须注意几个关键的设计考量。

????Communication 通信
  • 前端如何与后端服务通信?  

         是直接通信吗?还是提炼出后端网关 (提供灵活性、管控力和安全性) ?

  • 后端服务之间如何通信?

         直接Http调用 (可能导致耦合,影响性能和敏捷性) ? 还是考虑使用queue/Topic技术解耦消息?

第4章“云原生通信模式”详细介绍了通信。

????Resiliency 弹性

微服务架构将系统从进程内网络通信转移到进程外网络通信。  

在分布式体系结构中,

  • 当服务B不响应来自服务A的网络请求,会发生什么?  

  •  当服务C临时不可用,其他调用C的服务被阻塞又该怎么办?

第6章“云原生弹性”详细介绍了弹性。

????Distributed Data 分布式数据

按照设计预期,每个微服务都内嵌自己的数据,通过公开接口暴露。

如果是这样,如何实现跨多个服务的数据查询/事务?

分布式数据将在第5章“云原生数据模式”中详细介绍。

????Identity 身份

您的服务将如何识别谁在访问它以及他们拥有哪些权限?

身份将在第8章“身份”中详细介绍。

Ref

  • https://tanzu.vmware.com/content/blog/beyond-the-twelve-factor-app

  • https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition

  • ????后台回复 cloud-native, 获取微软官方《云原生.pdf》下载链接  ????

更多干货及最佳实践分享
关注并星标我们~。。~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有态度的马甲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值