支撑性服务 自动化能力

连载传送门:

  • 什么是云原生?

  • 云原生设计理念

  • .NET 微服务

  • 谈到云原生,绕不开“容器化”

Backing services

云原生系统依赖于许多不同的辅助资源,例如数据存储、消息队列、监视和身份服务,这些服务统称为支撑性服务

下图显示了云原生系统使用的常见支撑性服务

支撑性服务帮助实现了“十二要素应用”中的Statelessness原则

要素6提到:“每个微服务应在独立隔离的进程中执行,将所需状态信息作为外部支撑性服务,例如分布式缓存或数据存储

最佳实践是将支撑性服务视为附加资源,并使用外部挂载的方式将配置(URL和凭据)动态绑定到微服务。

要素4指出:“支撑性服务“应通过可寻址的URL公开,这样做解耦了将资源与应用”
要素3指出:“将配置信息从微服务中移出并外挂”

Stateless和支撑性服务,这样松散的设计使你可以将一项支撑性服务换成另一项支撑性服务,或将代码移至其他公有云,而无需更改主线服务代码。

支撑性服务将在第5章“云原生数据模式”和第4章“云原生通信模式”中详细讨论


自动化

如你所见,云原生依赖(微服务、容器和现代设计理念)来实现速度和敏捷性。
但是,你如何配置运行这些系统的云环境?你如何快速部署应用程序功能和更新?

被广泛认可的作法是基础设施即代码(IaC)

借助IaC,你可以将平台配置和应用程序部署自动化,将诸如测试和版本控制之类的软件工程实践应用于你的DevOps实践。你的基础架构和部署是自动化,一致且可重复的。

Automating infrastructure

在底层,IaC是幂等的,这意味着你可以一遍又一遍地运行相同的脚本,而不会产生副作用。
如果团队需要进行更改,可以编辑并重新运行脚本,(仅)需要更新的资源受到影响。

在《基础架构即代码》一书中,作者Sam Guckenheimer指出:“实施IaC的团队可以大规模、快速、稳定地交付。团队不用手动配置环境,通过代码表示 需要的环境状态,来增强交付预期。使用IaC进行基础架构部署是可重复的,可防止由于配置差异或缺少依赖关系而导致运行时问题”。

Automating deployments

"十二要素应用"指出了从代码开发到交付落地的原则

要素5指出:“严格区分构建、发行和运行阶段。每个发行阶段都应标有唯一的ID,并支持回滚功能。”

现代CI/CD实现了这一原则。它们提供的独立部署步骤,确保将一致的、高质量的代码交付给用户。

下图演示了独立的部署过程:

在上图中,要注意任务分离。

开发人员在其开发环境中创建feature分支,反复迭代“inner loop”(运行和调试)。完成后,该代码将被推送到代码存储库中,例如GitHub、Azure DevOps或BitBucket。

推送触发自动构建,构建阶段将代码转换为二进制产物。这项工作是通过持续集成(CI)管道实现的,它会自动生成,测试和打包应用程序。

发布阶段拾取前面的二进制产物,加上外部应用程序和环境配置信息,产生不可变更的发行版。该版本将会部署到指定的环境。这项工作是通过持续交付(CD)管道实现的。每个版本都应该是可识别、可追溯的。你可以说:“这次部署的是应用程序的Release 2.1.1版本”。

最后,发布的版本放在目标执行环境中运行。版本不可变,这意味着任何更改都必须创建一个新版本。

应用这些实践,从根本上发展了软件发布方式。许多人已经从季度发布转为按需更新。通过集成过程的一致性,团队可以更频繁地提交代码更改,从而改善协作和软件质量。

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

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

相关文章

网站logo放在服务器,自己建网站如何设计网站LOGO

LOGO是一个网站的形象代表或者说是品牌的象征,用户记住了网站LOGO,就相当于记住了网站,因此,自己建网站时要融入网站LOGO的设计,潜移默化地把LOGO形象植入用户脑海中,把网站与LOGO紧密连接在一起&#xff0…

python http协议获取对方的ip地址_http协议(一)基础知识

参考:老张http://link.zhihu.com/?targethttps%3A//www.cnblogs.com/imyalost/p/5627816.html参考书籍——《图解http》当我们在浏览器的地址栏中输入网址,然后点击回车,接着,浏览器就会呈现出我们需要的web界面,那么…

好久没到这个地方来.

懒了,好久没写随笔了,学的东西不少,学过就忘记.没有整理,不成系统.最近也没什么好说的,瞎掰一通吧.--有时候觉得,我就是个愤青. 总感觉自己的思维很混乱,很没有头绪,东边拉袋水泥,西边拼块砖头的,没有结构,也不成体系,就是很多很原始的东西的简单堆积.得改...... 发现博客园是最…

TIOBE编程语言排行榜,Python遥遥领先

在这个快节奏的时代,要想走在潮流前端,你需要用最有效的方式,最有效率的工具,学习最有用的知识。而如今人工智能和数据分析爆发,python就是一颗冉冉升起的新星,因为简单易用和广阔的可能性,不仅…

mongodb默认的用户名密码_设置mongodb的用户名密码 | Think in Drupal

作者:亚艾元技术部我们在一个Nodejs项目中,使用了mongodb数据库,使用习惯和mysql很不一样,在摸索中前进,其中一个问题,mongodb安装完了以后,不用设置用户名密码,就可以登录使用。开始的时候&…

