【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

使用 GitOps 在无服务器时代构建现代化 CI/CD 管道

  • 2019-08-11
  • 本文字数:2075 字

    阅读完需:约 7 分钟

使用 GitOps 在无服务器时代构建现代化 CI/CD 管道

近年来,构建和发布软件的方式发生了重大转变。这主要围绕着微服务,将代码分解成小组件,使用基础设施即代码,并使用 Git 作为将所有代码粘合在一起的唯一真相来源。


在本文中,我将讨论现代软件开发的转变和不同步骤,以展示无服务器领域的可能解决方案。此外,我列出了为这个时代而设计的有用的工具。

什么是无服务器?

在深入无服务器开发和工具的奇妙世界之前,我先介绍一下我所说的无服务器。AWS 网站谈到了四个主要好处:


  • 无服务器管理

  • 灵活扩展

  • 按价值付费

  • 自动高可用


对我来说,无服务器是指你不需要自己管理和扩展任何基础设施。


在我的公司Datree.io,我们在AWS Fargate上运行 95%的工作负载,在AWS Lambda上运行 5%的工作负载。我们是一家无服务器公司;我们的 AWS 帐户中没有任何 Amazon EC2 实例。有关更多信息,请参见以下内容:


什么是 GitOps?

Git 是一个免费的开源分布式版本控制系统,它可以快速高效地处理从小型项目到大型项目的所有项目。


CI/CD 顾问Luis Faceira认为,GitOps 是一种工作方式。你可以将其视为一种方法,其中所有内容都始于 Git 也终于 Git。以下是一些关键概念:


  • Git 作为系统真相的单一来源;

  • Git 作为我们操作(创建、修改和销毁)所有环境的单一位置;

  • 所有变更都是可观察、可验证的。

在云出现之前你是如何构建软件的

在前云时代的瀑布式开发中,你曾经有单独的团队分别负责开发、测试、安全、运营、监控等等。


现在,在大多数组织中,都有一个向开发人员完全自治和开发人员拥有整个生产路径的过渡。开发人员是国王或王后


这些团队(Ops、安全、IT 等)过去是验证和控制每个开发人员变更的看门人。现在,它们更像是一个卫星单位,推动政策落实,制定最佳实践和标准。它们不再是生产瓶颈,它们提供了组织范围的平台和赋能解决方案。


一切都是代码

随着向开发人员完全拥有整个管道的过渡,开发人员可以自动化所有内容。我们比以往任何时候都有更多的代码,过去是手工操作的过程现在用代码来描述。


这是一个很好的转变,以下是其中的一些好处:


  • 自动化:通过将所有东西存储为代码,所有东西都可以在瞬间自动化、重用和重建。

  • 不可变:如果出现任何错误,再次从存储的配置创建它。

  • 版本控制:可以应用和恢复变更,并跟踪到做出变更的单个用户。

GitOps:Git 已成为系统真相的单一来源

第二个主要的转变是,现在所有的东西都在一个地方!Git 是存储所有代码和启动所有操作的地方。无论是测试、构建、打包还是发布,现在一切都是通过拉请求触发的。


一切事物的代码化使这一点被放大。


无服务器时代的工具助手

市场上有很多有用的工具,下面是一些为无服务器而设计的工具。


代码

始终将代码存储在源码控制系统中。近年来,越来越多的功能被编码,如 BI、Ops、安全和 AI。对于新晋开发人员来说,某些功能是否应该使用源代码控制有时候并不是很明显。


构建和测试

我见过的最常见的错误是在 GUI 中手动配置构建作业。这对于小型 POC 来说可能还不错,但它是不可扩展的。你应该将你的作业编入 Git 存储库中。这里有一些工具可以帮助你构建和测试:


安全和治理

当以无服务器方式工作时,最终会出现许多 Git 库。代码包的数量可能会很惊人。对统一代码标准的需求依然如故,但是,现在要在你的研发组织中强制执行它要困难得多。以下是一些可能可以帮助你应对挑战的工具:


打包和发布

构建无服务器应用程序是将微服务连接到一个单元中。例如,你可能正在使用Amazon API网关AWS LambdaAmazon DynamoDB。你应该使用一个打包器将配置保存在一个位置,而不是每一个单独配置。这使你可以在多个环境中轻松地对应用程序进行版本控制和复制。这里有几个打包器:


程序包

当使用许多不同的无服务器组件时,你应该创建小的工具包,以便能够跨不同的 Lambda 函数导入。你可以使用特定于语言的存储库,如 npm 或 RubyGems,或者使用更全面的解决方案。这里有几个程序包工件库,允许托管多种编程语言:


