微服务与站点可靠性工程

  • Mark Little
  • 张卫滨

2018 年 5 月 16 日

话题:DevOps语言 & 开发架构

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在过去的几年间,我们已经讨论过站点可靠性工程(Site Reliability Engineering,SRE)的角色,尤其这个群体如何从 Google 这种领域的公司得到发展,进而满足金融和医疗等行业公司的期望。最近科技记者Alex Handy撰写了SRE 和微服务架构如何适配的文章:

[...] 尽管 SRE 和微服务在世界范围内的软件公司中并行发展,但是前者实际上让后者的生活更加艰难。

Alex 认为造成这一点的原因是非常清晰的:

[...]SRE 的存亡依托于所要维护和优化的整个系统的全栈视角。这个角色将开发人员的技巧和管理员的技巧结合在了起来,这样所产生的员工能够在事情偏离方向的时候,调试生产环境中的应用。

Alex 接着介绍了 SRE 的一些背景知识以及该功能如何在像 Google 这种规模的公司中运转,他引用了 Google 的一位 SRE 主管 Todd Underwood 的观点,阐述了 Google 如何安排实践和系统,帮助开发团队能够在分布式系统中既能考虑到可靠性和可用性,又能采用像 Paxos 这样的技术方式实现一致性。

Underwood 强调 SRE 工作的另外一个重要方面,也就是可见性。当微服务在不断变化的基于的云的服务器、容器和数据库中运行时,会抛出数以亿计的数据包,不管处理哪种类型的问题,首先找到哪里有问题都是至关重要的。这也就是 SRE 工作的全栈性要发挥作用的地方了。

按照 Google 的一位产品主管 Morgan McLean 的说法,这里的关键在于微服务的监控和跟踪,关于这个话题,过去有人也提到过我们也曾经在其他地方讨论过。在 Alex 的文章中,他提到了 Google 发布的一些新工具,以便于解决这个问题:

[...]Google 最近发布了Stackdriver TraceStackdriver DebuggerStackdriver Profiler。这些工具的名字听起来很像传统企业厂商的老式测试和运维工具,其实这是有原因的:它们所执行的正是传统的故障诊断任务,也就是开发人员和运维人员所熟悉的工作内容,但是它们聚焦于微服务,并且在云端完成它们的任务。

Alex 引用 Morgan McLean 的内容总结了这些工具是如何确保 SRE 团队更好地管理新的基于微服务的架构的,尽管跟踪非常重要,但是 Google 相信他们所提供的工具目前在 profiling 和调试方面是独一无二的,能够为开发人员和 SRE 带来重要的收益。在文章的结尾处,Alex 通过 Google 和其他的行业参考资料进一步介绍了监控、指标(metrics)和可见性,这是非常重要的,因为它们可能会与越来越多的公司息息相关。

我们看到越来越多的开发人员和公司采用微服务,其中很多正在使用,或者将要使用 SRE 团队,了解架构和工具如何演化以保证可靠性、可用性以及一致性是非常有意思的事情,这样的话,开发人员和 SRE 团队才能和谐相处。如果在这方面你有经验要分享,不管是正面的还是负面的,对于整个社区来说,能够倾听这些经验都是非常有用的。

查看英文原文Microservices and Site Reliability Engineering

DevOps语言 & 开发架构