GitLab

网站可靠性工程师,可靠性/数据库

at GitLab
技术与编程 全职 Anywhere
540天前

详细信息

网站可靠性工程师(SRE)负责确保所有面向用户服务及其他GitLab生产系统平稳运行。SRE是务实的操作员和软件工匠的结合体,他们将健全的工程原则、运营纪律以及成熟的自动化应用到我们的环境和GitLab代码库中。我们专注于系统,无论是网络、Linux内核,还是对扩展、算法或分布式系统的特定兴趣。

数据库可靠性团队的使命是构建、运行并拥有GitLab.com的PostgreSQL数据库引擎的整个生命周期。该团队专注于拥有数据库引擎及其支持服务的可靠性、可扩展性、性能和安全性。团队应该寻求在适当的情况下,基于可靠性::基础服务和云供应商管理的产品之上构建他们的服务,以减少复杂性,提高效率,并更快地交付新功能。

GitLab.com是一个独特的网站,它带来了独特的挑战——它是存在的最大的GitLab实例。事实上,它是互联网上最大的单租户开源SaaS站点之一。我们团队的经验反馈到公司内的其他工程团队,以及运行自托管安装的GitLab客户。

职责

  • 自动化每个操作任务是这个角色的核心要求。例如,软件包更新、跨所有环境的配置更改、创建用于自动配置面向用户服务的工具等。

  • 响应平台紧急情况、警报和来自客户支持的升级。

  • 确保存在系统以最小化手动工作管理软件生命周期(例如操作系统)。

  • 基于现有的SaaS系统,开发一个完全自动化的多环境可观测性栈,并将其扩展到基于使用模式预测容量需求。

  • 计划新服务推出、现有服务的扩展和容量管理,并与用户合作优化他们的资源消耗。

作为SRE,你将:

  • 在SRE团队内负责GitLab.com的数据库可靠性和性能方面,并与产品团队合作提供解决方案。

  • 分析解决方案并为我们的主要PostgreSQL数据库集群及其组件实施最佳实践。

  • 致力于相关数据库指标的可观测性,并确保我们达到数据库目标。

  • 与同行SRE合作,将更改推送到我们的生产环境,并帮助缓解与数据库相关的生产事件。

  • 与团队轮班提供OnCall支持。

  • 向工程团队提供数据库专业知识(例如通过审查数据库迁移、查询和性能优化)。

  • 致力于数据库基础设施的自动化,并提供自助服务工具,帮助工程成功。

  • 首先使用GitLab产品运行GitLab.com,并尽可能改进产品。

  • 计划GitLab数据库基础设施的增长。

  • 设计、构建和维护核心数据库基础设施组件,使GitLab能够扩展以支持数十万并发用户。

  • 支持和调试服务和堆栈层次结构中的数据库生产问题。

  • 确保监控和警报对症状而非停机进行警报。

  • 记录每一个行动,以便你的学习转化为可重复的行动,然后变成自动化。

如果你适合这个角色:

  • 在大型生产环境中有丰富的PostgreSQL运行经验,并扎实理解PostgreSQL的内部结构。

  • 在基础设施自动化和配置管理(Chef、Ansible、Puppet、Terraform等)方面有丰富经验。

  • 扎实理解SQL和PL/pgSQL。

  • 在大型SaaS分布式系统生产环境中有显著的工作经验。

  • 分享我们的价值观,并按照这些价值观工作。

  • 具有出色的书面和口头英语沟通能力,渴望协作和异步沟通。

  • 有记录所有事物的冲动,这样你就不需要重复学习同样的东西,并且渴望快速交付和快速迭代。

  • 具有积极主动、主动出击的态度。当你看到某些东西坏了,你不禁想要修理它。

  • 强大的数据建模和数据结构设计技能。

  • 加分项:作为(前)后端工程师拥有强大的编程技能——最好是Ruby和/或Go。

你可能参与的项目:

  • 审查、分析并实施有关数据库管理(例如备份、性能调整)的解决方案。

  • 使用Terraform、Chef和其他工具构建成熟的自动化(自动设置新副本或测试和监控备份)。

  • 使用GitLab ChatOps为我们的工程师实施自助服务工具。

  • 向其他团队提供数据库和数据库相关应用设计方法、系统资源、应用调整的技术支持。

  • 审查工程团队的数据库相关更改(例如数据库迁移)。

  • 推荐查询和架构更改,以优化数据库查询的性能。

  • 参与生产事件,以缓解GitLab.com上的数据库相关问题。

  • 积极参与基础设施设计和可扩展性考虑,重点关注数据存储方面。

  • 确保我们知道如何采取下一步来扩展数据库。

  • 设计和制定未来数据库需求的规范,包括增强、升级和容量规划;评估替代方案;并提出适当的建议。

高级网站可靠性工程师标准

技术:

  • 2个专业领域有深入的知识,并对所有专业领域有一般性了解。能够辅导初级在所有领域和其他SRE在他们深入知识领域的其他SRE。

  • 为解决GitLab代码库中的问题而贡献小的改进。

执行:

  • 确定可导致大量成本节约或收入的重要项目。

  • 从可靠性、性能和可用性的角度,以数据驱动的方式识别产品架构的变更。

  • 主动提高效率和容量规划,明确要求,减少系统资源使用,使GitLab对所有客户来说更便宜。

  • 确定不具扩展性的系统部分,提供立即的缓解措施,并推动这些事件的长期解决。

  • 确定将团队与可用性和延迟目标对齐的服务级指标(SLIs)。

协作和沟通:

  • 真正了解一个领域,并将该知识传播出去。

  • 积极地进行无指责的根本原因分析(RCA),对事件和中断进行深入调查,以防止事件再次发生。

影响力和成熟度:

  • 通过树立榜样来领导生产SRE和初级生产SRE。

  • 对基础设施的主要部分拥有所有权。

  • 被信任以平息团队内的冲突。

绩效指标

网站可靠性工程师有以下工作族绩效指标:

免责声明

该远程工作信息来源于站外平台,本站仅提供部分信息展示与订阅服务,更多请查看免责声明

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