公司的内部IT基础设施有时会成为一个谜:非常大的云系统,越来越多的微服务,还有家庭办公带来的几十个需要保护的新接口。所有这些都表明,SaaS提供商需要重新思考如何为客户提供最可靠、最安全的云基础设施。
因此,公司必须为自己制定一个新的标准,以便能够满足客户的期望,因为只有可靠的系统才能成功地提供服务。这也意味着开发人员必须做更多的工作。
作为Atlassian的平台工程主管,笔者带领工程师团队从头开始重新构建云基础设施。以下是构建经得起未来考验的云平台以确保可扩展性和可靠性的三个关键因素。
一、依赖微服务
任何SaaS云平台的核心都是复杂性。复杂性可以通过两种方式进行管理:集中式或分布式。
集中式系统是一个整体,所有的复杂性都存在于一个系统中,这个系统为外部世界提供了一个单一的接口。分布式系统通常是使用微服务构建的,在微服务中,复杂性被分解为各个服务,而这些服务又相互通信。
乍一看,基于微服务的系统似乎更脆弱,因为有更多的接口,因此出错的机会也更多。然而,情况恰恰相反:通过为每个微服务使用服务级别目标(SLO)并向相关团队发出额外警报,系统中就会创建一个“深度防御”。一些公司已经使用SLO,但只在系统的外层使用。Atlassian就依靠这种深度防御,使用了1400多种微服务。这些带有与警报相连的SLO的微服务是可靠的大规模系统的关键。
二、尽可能使用自动化
如果有百分之五的问题服务停止工作,所有的可靠性都将消失。然而,在所有可能的地方实现自动化可以确保可靠性接近100%。一个单独的工具监控所有现有微服务,将警报链接到单个SLO中的异常,并将它们转发给相应的团队来接管。该工具还应与事件管理系统相结合,以便直接报告任何违反协议的情况,并可立即修复。此外,微服务系统可以有效地扩展,这最终也为高要求的工作打开了更多的工程资源。
三、引入错误预算
为了确保服务的可靠性能够得到适当的评估,应该引入内部“错误预算”。这个概念已经被现代软件公司使用了两到三年。
错误预算的一个巨大好处是它给团队提供了操作的空间。只要服务在错误预算内,团队就可以照常工作。只有超过错误预算时,团队才应该改变应急策略。
例如,授权团队被赋予的任务是,服务必须在99.99%的时间内在1秒内做出响应。没有达到这个数字的分钟数就是错误预算。假设一年中52分钟是错误预算。如果出现问题,团队两分钟做出反应,这在预算范围内,不需要采取进一步行动。
以前在Atlassian所有的错误都是一样处理的,使用错误预算和SLO后就不同了——错误被评估,且是可伸缩的。在Atlassian,默认情况下,所有服务都依此分类。
结论:可靠性是成功提供服务的基础
没有顾客就没有服务,没有可靠的服务就没有顾客。但要建立这样的服务,大多数公司都不可避免地要修改内部服务结构。随着切换到微服务,使用一个中心平台进行管理和错误预算,就奠定了为客户提供可靠的和可扩展的服务的理想基础。
原文链接:
https://thenewstack.io/3-key-factors-for-future-proofing-saas-cloud-platforms/