前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >支撑性服务 & 自动化能力

支撑性服务 & 自动化能力

作者头像
有态度的马甲
发布于 2021-03-12 09:10:45
发布于 2021-03-12 09:10:45
7700
举报
文章被收录于专栏:精益码农精益码农

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 精益码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
打造企业级自动化运维平台系列(一):云原生技术基础入门详解
读完本文,你将对云原生下的核心概念微服务、DevOps、容器云、Service Mesh、Serverless、Immutable Infrastructure、Declarative-API等有一个详细的了解,帮助你快速掌握云原生的核心和要点。
民工哥
2024/01/18
9620
打造企业级自动化运维平台系列(一):云原生技术基础入门详解
数字化企业云平台的Cloud Native12原则(上)
本文作者介绍了未来云原生应用建设的方法论,开发Cloud Native App的理想实践标准——12要素原则的前6个原则,并围绕数字化企业云平台讲述了具体实践方法和步骤。 Uber、滴滴、小米、红领、Airbnb等软件服务给我们日常生活带来革命性的颠覆,互联网给我们带来生活极大的便利。未来会有更多的传统企业以互联网思维模式进行业务创新,在实现自身数字化转型的同时,为我们带来更优的生活体验。所有的这一切需要强大的IT能力支撑,需要企业IT的精益运营,让软件的生产、交付、获取、升级、遥测是简单的。 在以云计算
yuanyi928
2018/03/30
1.2K0
数字化企业云平台的Cloud Native12原则(上)
如何正确地迁移到云原生应用架构
原生云的崛起 软件正在吞噬这个世界——马克.安德森(Mark Andreessen) 近年来,一直被拥有根深蒂固的传统思想的大佬们统治的企业正在被快速打乱,他们正在被以软件为核心的企业所破坏。例如S
Rainbond开源
2018/05/31
1.6K0
打造企业级自动化运维平台系列(二):DevOps、CI、CD、CT 详解
一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护,基于这些阶段,我们的软件交付模型大致经历了以下几个阶段。
民工哥
2024/01/18
2.8K0
打造企业级自动化运维平台系列(二):DevOps、CI、CD、CT 详解
DevOps已死?2024年的DevOps将如何发展
随着我们进入2024年,DevOps也发生了变化。新兴的技术、变化的需求和发展的方法正在重新定义有效实施DevOps实践。
陈哥聊测试
2024/04/08
2370
DevOps已死?2024年的DevOps将如何发展
大多数公司难以实现基础设施即代码的原因
基础设施即代码 (IaC) 是云原生应用和基础设施定义、供应和管理 IT 基础设施的一项基本实践。
云云众生s
2024/11/28
600
基础设施即代码:你需要知道的一切
基础设施是软件开发过程的核心原则之一——它直接负责软件应用程序的稳定运行。这种基础设施的范围从服务器、负载平衡器、防火墙和数据库一直到复杂的容器集群。
陈哥聊测试
2022/05/13
8970
云原生机制的三个核心思想及其未来之路
摆脱临时性自动化方案之定位,发挥优势以实现可预测功能。 您能否以每周为单位向客户发布各类新功能?甚至进一步达到以每天乃至每小时为单位?新晋开发人员能否在上班的第一天即进行代码部署,或者是在工作审查过程
静一
2018/03/23
1K0
云原生机制的三个核心思想及其未来之路
腾讯大牛深入浅出详解云原生
| 作者:王珏,腾讯云数据库高级研发工程师,主要负责腾讯云MySQL数据库、数据库中台等研发工作。 ---- 本文介绍目前业界非常火热的“云原生(CloudNative)”相关知识结构,包括微服务、DevOps、持续交付、服务网格、Serverless等相关知识点。“云原生”通过提供一套完整的技术体系和方法论来指导我们在云环境下,在系统功能越来越复杂的情况下,还能够做到敏捷开发并保证系统可用性。 1 云原生产生背景 随着云计算平台的成熟和分布式框架的普及,应用上云已经是不可逆转的趋势,未来应用会分成两种
腾讯云数据库 TencentDB
2020/02/14
3.3K0
腾讯大牛深入浅出详解云原生
《云原生:运用容器、函数计算和数据构建下一代应用》
第1章 云原生简介 1.1 分布式系统 云原生应用的核心也是分布式系统 延迟指的是数据从发送到接收需要多少时间。而带宽指的是在给定时间窗口内可以传输多少数据。因为延迟对用户体验和性能有很大影响 避免频繁的网络调用和一些不必要的请求 在设计云原生应用时,可以考虑采用缓存、内容分发网络(CDN)、多区域部署等技术或方法来使得数据离客户端更近 采用“发布/订阅”模式,以通知有新数据到达,并将其存储在本地以便可以立即使用这些数据 “领域驱动设计”(DDD)模式和类似“命令查询职责分离”(CQRS)这样的数据模式在此
yeedomliu
2021/11/19
9700
《云原生:运用容器、函数计算和数据构建下一代应用》
【周一电台】2022年每个开发者必知的云原生概念以及趋势
云原生(Cloud Native),从字面上理解就是云计算和土著的意思——云计算上的原住民。
翊君
2022/03/15
4750
【周一电台】2022年每个开发者必知的云原生概念以及趋势
云计算的未来:云原生架构和自动化运维的崭露头角
随着云计算的快速发展,云原生架构和自动化运维成为了当今IT领域的热门话题。这两者共同构成了云计算的未来,为企业提供了更高效、更灵活和更具竞争力的解决方案。本文将深入探讨云原生架构和自动化运维的概念、原理以及未来趋势,以帮助读者更好地理解云计算的发展方向。
IT_陈寒
2023/12/13
3930
云计算的未来:云原生架构和自动化运维的崭露头角
通过IaC自动化实现第一天的GitOps
GitOps有助于重新定义需要精确、自动化和透明性的环境中管理基础设施和应用部署的方式。
云云众生s
2024/03/28
880
通过IaC自动化实现第一天的GitOps
【云原生丨主题周】云原生为何物?为何重要?
云原生是一种团队、文化和技术组织形式,利用自动化工具和架构来管理软件复杂度和加速软件交付。
博文视点Broadview
2020/06/10
3360
【云原生丨主题周】云原生为何物?为何重要?
现代容器应用程序架构指南
首先需要明确两个概念:上云和云原生。上云指的是将应用程序、数据和业务流程迁移到云计算环境中。而云原生则是一种构建和运行应用程序的方法,它利用云计算的弹性、可扩展性和敏捷性。
行者深蓝
2023/12/04
3650
DevOps 2024:新兴趋势和技术及其对业务的影响
DevOps 是一种软件开发和交付的文化和技术方法,强调协作、自动化和持续集成/持续部署 (CI/CD) 管道。2024 年,DevOps 有望在新兴趋势和尖端技术的推动下经历重大变革。
DevOps云学堂
2024/05/11
3710
DevOps 2024:新兴趋势和技术及其对业务的影响
2020 DevOps工程师面试 33 问
答:尽管DevOps与敏捷方法(这是最流行的SDLC[Software Development Life Cycle]方法之一)有一些相似之处,但两者在软件开发方面都是根本不同的方法。以下是两者之间的各种基本差异:
公众号: 云原生生态圈
2021/11/15
4650
什么是devops
DevOps 这个术语最早出现在 2009 年,由 Andrew Shafer 和 Patrick Debois 提出。DevOps 的出现是对传统 IT 实践的一种回应,特别是针对长期以来开发(Dev)与运维(Ops)之间的隔阂。这种隔阂导致了沟通不畅、协作效率低下等问题,进而影响了产品的上市时间和质量。
linus_lin
2024/12/30
1040
什么是devops
GitOps—用于基础设施自动化的DevOps
GitOps提供了一种自动化和管理基础设施的方法。它通过许多团队已经应用的DevOps最佳实践来做到这一点,例如版本控制、代码评审和CI/CD管道。
陈哥聊测试
2020/12/10
1.5K0
云原生 (Cloud Native) = 微服务 + DevOps + 持续交付 + 容器化 ?
https://dzone.com/articles/cloud-native-seeing-through-the-hype
一个会写诗的程序员
2019/10/28
3.4K0
云原生 (Cloud Native) = 微服务 + DevOps + 持续交付 + 容器化 ?
推荐阅读
相关推荐
打造企业级自动化运维平台系列(一):云原生技术基础入门详解
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档