乐趣区

关于vmware:TAP-系列文章4-基于-Backstage-的-TAP-开发者门户

基于 Backstage 的开发者门户

随着云原生的理念和技术逐步深入人心,很多企业都在思考和实际如何落地,实实在在地达成云原生所承诺的指标:使工程师可能轻松地对系统作出频繁和可预测的重大变更。

越来越多的企业意识到,以 Kubernetes 为代表的云原生技术的确能够作为构建企业本人的外部平台的根底底座,并且大大赋能运维团队,但同时也意识到 Kubernetes 对开发人员而言复杂度还是太高了,有平缓的学习曲线。
能找到会用 Kubernetes 的开发人员可能不难,但能找到精通的人恐怕就不容易了。

那当初的开发者体验到底如何呢?构想一个新退出的开发人员,他常常会问:

  • 咱们的技术标准和架构标准是什么?
  • 能够用哪些开发语言、框架、开源软件?什么版本?咱们应用什么编码标准和代码格调?
  • 到哪儿能找到我的项目文档?还有架构图、拓扑图?
  • 有什么微服务 API 能够调用?
  • 有没有现成的我的项目模版能够重用?
  • 代码提交到哪儿?多长时间提交一次?测试覆盖率须要达到多少?
  • 怎么构建镜像?
  • 怎么触发流水线执行部署利用?
  • 到哪儿查看利用的遥测信息如运行日志、指标、分布式跟踪信息?
  • ……

运气好的话,上述问题都能找到对应的人给出对应的答案。之后呢?他们还须要申请多个零碎的账号,别离关上多个工具的界面(如 Wiki 查看文档信息,Jira 查看用户故事或缺点,Jenkins 查看流水线执行状态,Kubernetes 查看利用负载运行状况等), 相熟各自的操作,不断的切换和 copy & paste,人工串联起整个工作流程,费时费力,还容易出错。

麦肯锡公开的一份钻研报告 1 指出:开发者效率高的公司比开发者效率低的公司的支出增长速度快 4 - 5 倍。它们的营业利润率也更高,创新能力更是高 55 倍!处于前四分位的公司的总股东回报率也高 60%,营业利润率高 20%。由此可见,开发者效率是企业塑造外围竞争力的关键因素之一。


那如何弥合这些开发体验上的差距?

咱们来看 Gartner 对于开发者体验的报告 2,其中举荐的要害实际包含:

  • 建设外部开发者门户,理顺软件开发流程,反对重用、分享和合作,以晋升开发体验和效力
  • 通过开发者门户提供内置“平安护栏(Guardrail)”的自助服务,在疾速麻利交付迭代翻新的同时,兼顾治理标准的要求
  • 把开发者门户作为产品,踊跃听取开发者的反馈,继续演进和翻新,适应一直变动的需要

这份报告还大胆预测,到 2025 年 75% 的企业平台团队都将提供自助服务的开发者门户。现实的开发者门户提供一站式的服务,涵盖 Day 0 发现与构建、Day 1 集成与部署、Day 2 运维和改善三大部分:

这份报告把 Backstage 作为开发者门户的典型,而与这份报告不约而同的是,在 VMWare 新推出的现代化利用平台 Tanzu Application Platform (TAP)中就蕴含了开发者门户 TAP GUI,正是基于 Backstage 进行构建和扩大的。VMWare 也是 Backstage 社区的沉闷的贡献者,提供企业级的商业反对。


Backstage 简介

Backstage 起源于音乐流媒体巨头 Spotify,它的 Vision 正是”Kubernetes for Developer Experience”.

Backstage 大抵的倒退工夫线如下:

  • 2016 年发动的外部我的项目,用于构建 Spotify 外部开发者门户,Spotify 的开发人员的上手工夫比以前缩小了 55%,在外部失去宽泛应用
  • 2020 年 3 月的“黑客周”,正式开源
  • 2020 年 9 月奉献给 CNCF 进入沙箱阶段
  • 2022 年 3 月从沙箱进入正式孵化阶段
  • 2022 年 3 月 17 日正式 GA,公布了 1.0 版本。

目前有 100 多个出名公司与机构公开采纳,包含 Netflix,Expedia,Splunk, 美国航空、VMWare 等。

Backstage 提供了对立的 UI 体验和可扩大的外围框架。在此基础上次要包含:

  • Software Catalog: 软件目录,对立治理软件系统的各个组件
  • Software Templates: 软件模版,疾速创立我的项目和脚手架(Scaffolding),确保合乎技术标准和标准
  • TechDocs: 技术文档,对立公布,查找和应用技术文档(Markdown 格局)
  • Kubernetes: 运行在 Kubernetes 上的资源如 Deployment, Pod 等的可见性
  • Search: 搜寻软件目录和技术文档,基于 Lunr、ElasticSearch 或 Postgres 等

Backstage 的零碎模型

Backstage 的 Software Catalog 定义了一套形容软件系统的模型

