论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
容器及微服务
›
容器及微服务
›
初探 Backstage:快速上手指南
初探 Backstage:快速上手指南
汕尾海湾
金牌会员
|
2024-4-20 09:48:59
|
显示全部楼层
|
阅读模式
楼主
主题
872
|
帖子
872
|
积分
2616
坦白说,虽然我之前阅读过相关文档,但实际上从未亲自尝试运行
Backstage
。我一直有种感觉,Backstage 不过是一个开发者门户而非开发者平台。上周在
分享我对平台工程的理解
后,朋友圈中有人提议我写一篇关于 Backstage 入门的文章。这激起了我的好奇心,我决定深入探究一下 Backstage 究竟是什么。
Backstage 简介
Backstage 是一个用于构建开发人员门户的开放平台,统一了所有基础设施工具、服务和文档,以创建端到端的简化开发环境,由
Spotify 开源并捐赠给 CNCF
。Backstage 提供了开箱即用的几个核心功能:
软件目录
软件目录
(Software Catalog)是一个集中式系统,用于跟踪生态系统中所有软件(服务、网站、库、数据管道等)的所有权和元数据。开发人员提供软件的实体信息,Backstage 根据实体的信息与已有实体建立关联,并生成最终版本的软件实体保存在目录中。
从 Backstage 仓库的软件目录示例中可以找到
多种类型的实体定义
。
软件模板
软件模板
(Software Template)是一个可以帮助开发在 Backstage 中创建组件的工具。默认情况下,它能够加载代码骨架、带有变量中的模板,然后将模板发布到某些位置,例如 GitHub 或 GitLab。
技术文档
技术文档
(TechDocs) 是 Spotify 自行开发的直接内置于 Backstage 中的类文档代码解决方案。开发人员在与代码一起存在的 Markdown 文件中编写文档 - 只需很少的配置即可在 Backstage 中获得一个漂亮的文档站点。
插件支持
插件支持
(Plugins)Backstage 本身是一个由一组插件组成的单页面应用程序,通过插件平台开发人员可以将几乎任何类型的基础设施或软件开发工具作为 Backstage 中的功能公开。
我觉得插件是 Backstage 的最大亮点,通过
插件生态系统
极大增强的可定制性,目前 Backstage 有 5 个核心插件以及近 200 个第三方插件。
要运行 Backstage 可以直接在本地运行,也可以进行容器化部署。
本地运行
为了在本地运行 Backstage,需要 NodeJS 18、yarn 1.22 和 npx 环境。以下是启动 Backstage 的步骤:
创建 Backstage App
执行下面的命令,并根据提示输入应用名创建 Backstage 应用。也可以使用
我创建的
。
npx @backstage/create-app@latest
复制代码
默认情况下,本地运行使用 better-sqlite3 来作为软件目录的存储。
启动之前需要执行下面的命令
:
npm rebuild better-sqlite3
复制代码
启动 Backstage
之后就可以执行 yarn dev 启动 Backstage,在浏览器中打开 http://localhost:3000 就能访问 Backstage 了。
当然 Backstage 也支持数据库进行持久化,比如 PostgreSQL。可以在 app-config.yaml 中,将数据库配置为下面:
backend:
database:
# client: better-sqlite3
# connection: ':memory:'
client: pg
connection:
host: ${POSTGRES_SERVICE_HOST}
port: ${POSTGRES_SERVICE_PORT}
user: ${POSTGRES_USER}
password: ${POSTGRES_PASSWORD}
复制代码
修改配置后,添加环境变量并重新执行命令。
export POSTGRES_SERVICE_HOST=127.0.0.1
export POSTGRES_SERVICE_PORT=5432
export POSTGRES_USER= backstage
export POSTGRES_PASSWORD=backstage
yarn dev
复制代码
添加软件实体
我在已有的一个 Java 项目中,添加了
catalog-info.yaml
并添加了软件实体信息。
在软件目录的页面上依次点击 CREATE 和 REGISTER EXISTING COMPONENT,在表单中填入上面的 catalog-info.yaml 的地址 https://github.com/addozhang/tekton-demo/blob/main/catalog-info.yaml,然后点击 ANALYZE 和 IMPORT。
此时就可以看到导入的实体信息以及根据信息创建的组件关系。
除了展示软件的信息,我们希望对项目进行构建。我提前为其添加了一个
GitHub 工作流
,接下来看看如何在 Backstage 上进行构建。
配置 CI/CD
此时如果打开
CI/CD
卡片,可以弹窗要求对 Backstage 进行授权允许其访问 GitHub 仓库。由于配置认证提供这,会看到如下错误。
在
GitHub 开发者设置
中填入信息创建一个应用:
应用程序名称:Backstage(或者其他名字)
主页网址:http://localhost:3000
授权回调 URL:http://localhost:7007/api/auth/github/handler/frame
创建成功后,可以获取 CLIENT_ID 和 CLIENT_SECRET。
修改 Backstage 的配置文件 app-config.yaml,添加配置:
auth:
environment: development
providers:
github:
development:
clientId: ${AUTH_GITHUB_CLIENT_ID}
clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
复制代码
其中
export POSTGRES_SERVICE_HOST=127.0.0.1
export POSTGRES_SERVICE_PORT=5432
export POSTGRES_USER= backstage
export POSTGRES_PASSWORD=backstage
export AUTH_GITHUB_CLIENT_ID=e1c1fc80ec2014c91543
export AUTH_GITHUB_CLIENT_SECRET=0641e5e5af60c485a03f19f8bf63218d06ab7876
yarn dev
复制代码
Kubernetes 上运行
首先要有个 K8s 集群。在 Kubernetes 上我们这次使用 PostgreSQL 作为持久化存储。
kubectl create namespace backstage
复制代码
部署 PostgreSQL
创建 Secret 用于配置 PostgreSQL 的认证信息。
[code]kubectl apply -n backstage -f -
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
汕尾海湾
金牌会员
这个人很懒什么都没写!
楼主热帖
RabbitMQ 进阶 -- 阿里云服务器部署Rab ...
一文了解袋鼠云在实时数据湖上的探索与 ...
redis实现主从复制
Spark快速上手(3)Spark核心编程-RDD转 ...
Vue 全套教程(二),入门 Vue 必知必 ...
在Ubuntu系统上安装StoneDB数据库 ...
5分钟安装Kubernetes+带你轻松安装isti ...
基于FPGA的一维卷积神经网络CNN的实现 ...
Kafka生产者
专业的C头文件设计和重构指南 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表