开发运营与站点可靠性工程

概览

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 的项目
Docker Docker Docker Docker 是一款用 Go 编写的软件即服务 (SaaS) 产品,DevOps/SRE 团队利用它来“在大规模下推动安全的自动化和部署”,支持他们的 CI/CD 工作。
Drone Drone Drone Drone 是一个基于容器技术构建的持续交付系统,用 Go 编写,它使用一个简单的 YAML 配置文件(docker-compose 的超集)来定义和执行 Docker 容器内的管道。
etcd etcd etcd etcd 是一个强一致性、分布式键值存储,提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据,并且它使用 Go 编写。

开始使用

关于 DevOps 和 SRE 的 Go 书籍

查看更多
  • spf13/cobra

    一个用于创建强大的现代 CLI 应用程序的库,以及一个用于在 Go 中生成应用程序和 CLI 应用程序的程序

  • spf13/viper

    Go 应用程序的完整配置解决方案,旨在在应用程序内部处理配置需求和格式

  • urfave/cli

    一个用于创建和组织命令行 Go 应用程序的极简框架

查看更多
查看更多