监控

在处理无服务器应用程序时,这部分尤其棘手,因为所有内容都被分割成小块。使用支持这种工作模式的监控工具非常重要。下面是一些可以处理无服务器的工具:


总结

无服务器时代带来了许多转变,比如对整个管道进行编码,Git 是唯一的真相来源。这并不意味着我们过去遇到的安全、日志记录等问题都已经消失,你应该继续解决这些问题,并利用工具使你能够专注于你的业务。

关于作者

Shimon Tolts 是 Datree.io 的首席技术官兼联合创始人。他专门研究开发工具和基础设施,并运营了一家 100%无服务器的公司。


原文链接:


https://amazonaws-china.com/cn/blogs/aws/building-a-modern-ci-cd-pipeline-in-the-serverless-era-with-gitops/


2019-08-11 08:002677
用户头像

发布了 680 篇内容, 共 384.2 次阅读, 收获喜欢 1495 次。

关注

评论

发布
暂无评论
发现更多内容

JixiPix PuzziPix Pro for mac(专业拼图软件)v1.0.18永久激活版

mac

苹果mac Windows软件 PuzziPix Pro 图片拼图工具

手把手入门MO | 如何使用SeaTunnel将数据写入MatrixOne

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

IBM SPSS Statistics mac激活破解版下载

iMac小白

加速CI构建,实现高效流水线——CloudBees CI发布工作区缓存功能

龙智—DevSecOps解决方案

ci

透明LED电子大屏幕在商显市场中的应用与创新

Dylan

节能 LED 图像清晰度处理

Wireshark的数据包它来啦!

小魏写代码

Java多线程系列3:Java线程的一生

BigBang!

Java多线程

MatrixOne实战系列回顾 | 导入导出项目场景实践

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

大模型训练全新升级,训练步骤大幅缩短

百度开发者中心

人工智能 深度学习 大模型

O-Star|再相识

MatrixOrigin

云原生数据库 MatrixOrigin MatrixOne 超融合数据库 HTAP数据库

将 Spring 微服务与 BI 工具集成:最佳实践

互联网工科生

spring 微服务 BI 分析工具

百度搜索万亿规模特征计算系统实践

百度Geek说

Python 数据库 百度搜索 企业号11月PK榜

专业raw图像处理工具:DxO PhotoLab 7中文版

彩云

图像处理工具 DxO PhotoLab 7

企业软件定制开发的重点是什么?|app小程序网站建设

Geek_16d138

APP开发 软件定制

Logic Pro X for Mac v10.8.0中文直装版下载

iMac小白

大模型训练的GPU加速混合精度训练方案

百度开发者中心

gpu 大模型

为什么Go是后端开发的未来

这我可不懂

Go 语言

Tipard FixMP4 for Mac 视频修复工具

彩云

视频修复 Tipard FixMP4

科创人·蓝凌董事长杨健伟:夯实“四梁八柱”,让数字化“城中村上建高楼”

科创人

数字化转型 企业家精神

AI,正在「整顿」企业面试

用友BIP

深入探索 perf CPU Profiling 实现原理

swordholder

Linux Performance perf kernel

模块一作业

闻明杨

架构实战营

软件测试/人工智能丨人工智能取代软件测试团队

测试人

人工智能 软件测试

什么是Mock?为什么要使用Mock呢?

我爱娃哈哈😍

Mock Mock 服务 mock设计

使用Unity的游戏开发团队如何选择版本控制工具?20家头部3A游戏开发工作室中有19家选择Perforce Helix Core

龙智—DevSecOps解决方案

版本控制 Helix Core

NLP领域预训练模型的发展方向

百度开发者中心

人工智能 nlp 大模型

如何将Docker的构建时间减少40%

高端章鱼哥

Docker 镜像

报名仅剩一周!课程直播和1V1指导助力文心一言插件开发赛事冲榜

飞桨PaddlePaddle

插件开发 文心一言 开发者插件

Past for mac好用的苹果电脑剪切板工具下载

iMac小白

软件测试/人工智能丨视觉与图像识别在自动化测试领域的应用

测试人

人工智能 软件测试

关联规则挖掘:Apriori算法的深度探讨

不在线第一只蜗牛

Python 大数据 算法

使用 GitOps 在无服务器时代构建现代化 CI/CD 管道_软件工程_Shimon Tolts_InfoQ精选文章