次要类型包含:

  • Domain: 某个业务畛域,如电商
  • System:组成 Domain 的各个利用零碎,如商品目录、购物车、订单等零碎
  • Component:零碎中的组件,如订单前台页面 SPA,订单微服务组成了订单零碎
  • Resource:零碎中的资源,如订单数据库、订单执行的消息中间件等
  • API:组件既能够公布 API(合乎 OpenAPI、AsyncAPI、GraphSQL 等)供应用方调用,能够应用其它组件提供的 API,如订单微服务组件公布订单 API 供前台页面调用

每个我的项目须要提供形容本人的元数据(catalog-info.yaml),与源代码一起保留在版本控制系统,如 Git 外面。元数据次要包含

  • 所属的品种(domain/system/component/resource 等)
  • 名字、形容
  • 标签、注解
  • 类型(service/website/library)
  • 所属的 system/component
  • 负责的团队(group/user)
  • 服务的生命周期(production/experimental/deprecated)
  • 依赖项(component/resource)
  • 提供的 API、应用的 API 等

残缺的配置项参见:https://backstage.io/docs/fea…


Backstage 的生态系统

Backstage 能够无缝集成支流的源代码管理系统如 Github, GitLab,AWS S3 等,并反对应用第三方认证包含 Github, GitLab, Okta, Auth0, Atlassian 等。

Backstage 开源社区很沉闷,生态系统 (https://backstage.io/plugins) 中有大概 60 个现成的插件,笼罩软件开发生命周期,能够大抵分类为如下:

  • 麻利治理:Jira
  • 源代码治理:Github Pull Requests, Github Insights
  • 发现:API Docs, Harbor, Home, Tech Radar, TODO, Cost Insights
  • CI/CD:Argo CD, Azure Pipelines, Circle CI,Github Actions,Gitlab, Jenkins, Travis CI
  • 监控:Datadog,Grafana,Kafka,New Relic,PagerDuty,Prometheus
  • 平安:Snyk,Security Insights
  • Infrastructure: AWS CloudFormation, AWS Lambda

能够看到,插件曾经初步齐备,并且还在继续减少和丰盛中, 置信大部分企业典型的需要都能够失去满足。即便目前还未齐全满足,企业也能够而且应该开发本人的插件,并奉献回社区,这样的社区生态才会越来越好!


TAP 的扩大

TAP 除了蕴含 Backstage 外围组件外,还基于 Backstage 的灵便的插件架构,额定开发了如下组件:

  • Workload Visibility: 利用部署后的动静视图,包含资源树上的各层对象如 Knative Service, Kubernetes Deployment, ReplicaSet, Pods 等的详细信息,通过 Knative Route 能够一键拜访利用
  • App Live View: 基于 Spring Boot 利用的 Actuator 机制,图形化的展现利用的衰弱状态,以及 CPU/Memory 的实时监控,最近的 HTTP 申请的详情,动静调整日志级别等
  • App Accelerator: 当时定义好的我的项目模版,凋谢给开发团队选用,主动生成我的项目的整体目录构造及根本配置文件,满足企业技术标准和架构标准,不便项目组疾速上手
  • Supply Chain Visibility: 图形化展现供应链的执行门路及状态,可进一步查看每个步骤的执行细节

总结与瞻望

构建开发者门户是一个继续的工作,不是一个一次性的交钥匙工程,不是说装置好了 Backstage 和 TAP 之后就万事俱备了。在这个根底上,还须要适应企业特定的需要和集成现有的工具,一直的改善现有的开发体验。

同时,TAP 也是一个比拟新的产品,还在继续的迭代和倒退中。在近期的路线图上,TAP 开发者门户正在开发和集成的还有:

  • API Portal: 合乎 OpenAPI 规范的服务 API 都能够公布到 API 门户,不便服务的发现和重用,还能够调用 API 查看理论的申请和后果
  • Learning Center: 学习核心提供教程和入手试验环境,让开发人员尽快上手!
  • 供应链执行过程的更多信息:如构建、扫描后果等
  • ……

以上初步介绍了 TAP 所提供的开发者门户以及 Backstage 的根本状况,如果您对 TAP 和其中的组件感兴趣,咱们会在后续的系列文章中进一步介绍,敬请关注与期待!如果您有任何反馈,也请分割咱们!

参考
1: Mckinsey, Developer Velocity: How software excellence fuels business performance: https://www.mckinsey.com/indu…
2: Gartner,Innovation Insight for Internal Developer Portals https://tanzu.vmware.com/cont…


作者:罗治年

罗治年是 VMWare 大中华区利用现代化部门的资深云原生利用架构师,有近 20 年的软件研发和架构设计教训,曾先后就任于埃森哲、毕博治理征询、迪士尼、Pivotal 等公司,长期从事企业 IT 布局,企业级零碎架构设计,及零碎研发和施行治理等工作。近期次要专一于采纳麻利开发方法实现微服务云原生利用的设计和开发,对传统利用实现现代化并实现云上迁徙领有丰盛的实战经验,并取得诸多技术认证,包含:Spring Professional, Kubernetes 管理员 (CKA)、AWS Professional、DevOps Professional 和 Cloud Foundry 专家等。

起源|公众号:VMwareTanzu 云原生

退出移动版