Dapr是如何简化微服务的开发和部署

基于微服务设计模式的现代应用程序面临着一系列挑战。微服务需要有一个强大的服务发现机制来实现动态连接。它们需要松散耦合,实现自主性和独立缩放。微服务需要支持多种语言,其中每个服务都是以最合适的语言、框架和运行时实现的。尽管采用容器和编排引…

table 内 下拉列表 被遮挡_一个简洁、有趣的无限下拉方案

本文主旨长列表渲染、无限下拉也算是前端开发老生常谈的问题之一了,本文将介绍一种简洁、巧妙、高效的方式来实现。话不多说,看下图,也许你可以发现什么?无限下拉示意图不知你是否从上面这张图中注意到了什么,比如只是…

天龙八部服务器维护后提BB,天龙八部:宠物比号值钱?玩家哭诉附体BB半年也卖不出去...

说到天龙八部的附体宝宝,相信许多爱美的玩家基本上都人手一只。附体后的增益多不多无所谓,首先附体后身上有龙、凤凰、蝴蝶等之类的特效,让许多玩家觉得游戏中角色颜值增添不少,当然一只属性不错的附体珍兽,也能够给游…

asp.net 动态添加JavaScript方法

//在页面顶部添加脚本 if (!Page.ClientScript.IsClientScriptBlockRegistered("myscriptKey"))//判断是否已经存在相同//键值的ScriptBlock { string myScript "function AlertHello(){alert(hello xuanhun!!);}";//脚本内容 …

写了 15 年代码,总结出提升 10 倍效率的三件事

译者:roy 【译者注】本文作者 Matt Watson 已经写了超过 15 年的代码,也由此总结出了提升 10 倍效率的三件事。Matt 表示,一个 10 倍效率的开发人员很快就知道了他们需要做什么,要问什么问题,什么时候不问问题&#xf…

python怎么样另存为_python要怎么保存python生成式

本篇将介绍Python的列表生成式,更多内容请参考:Python列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。举个例子,要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))>>>…

反锐化掩膜_光电图像处理 | 空域锐化滤波

锐化滤波Sharpen filterclc;close all;I imread(图片11.jpg);set(figure(1), name,不同梯度合成效果, numbertitle, off);subplot(221),imshow(I);title(原图);I rgb2gray(I);%% Roberts operatorH1x [0 0 0;0 -1 0;0 0 1]; H1y [0 0 0;0 0 -1;0 1 0];J1x imfilter(I,H1x)…

服务器不知道怎么回事安卓系统很卡,为什么安卓系统很容易变卡?该怎么解决?看完长知识了...

手机是我们现代生活的必备之物,什么都可以没有到就是不能没有手机,如今市面上的手机的手机不是安卓系统就是ios系统,安卓系统的手机虽然便宜但是有一个诟病,那就是安卓的手机会越用越卡,不管你手机配置是多么的高&…

EntityFramework Core自动返回SQL语句

【导读】给各位拜年了,开年第一篇,后续我们介绍EF Core 5.0相关新特性自动返回SQL语句当执行LINQ查询时,EF Core 5.0提供了ToQueryString扩展方法返回生成的SQL语句比如,执行如下LINQ查询var name "jeffcky"; var user…

生成jar文件的方法

生成jar文件的方法。菜单:Wizards--Archive builder如果需要重新生成jar文件,则需要在菜单中选择 project--rebuilder在jbuilder中加入其它jar包的方法。1>菜单:tools--Enterprise Setup--Datebase Driver--Add--new--选择jar所在的路径--…

怎么用ai做出适量插画_怎么用最简单的方法,做出最炫酷的数据可视化图表?...

如果要问数据怎样做才能显得最装逼,那么答案一定只有一个:“数据可视化”!看上去也很炫酷对不对,其实上面的可视化图表其实并不复杂,很多人推荐的Python、R语言、Tableau等专业数据分析工具几乎都能很轻松的实现。但是…

stm32烧不进去程序_STM32的FLASH和SRAM的使用情况分析

点击上方蓝字关注我哦~01前言STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。本文详细分析下如何查看程序中FLASH和SRAM的使用情况。本文开发工具: keil5芯片: STM32F105VCT602FLASH和SRAM介绍FLA…

每一个人都应该学习电脑编程,因为它会教你如何思考

扎克伯格11岁开始学习编程,创办Facebook;比尔盖茨13岁学习编程,创办微软……乔布斯说:“每一个人都应该学习电脑编程,因为它会教你如何思考。" 现在在北京上海,顶级的IT工程师,年薪至少是百…

GitHub Actions 支持 skip ci 了

GitHub Actions 支持 "skip ci" 了IntroGitHub Actions 作为 GitHub 官方的 CI 支持,很多开源项目已经在使用 Actions 来做项目的 CI 了,但是一直以来有一个痛点,就是不支持跳过 CI,其他的 CI 大多都可以通过在 commit …

化解致癌食品有办法

一:化解致癌食品有办法 盐腌菜在加工前期没有处理过,含有一定量的亚硝基化合物,一般人们常用水煮、日照、热水洗涤等方法可达消除致癌的目的。其中上佳的方法是用水煮,但对腌菜的味道有所影响。如腌制前适量加入维生素C&#xf…