写点什么

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:0015911

评论

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

Flutter Plugin插件开发填坑指南

flutter 经验分享

培训是为了激发学员学习这门课的兴趣

boshi

职业 培训

《程序员数学:使用Python进行3D图形,机器学习和仿真》PDF免费下载

计算机与AI

Python 学习 数学

我是因为这个才选择当程序员的,那么你呢?

Java架构师迁哥

为什么说区块链完全去中心化做不到且没有意义

CECBC

区块链 去中心化

移动端技术方案设计的经验总结

张明云

android 架构 移动应用 架构师 技术方案

roblox 杂记

katichar

Redis 为什么这么快?这才是最完美的回答

Java架构师迁哥

LeetCode题解:45. 跳跃游戏 II,贪心正向查找,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

详解TCP IP网络协议栈底层原理到徒手实现

赖猫

c++ Linux 编程 程序 网络协议栈

如何在高速发展中等一等老人 银行数字化服务显温度

CECBC

银行 养老服务

一文搞懂RESTful API

bigsai

RESTful Rest

架构师训练营第12周作业

邓昀垚

我是怎么教我6岁女儿编程的

勇往直前的胖子

少儿编程

二、关于大型复杂系统

数列科技杨德华

腾讯云区块链总经理李力:产业区块链的四大发展趋势

CECBC

区块链 大数据

深入理解Git的实现原理

程序员小灰

c++ git Linux 项目管理 架构师

架构词典:SLA

lidaobing

架构 SLA

技术博客,从零到数万访问,这两年我都做了什么

android 博客 经验分享

网络入门模拟器:Cisco Packet Tracer

面试被问线程安全怎么保障,我的回答让面试官眼前一亮

996小迁

Java 学习 架构 面试 笔记

架构师训练营第 12 周总结

邓昀垚

程序员有必要读研吗?

Java架构师迁哥

史上最全的开源项目创作指南

开源 经验分享

Java对IPv6的支持详解:支持情况、相关API、演示代码等

JackJiang

Java 网络编程 ipv6 ipv4

话题讨论 | 那些年奇葩的面试经历

三号无名指

话题讨论

default-servlet-handler不生效原因,springmvc静态资源拦截方案比较

叫练

springmvc 静态资源拦截 default-servlet-handler 资源配置不生效

史上最实用的Android切片应用库XAOP使用指南

android 开源 aop 框架

史上最优美的Android原生UI框架XUI使用指南

android UI 框架开发

史上最好用的Android全量版本更新库XUpdate使用指南

android UI 框架开发 xupdate

线上数据被回滚两次我都做了哪些不正确的操作

Gopher指北

MySQL 后端

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