AWS CodeCatalyst 走马观花
作者|yaohui-wyh
原文链接|https://wyh.life/article/2022/12/05/aws-codecatalyst
CodeCatalyst(https://codecatalyst.aws/explore)在 AWS Re:Invent 2022 上发布,看了 Keynote 的短暂介绍及专题视频后,实际体验了一把,简单分享下感受。
Catalyst - 催化剂
从产品定位上看,AWS CodeCatalyst(又)是个一站式 DevOps 平台(“unified development services that eliminates the need to configure, operate, integrate, or switch between disjointed tools…”),一站式也体现在云成色十足的 Turnkey 解决方案,即从研发环境到服务都由 AWS 托管并提供可用性及数据安全保障。
从研发活动阶段的划分来看,CodeCatalyst 主要面向产研协同的前半段,即需求 → 代码 → 部署(“Spark a faster planning, development, and delivery lifecycle”);此外 AWS 的产品矩阵下已有很多细分的开发者工具,CodeCatalyst 与之也不是简单替代或集成关系。
Project Blueprint:类似 Java 开发者熟悉的 Spring Initializer(https://start.spring.io/)工程脚手架向导,Blueprint 除了生成代码、还生成各种配置(如 workflow 等),并会根据应用的技术栈自动部署 AWS 资源。对使用 AWS 全家桶的团队来讲,Blueprint 对快速起步一个项目非常方便。 Managed CI/CD Pipelines:YAML 编辑器或可视化编辑器来配置 Pipeline,并支持使用 GitHub Actions 组件。 Dev Environment:目前火热的云端研发能力,支持通过 Devfile(https://wyh.life/article/2019/04/04/eclipse-che)实现环境的代码化声明,支持使用 VS Code 及 JetBrains Gateway 进行远程研发。
产品体验
首先需要注册一个 AWS Builder ID(https://docs.aws.amazon.com/general/latest/gr/aws_builder_id.html)账号、并绑定 AWS 账号以授权资源访问及付费结算。CodeCatalyst 有一篇非常精炼的 FAQ(https://codecatalyst.aws/explore/faq),不便注册 AWS 账户的小伙伴可通过 FAQ 一窥其产品能力。FAQ 除了用户视角的核心功能阐述外,也着重笔墨介绍了数据安全、权限体系、计费策略等客户视角的关注点。产品细节也可移步官方帮助文档(https://docs.aws.amazon.com/codecatalyst/index.html)进一步了解。
使用 CodeCatalyst 需先创建一个 Space、作为 CodeCatalyst 的顶级模型,每个 Space 要绑定 AWS 账户 ID(唯一绑定,不支持同一个 AWS 账户多绑 Space)才能完成创建。CodeCatalyst 产品架构上同近年协同类 SaaS 的模型分层上非常接近,Space → Project 两层结构;Space 作为协同的主体模型、负责成员管理、插件安装、计费等。Space 下进一步创建 Project(Space 同 Project 是 1:N 关系),作为研发活动的容器(包含 Issue、Code、PullRequest、Workflow 等)、Project 概念也符合开发者心智。
参考 你好,生产力(番外篇1) - Linear, be Pragmatic, but Gracefully 对这类生产力工具在模型上的解构。
Project 的创建如前所述,可基于 Blueprint 模板化创建。官方提供了 14 个经典模板,当然技术栈跟 AWS 体系是强绑的,不过也支持一定的参数化(如 WebFE 选择框架是 Vue 还是 React、函数运行时选 Java 还是 TS 等等),然后右侧自动生成代码,很有 CodeLab 的感觉。如创建一个 Serverless 应用(SAM)、一路点击下来就能完成部署 Lambda 函数。
同时 CodeCatalyst 也支持跟 Jira 的集成,类似代码托管这里除了从零创建一个仓库、也可关联一个 GitHub 项目一样;不过这是 CodeCatalyst 目前仅有的两个插件,接下来就看三方应用的生态能否建立起来了。
JetBrains Remote Dev 故事:https://wyh.life/article/2021/12/02/jetbrains-remote-dev
Gitpod workspace with JetBrains Gateway:https://wyh.life/article/2022/05/24/gitpod-with-jetbrains-gateway1
Gitpod Self-hosted installation on Tencent Cloud:https://wyh.life/article/2022/06/10/gitpod-self-host
How JetBrains Gateway works - beyond the black box:https://wyh.life/article/2022/11/13/how-jetbrains-gateway-works
Builder
看完 AWS Re:Invent,一个感受就是软件行业越来越像传统生产活动,尤其生产要素(PC → Cloud Infra)、劳动工具(Local DevTools → PaaS/SaaS)都从开发者手中转移,生产经验和劳动技能甚至开始被 AI(GitHub Copilot / AWS CodeWhisperer)补替。一个广为流传又引起争议的表述是 “Software is assembled, not written”,或许有一天开发者的称呼慢慢演变成了 Builder,且开发软件会成为公民级的技能。