写点什么

Airbnb 的 CI/CD 框架引入了 Salesforce DX、Git 和 Buildkite 来提升软件交付效率

作者:Aditya Kulkarni

  • 2024-02-12
    北京
  • 本文字数:1042 字

    阅读完需:约 3 分钟

Airbnb 的 CI/CD 框架引入了 Salesforce DX、Git 和 Buildkite 来提升软件交付效率

Airbnb 最近介绍了一个针对其 CRM 平台量身定制的 DevOps 框架,集成了 Salesforce DX、Git 和 Buildkite。这个框架能够支持所有利益相关者(从开发人员到低代码用户)参与软件开发和部署过程。使用这个 DevOps 框架后,Airbnb 将部署时间从 90 分钟减少到了 15 分钟。


Airbnb 技术主管经理 Sharda Kumari 在一篇博文中详细阐述了 Airbnb 的 DevOps 之旅。这个 CRM DevOps 生命周期中的关键环境包括开发人员、集成、QA、暂存、预发布、修补程序和生产环境。每一个环境都链接到 Git 版本控制系统中的特定分支,并通过 Buildkite DevOps 管道进行集成。一旦代码通过了开发人员的同行评审,Buildkite 任务就会被激活,利用 Salesforce DX 将代码部署到指定的沙箱中。


该过程首先从集成环境中刷新开发人员实例,然后是特性分支创建、开发、单元测试和质量保证(QA)流程。经过 QA 后,代码将经历集成测试、特性和回归测试、用户验收和性能测试等阶段。对于紧急修复需求将使用单独的修补程序路线。该框架还包括预先安排的部署窗口、针对生产环境的构建验证以及用于减少部署的快速部署和增量部署等技术。


生命周期中针对代码部署建立了预定的发布时间段(部署窗口),并且发布需要得到所有利益相关者的同意。该时间表为最终用户对新特性的发布设定了明确的期望。该架构采用主动策略来解决 CRM 部署时间过长的问题,而这种时间通常会因大规模实现和广泛测试而随之增加。具体的策略包括了提前(部署前 24 小时以上)针对生产环境执行构建验证,从而实现快速部署以实现高效执行。


在此窗口期间,通过 Buildkite 实现 DevOps 自动化有助于快速部署,解决任何构建或测试问题,从而缩短实际部署时间。此外,架构还使用了增量部署策略,仅部署代码库之间的更改,而不是完整的代码库。这是通过在目标组织的自定义设置中存储和引用先前的提交 ID 来实现的,从而允许 Buildkite 仅部署必要的更改。


资料来源:Airbnb 的 CRM DevOps 转型:强大的持续交付框架


DevOps 框架解决了 CRM 平台生态系统中的关键挑战,包括管理多个开发环境(如沙箱或临时组织)、处理不同元数据类型(Apex 类、触发器、Lightning 组件、流程)的复杂性,以及对基于云的 CRM 平台的频繁更新和新功能的持续适应需求。该框架简化了流程,实现更高效的管理和集成。


另一方面,在 2023 年,Airbnb 因参加知识与数据挖掘(KDD)2023 活动、开发类似 Lambda 的数据框架 Riverbed,并转向使用 SwiftUI 而登上了头条新闻。


原文链接

https://www.infoq.com/news/2024/01/airbnb-crm-devops-framework

2024-02-12 08:0012314

评论

发布
暂无评论

flutter系列之:flutter中的Wrap

程序那些事

flutter 程序那些事 6月月更

【愚公系列】2022年06月 Java教学课程 01-Java语言背景介绍

愚公搬代码

6月月更

数字经济加速落地,能为中小企业带来什么?

脑极体

数据科学家是不是特有前途的职业?

袁袁袁袁满

axios(二)

小恺

6月月更

JVM调优简要思想及简单案例-为什么需要JVM调优?

zarmnosaj

6月月更

Java基础:反射机制详解

百思不得小赵

javase 反射机制 6月月更

在线文本过滤小于指定长度工具

入门小站

工具

Fegin的解析

卢卡多多

OpenFegin 6月月更

一文简述:钓鱼攻击知多少

穿过生命散发芬芳

6月月更 钓鱼攻击

为 Serverless Devs 插上 Terraform 的翅膀,解耦代码和基础设施,实现企业级多环境部署(下)

阿里巴巴云原生

阿里云 开源 云原生 Serverless Devs

Java Core 「15」J.U.C Executor 框架

Samson

学习笔记 Java core 6月月更

一张图解码 OpenCloudOS 社区开放日

腾源会

C语言字符串与内存库函数的介绍与模拟实现

未见花闻

6月月更

数据库每日一题---第20天:按日期分组销售产品

知心宝贝

数据库 程序员 前端 后端 6月月更

元素的常用事件

Jason199

js 事件 6月月更

在线JSON转CSharp(C#)Class工具

入门小站

工具

支持在 Kubernetes 运行,添加多种连接器,SeaTunnel 2.1.2 版本正式发布!

Apache SeaTunnel

Apache 大数据 开源 workflow

如何在物联网低代码平台中使用数据字典功能?

AIRIOT

物联网 低代码平台

使用GetX构建更优雅的Flutter页面结构

岛上码农

flutter ios 前端 安卓开发 6月月更

一篇文章带你对Java对象创建过程解密

派大星

JVM

一篇文章学会er图绘制

工程师日月

6月月更

linux之git入门命令

入门小站

Linux

怎样能在小程序中实现视频通话及互动直播功能?

Geek_99967b

小程序 小程序容器 小程序营销

mysql存储引擎之Myisam和Innodb的区别

乌龟哥哥

6月月更

redis 精讲系列介绍八 - 淘汰策略

Nick

Redis 核心技术与实战 6月月更 redis 底层原理 redis 淘汰策略 redis 精讲

什么是元数据

奔向架构师

数据仓库 元数据 6月月更

leetcode 91. Decode Ways 解码方法(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

Android 11适配指南之系统相机拍照、打开相册

yechaoa

android 适配 6月月更 11.0

高效的远程办公经验 | 社区征文

远程办公 6月月更 初夏征文

华为云如何实现实时音视频全球低时延网络架构【上】

坚果

6月月更

Airbnb 的 CI/CD 框架引入了 Salesforce DX、Git 和 Buildkite 来提升软件交付效率_框架_InfoQ精选文章