现代云原生设计理念

前文传送门

  • 什么是云原生?

现代设计理念

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

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

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

十二要素应用程序

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

尽管适用于任何基于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》下载链接  ????

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NFS服务器架设篇

大家好,本周我们的课程是NFS服务器的架设。下面我们分几个部分来介绍NFS服务器。一、NFS简介NFS是分布式计算机系统的一部分,一般在用unix和类unix的系统上实现文件的传输。而且可以把NFS服务器共享的目录挂载到本地,使用cp,cd&am…

用画小狗的方法来解释Java中的值传递

在开始看我画小狗之前,咱们先来看道很简单的题目: 下面程序的输出是什么? 如果你的回答是“小强”,好,恭喜你答对了。下面我们改一下代码: 是的,我只是在changeName方法里面加了一句代码 这一次…

gif分解工具_Python之GIF图倒放,沙雕快乐源泉

GIF图现在已经融入了我们的日常网络生活,微信群、QQ群、朋友圈......一言不合就斗图,你怕了吗?不用担心,只要学会了Python之GIF倒放技能,你就是“斗图王”。咱们直接开始本文的内容!使用的工具1PIL(Python …

微软亚洲研究院全球院友线上欢聚,共话新春

金鼠辞旧岁,金牛报春时;万象正更新,乾坤喜气多。西雅图时间 2 月 6 日,北京时间 2 月 7 日,由微软亚洲研究院院友会西雅图分会主办的“牛转新运”院友新春线上茶话会圆满落幕。重量级嘉宾沈向洋、洪小文、张亚勤、张宏…

从串行线程封闭到对象池、线程池

今天讲一个牛逼而实用的概念,串行线程封闭。对象池是串行线程封闭的典型应用场景;线程池糅合了对象池技术,但核心实现不依赖于对象池,很容易产生误会。 本文从串行线程封闭和对象池入手,最后通过源码分析线程池的核心原…

netty springmvc_springmvc源码架构解析之HandlerMapping

说在前面前期回顾sharding-jdbc源码解析 更新完毕spring源码解析 更新完毕spring-mvc源码解析 更新完毕spring-tx源码解析 更新完毕spring-boot源码解析 更新完毕rocketmq源码解析 更新完毕dubbbo源码解析 更新完毕netty源码解析 更新完毕spring源码架构更新完毕springmvc源码架…

腾讯牛逼,我酸了!!

阅读本文大概需要8分钟。腾讯这两天搞了个业内爆炸沸腾的事情:全员阳光普照发放100股,解禁期一年。腾讯股价近年来一直在疯狂上涨,100股折合人民币6万多:关键是员工什么都没做,直接拿到价值6万的股票。作用可以说是相当…

这本造价500万的“黑科技”日历,用377张爆美插画给你365天理想生活

以前,每个人家里, 都挂着一本日历。 爷爷戴着老花镜, 盘看着黄道吉日; 奶奶一字一句, 念叨着每日禁忌; 我们跟着日历过日子, 时光缓慢,记忆清晰。 那时候,日历本上的日子…

eladmin代码自动生成_如何让Mybatis自动生成代码

点击上方“Java知音”,选择“置顶公众号”技术文章第一时间送达!作者:阿进的写字台cnblogs.com/homejim/p/9782403.html在使用 mybatis 过程中, 当手写 JavaBean 和 XML 写的越来越多的时候, 就越来越容易出错。这种重…

.NET微服务

前文传送门:什么是云原生?现代云原生设计理念Microservices微服务是一种构建现代应用程序的流行的体系结构,云原生系统拥抱微服务。微服务是由一组(使用共享结构交互的、独立的小块服务)搭建的分布式集,具有以下特征:在…

还是找程序员做老公,最靠谱!

很多MM在选老公的时候,都会选择帅气多金,职业又稳定的男生做老公,像医生啊、律师啊、老师啊这类职业。 但是,你有没有想过? 医生的身边都围着好多护士小姐,而且天天加班是常态,相处的时间太少&a…

14个超级牛X的免费开源小工具!

最近整理了一些在用的,感觉还不错的开源小工具,有的仅适用MacOS,但多数跨平台。 Homebrew Homebrew — The missing package manager for macOS:https://brew.sh,Mac上非常好用的包管理工具,很多常见的安装…

硬件加速下webview切换闪屏_网页渲染性能优化 —— 性能优化下

博客 有更多精品文章哟。Composite 的优化 终于,我们到了像素管道的末尾。对于这一部分的优化策略,我们可以从为什么需要 Composited Layer(Graphics Layer)来入手。这个问题我们在构建 Graphics Layer Tree 的时候,已…

计算机和网络邻居都不见 了,网上邻居看不到自己和别人电脑怎么办

不少网友都试过,在局域网里面,打开网上邻居,结果里面一台电脑都没有,或者只能看到自己的,看不到其他人的,这是怎么回事呢?学习啦小编在这里教大家如何解决这个问题,希望能帮到大家。…

Python 开发者的 6 个必备库

无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的。 Python 凭借其易用的特点,已经被工业界和学术界广泛采用。另一方面&#x…

如何在注册表里计算机用户名,可以通过注册表修改电脑的密码 ?怎么做的?

可以通过注册表修改电脑的密码 ?怎么做的?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!可以通过注册表修改电脑的密码 ?怎么做的?不用怎么麻烦的运行输入cmd在这里输入 user 用户名 密…

c++游戏代码大全_还在学少儿编程?不如来玩工厂编程师,免费学编程逻辑的小游戏...

40000游戏爱好者已加入我们!每天推荐好玩游戏!加入我们,沐沐带你发现好游戏!《工厂编程师》游戏小程序好玩吗?《工厂编程师》小游戏怎么玩?只有你想不到,没有我找不到的好游戏!「良心…

Istio 1.9 发布——重点改善 Istio 的 Day2 操作

本文译自 Istio 官方博客,原文地址:https://istio.io/latest/news/releases/1.9.x/announcing-1.9/Istio 1.9 版本的重点是改善用户在生产中运行 Istio 的 Day2 操作。在用户体验工作组收集到的反馈意见的基础上,我们希望改善用户的稳定性和整…

Windows漏洞利用开发——利用ROP绕过DEP保护

实验6 Windows漏洞利用开发 6.1实验名称 Windows漏洞利用开发 6.2实验目的 学习windows漏洞利用开发,使用kali linux相关工具对windows内目标程序进行漏洞利用 6.3实验步骤及内容 第三阶段:利用ROP绕过DEP保护 了解DEP保护理解构造ROP链从而绕过DEP…

技术人必备的碎片化时间学习工具

工作、生活节奏超快的今天,想要不断提升自我,碎片化阅读学习是你最佳的选择,如果你有一颗学习的心,那这些学习型的公众号,绝对会让你受益匪浅。 小编为你精选了技术领域几个精品微信订阅号,涵盖了时下最热门…