专栏首页全栈码农画像支撑性服务 & 自动化能力

支撑性服务 & 自动化能力

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版本”。

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

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

本文分享自微信公众号 - Dotnet Plus(nodotnet),作者:小码甲

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-02-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NTP时间同步服务器提升电信支撑网性能

    各项新的数据业务,如电子商务、多媒体通信、IP电话等都是电信业务发展的新增长点,而传统业务也存在多家企业互连互通和网间结算问题,并且通信业务所涉及的安全、认证及...

    NTP网络同步时钟
  • PerfDog助力自动化性能测试探索

    性能问题不是一开始就有的,也不是某一天突然出现的,而是随着我们的开发进度不断累积产生的; 到后来我们希望用几天的时间去解决几个月甚至几年的问题,而实际上结果往往...

    WeTest质量开放平台团队
  • 《自动的自动化测试智能化一站式API测试服务》

    TiD2019质量竞争力大会邀请了新奥集团中台质量总监陈磊为参会者带来《自动的自动化测试智能化一站式API测试服务》精彩演讲。陈磊从智能化测试框架、智能化API...

    Criss@陈磊
  • 移动化服务商能力PK,市场格局未定

    自2010年左右国内企业移动化浪潮兴起之后,移动办公一直是一个经久不衰的话题。而随着业务场景、业务环境等的不断变化,企业在移动化方面的需求也在不断更新。T研究就...

    人称T客
  • KonaJDK赋能云上Java新生态

    导语:本文将主要从KonaJDK在信创云环境支撑,KonaJDK支持腾讯云产品的能力拓展与定制化以及KonaJDK在大数据场景的优化实践几个方面,介绍KonaJ...

    腾讯云中间件团队
  • KonaJDK – 赋能腾讯云上Java生态

    导语:JDK作为Java应用的基础设施,在云Java生态上的重要性不言而喻。KonaJDK作为Tencent自研JDK, 已经平稳支撑于腾讯云微服务,消息中间...

    腾讯大数据
  • 数字化加速,数据如何保鲜,价值如何变现?

    全球经济数字化转型是大势所趋。加快数字经济发展,推动数字化变革已经成为未来十年经济发展的重要推动力。数字化增长带来新机遇,DTC(Direct To Custo...

    PingCAP
  • 【干货】解读《大数据产业发展规划(2016-2020年)》

    导读:推动大数据产业持续健康发展,是党中央、国务院作出的重大战略部署,是实施国家大数据战略、实现我国从数据大国向数据强国转变的重要举措。日前,工业和信息化部正式...

    钱塘数据
  • 深入探索边缘计算:物联网和5G时代的技术趋势

    随着物联网规模的快速增长,集中式的数据存储、处理模式将面临难解的瓶颈和压力,此时在靠近数据产生的网络边缘提供数据处理的能力和服务,将是推动ICT产业发展的下一个...

    CloudBest

扫码关注云+社区

领取腾讯云代金券