概览
Go 助力企业自动化和规模化
开发运营 (DevOps) 团队协助工程组织自动化任务并改进其持续集成和持续交付与部署 (CI/CD) 流程。DevOps 可以打破开发孤岛,实施工具和自动化以增强软件开发、部署和支持。
独立 DevOps 顾问 Silvia Fressard 写道,站点可靠性工程 (SRE) 诞生于 Google,旨在使公司的“大规模站点更加可靠、高效和可扩展”。她写道:“他们开发的实践非常符合 Google 的需求,以至于亚马逊和 Netflix 等其他大型科技公司也采用了它们。”SRE 需要开发和运营技能的结合,并且“赋能软件开发人员负责其应用程序在生产中的日常持续运营。”
Go 通过其快速的构建时间、简洁的语法以及对安全性和可靠性的支持,服务于 DevOps 和 SRE 这两个领域。Go 的并发和网络特性也使其成为管理云部署工具的理想选择——在开发基础设施随着时间增长时,它能够轻松支持自动化,同时实现速度和代码可维护性的扩展。
DevOps/SRE 团队编写的软件范围从小型脚本到命令行接口 (CLI),再到复杂的自动化和服务,Go 的特性集对每种情况都有益。
主要优点
使用 Go 强大的标准库和静态类型轻松构建小型脚本
Go 的构建和启动时间很快。Go 广泛的标准库——包括用于 HTTP、文件 I/O、时间、正则表达式、exec 以及 JSON/CSV 格式等常见需求的包——让 DevOps/SREs 可以直接进入他们的业务逻辑。此外,Go 的静态类型系统和显式错误处理使得即使是小型脚本也更加健壮。
使用 Go 快速的构建时间快速部署 CLI
每个站点可靠性工程师都曾编写过“一次性使用”的脚本,这些脚本后来变成了每天被数十名其他工程师使用的 CLI。小型部署自动化脚本也会变成发布管理服务。有了 Go,当软件范围不可避免地扩大时,DevOps/SREs 就能很好地取得成功。从 Go 开始,当这种情况发生时,你就能处于一个很好的成功位置。
使用 Go 的低内存占用和文档生成器扩展和维护大型应用程序
Go 的垃圾收集器意味着 DevOps/SRE 团队不必担心内存管理。Go 的自动文档生成器 (godoc) 使代码实现自我文档化,从而降低了维护开销,并从一开始就建立了最佳实践。
特色用户
客户 | 简介 | 使用 Go 的项目 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
开始使用
关于 DevOps 和 SRE 的 Go 书籍
监控和追踪
-
open-telemetry/opentelemetry-go
用于监控和分布式追踪的与供应商无关的 API 和仪器
-
jaegertracing/jaeger-client-go
Uber 开发的开源分布式追踪系统格式
-
grafana/grafana
一个用于监控和可观察性的开源平台
-
istio/istio
一个开源服务网格和可集成平台
CLI 库
-
spf13/cobra
一个用于创建强大的现代 CLI 应用程序的库,以及一个用于在 Go 中生成应用程序和 CLI 应用程序的程序
-
spf13/viper
Go 应用程序的完整配置解决方案,旨在在应用程序内部处理配置需求和格式
-
urfave/cli
一个用于创建和组织命令行 Go 应用程序的极简框架