译者 | 李睿
审校 | 重楼
在企业技术的世界里,像Kafka、RabbitMQ、Apache Flink集群、数据仓库和监控平台这样的共享平台是支持健壮基础设施的重要组件,从而实现现代微服务架构。人们将看到共享平台充当微服务之间的中介,从微服务中聚合日志,提供跨域分析和许多其他跨领域功能。
本文将从平台所有者和平台用户的角度探讨共享平台,揭示一些对健康的技术生态系统至关重要的最佳实践和策略。
建立共享平台的基本原理
共享平台在企业环境中的存在既是出于需要,也是出于战略选择。并非每个应用程序都可以或应该依赖于自己的独立平台。以下提出共享平台对现代企业来说是一个经过深思熟虑的决定的原因:
1.专业技能要求:Kafka或Flink等先进平台的操作和维护需要高水平的专业知识。为每个单独的应用程序获取这样的专业技能既不实际,也不经济。共享平台允许一批主题专家(SME)有效地维护和优化这些资源。
2.集中的数据共享和管理:在微服务架构中,不同的应用程序通常需要交换数据。共享平台作为中心枢纽促进了这种数据交换,这比管理孤立平台之间的多个集成点更高效。
3.成本优化:当跨多个平台复制时,许可、基础设施和运营成本的财务影响非常大。共享平台整合了这些成本,使企业能够从规模经济中受益。通过资源共享,企业可以优化投资,降低总体支出。
4.资源利用:专用平台可能导致容量利用不足,当单个应用程序的需求与最大容量不匹配时,服务器和服务可能会空闲。共享平台确保资源得到更均匀、更有效的利用,减少资源浪费,提高整体投资回报率。
5.敏捷性和可扩展性:共享平台提供了一个灵活的基础,可以快速适应不断变化的需求。随着新的应用程序上线或现有应用程序的增长,共享平台可以扩展以适应这些需求,而无需与设置新基础设施相关的交付时间和成本。
6.一致性和合规性:确保遵从行业法规和标准可能是复杂且资源密集的。可以设计共享平台来满足这些普遍需求,为所有应用程序提供一致和兼容的环境。
7.创新与协作:共享平台可以营造创新与协作的环境。它们提供了一个共同的基础平台,不同的团队可以在这里一起工作,分享见解,并开发受益于共享平台功能的解决方案。
8.灾难恢复和业务连续性:集中式共享平台可以更容易地进行灾难恢复管理。它们允许简化备份过程,并在发生系统中断或其他破坏性事件时更快地恢复服务。
9.与现成其他平台的集成:共享平台通常附带一套集成的连接器,用于促进与其他系统的交互,包括监视和警报工具。这种互联性意味着新的应用程序可以插入到丰富的服务生态系统中,而不需要额外的集成工作。例如,连接到已建立的监视系统的便利性显著地简化了对应用程序的监控。
既然已经探讨了共享平台的一些优势,那么还要讨论平台所有者和用户的注意事项。这种理解将确保充分实现共享平台的好处,同时最大限度地减少潜在的瓶颈。每个群体的考虑因素在维护健康、高效和可扩展的共享平台生态系统方面发挥着至关重要的作用。
保护平台:所有者的观点
平台所有者承担着保护其平台免受潜在滥用的关键责任,例如单个应用程序失控或过度供应的副作用。平台所有者也应该确保他们遵循财务运营(FinOps)实践,从成本角度使其系统可维护且可行。
为了维护一个健康、高效和具有成本效益的平台,以下是几种至关重要的实践:
1.实施配额:配额对于防止任何单一应用程序垄断资源至关重要。通过设置使用限制,平台所有者确保在所有消费者中公平分配资源。RabbitMQ最大队列大小和Kafka吞吐量配额是在企业中看到的常见示例。
2.监控指标:持续监控指标有助于在异常模式或潜在问题升级之前识别它们。指标可以洞察平台的健康状况,并指导决策过程。而指标还揭示了需求信息的使用和变化,这对于平台规划实践是至关重要的。
3.保留期策略:保留期决定了数据在被丢弃之前的存储时间。实现数据保留策略对于防止磁盘空间被填满至关重要,因为可能导致性能下降甚至系统故障。
4.发出重要更新:当Flink集群有更新或更改时,例如版本升级或维护计划,通知所有用户是很重要的。这确保他们可以为数据处理任务的任何潜在影响做好准备。例如,版本升级可能会引入新功能或弃用旧功能,用户需要了解这些更改以相应地调整其应用程序。为了实现这一点,平台所有者可以使用各种工具和方法,例如电子邮件提醒、Slack或Microsoft Teams等消息服务,甚至是与用户自己的监控系统集成的自定义Webhook。关键是要确保沟通是及时的、相关的和可操作的,从而保持平台所有者和用户之间的透明度和信任。
5.平台团队:平台团队发挥着关键作用,不仅仅是维持运营;他们是平台完整性和效率的守护者。治理是他们职责的关键部分,包括批准新的发布者或消费者等任务,以确保使用该平台的用户能够为共享生态系统做出积极贡献。
保持最佳的团队规模对于确保敏捷性和响应性至关重要。重要的是,平台团队不能过于臃肿,否则会拖慢进程,也不能过于精简,这会导致倦怠和监督问题。
投资于团队的持续教育也同样重要。消息灵通的团队将保持领先地位,并采用最新的技术和治理最佳实践来简化运营。
简化治理实践对于避免成为应用程序新的瓶颈也是至关重要的。目标是建立清晰、有效的流程,以促进而不是减缓进展。这可能涉及到自动化某些审批过程或为日常请求设置自助服务门户,从而使平台团队能够专注于需要他们专业知识的更复杂的任务。通过优化治理流程,平台团队不仅提高了自身的生产力,还推动了企业创新和成长的整体速度。
1.成本问题:在管理共享平台时,FinOps是平台所有者必须接受的关键原则,其本质是在不影响性能或功能的情况下提高成本效率。这涉及监视、优化和协商的连续循环。以下是平台所有者如何将FinOps实践应用于他们的共享平台:
- 分级存储:实施分级存储解决方案可以显著节省成本。通过将较旧的、访问频率较低的数据存储在较便宜的存储设备上,同时将热门数据保存在性能更高(但更昂贵)的存储设备上,平台所有者可以对成本和性能进行优化。
- 需求驱动的扩展:在低需求时期的扩展计划有助于降低成本。与其相反,在需求激增时进行扩展可以确保性能不受影响。这种弹性的基础设施管理方法对于保持成本和能力之间的平衡至关重要。
- 协商云成本:定期与云计算客户经理讨论,可以发现折扣机会。平台所有者应该通过承诺或定制定价包积极寻求节省成本的措施。
- 保留实例:对于需求一致的可预测工作负载,购买保留实例可以比按需定价节省大量费用。这保证了基本水平的资源可用性,并且可以显著提高成本效益。
- 现场实例:将现场实例用于非关键或灵活的工作负载可以进一步降低成本。这些实例的成本是按需资源的一小部分,但需要能够处理可能的中断。
- 预算和报告:实施透明的预算和报告流程有助于跟踪云支出。这应在可能的情况下实时进行,以便能够立即进行调整,并防止预算超支。
保护应用程序:用户的视角
包括开发人员和用户团队的平台用户,必须将他们的实践与平台的约束和功能结合起来。编写能够处理节流效果的软件、理解资源限制以及与平台所有者保持开放的沟通是关键。这种方法确保用户可以在不破坏整体系统平衡的情况下最大限度地利用共享平台。
当开发人员或架构师与平台团队合作、并与他们的专家合作时,不仅要研究平台的优势,还要研究平台的局限性,这一点至关重要。通过彻底了解平台的服务等级协议(SLA),并评估它们是否符合业务需求,确保应用程序的无缝集成。这种尽职调查是确认平台能够支持企业的运营目标,并推动走向成功的关键。
结论
本文深入探讨了共享平台的战略细节,强调了它们在企业技术中的关键作用。从节约成本到促进创新,共享平台不仅仅是一种选择,也是敏捷和可扩展增长的必要条件。
下一步需要更加积极主动!企业需要积极联系平台团队,建立对话,主动了解所依赖的平台的服务等级协议(SLA)和复杂性。评估它们如何与自己的业务需求相匹配,以及可能需要计划调整的地方。作为应用程序和平台团队的一个统一的团队,有能力将企业的效率和创新推向一个新的成熟水平。
原文标题:Shared Platforms Explained: Navigating the Enterprise Ecosystem,作者:Murat Balkan