DevOps工程

对我们来说,DevOps 是一种既能快速前进又能在转弯时保持完整的方式。它是一套基础设施,让我们可以实验、发布变更、在没有恐慌的情况下回滚,并能实时看到系统当下的状况。 我们奉行 GitHub 的方式:Infrastructure as Code,一切都用代码描述,系统的状态保存在 Git 中。这是您数字资产始终保持安全、可移植、可重现的保障。当基础设施以代码形式描述时,您可以迅速回滚到任一时间点、从头重建环境,并确信它会与昨天一样运转。

自动化
可靠的基础

业务价值

可重现性意味着环境可以重新搭建,并且保持一致。私有仓库保存代码和基础设施配置——这是您的备份与变更历史。数字资产的可移植性意味着您始终摆脱对单一供应商或服务器的束缚。快速回滚让您免于代价高昂的错误:如果出了差错,您能在几分钟内回到可用版本。 这对业务尤其重要:您的数字资产始终安全,可以在不同环境之间迁移,出问题时您有能力迅速回滚。基础设施本身成为一项资产。

生产卫生

我们热爱速度。而没有生产卫生的速度最终会让您害怕去动自己的系统。

MLOps 与推理工程

MLOps 是 DevOps 在机器学习领域的自然延续。我们与推理工程师一起,为需要 GPU 和专门环境的实例寻找解决方案。考虑到新模型出现的速度以及快速测试它们的重要性,这一点尤为关键。 良好的基础设施能显著降低实验成本。尤其在 ML 侧:如果您需要自行部署模型,那么应用得越快越好。明天可能出现一个更适合您任务的新模型——您必须做好快速测试它的准备。没有正确的基础设施,每一次实验都代价高昂。有了正确的基础设施,您每天可以尝试数十种方案。

密钥管理与安全

密钥管理是现代 DevOps 必不可少的一环。我们使用 Vault 和云端方案来管理密钥,因为把密码和密钥放在代码或配置里是一种风险。密钥必须是隔离的、有版本的,且只对真正需要它们的人可见。 安全是一种习惯:密钥存放在合适的保险库中,访问策略、最小权限、清晰的边界。每一次发布都要做安全检查,每一次访问都要记录日志,每一次错误都要分析。

云与裸机

我们既在云上工作,也在裸机上工作——因为选择取决于任务。云提供灵活性和可扩展性;裸机提供控制力和可预测性。有时需要组合:关键任务使用自有服务器,实验放在云上。 一个特别有意思的任务是把自己的机器接入 Kubernetes。如果您拥有带 GPU 的自有硬件并希望避免在云上租用,可以把它接入一个统一的 Kubernetes 集群。这样既能实现集中管理,又能使用自有资源。对那些从事 ML 模型并希望控制基础设施、同时把云 GPU 账单控制在合理范围内的人来说很有用。

标准与手册

我们特别重视为程序员编写工具、标准和手册。我们会描述当前的机制、CI/CD、测试、发布流程。因为 DevOps 关乎基础设施,也关乎所有团队的工作舒适度。 我们有标准:如何发布、什么情况下禁止发布、哪些检查是必须的、如何回滚。我们有手册:如何处理密钥、如何配置监控、如何调试问题。这一切让工作对所有参与者来说都是可预测、清晰的。 DevOps 对我们来说,是关于纪律与舒适。纪律意味着一切都被描述、校验与记录。舒适意味着程序员可以专心工作,无需考虑基础设施,运维也停止变成噩梦。

在我们项目中的体现

不需要玄学的流水线。可以被停下的发布。不依赖"某位记得住的人"的基础设施。以及测量的习惯:速度、稳定性、错误的代价、资源的消耗。 我们的核心指标之一是资源消耗。是否合适、能否重新组合、在哪里优化。因为好的基础设施运行得高效。 如果您需要把一个系统带到可以从容演进的状态——我们知道如何制定工作计划,并迈出最初几步,让您之后能够自主前行。

状态

该能力处于活跃状态并在持续演进——因为我们的项目同时要求速度、稳定性与清晰度。

下一个
微型计算机

微型计算机

微型计算机上的现场基础设施:传感器、本地处理、通信和可观测性 - 当现实需要被测量时。