试想一下:如果没有云计算,商业将会是什么样子?
云计算和多云战略的出现为全球企业带来了革命性的变化。然而,虽然技术已经发展了这么多年,但"多云"所固有的复杂性仍然是企业面临的主要痛点。选择多云战略的企业,无不希望在提高性能的同时控制云成本支出。是否有什么最佳实践能和帮助我们实现这一目标?
在Akamai看来,随着技术的不断发展和日渐成熟,目前想要实现这个目标,方法相比云技术诞生之初已经有了很大区别。现在,上云企业更需要看重的,应该是云平台的"分布式"特性,以及基于微服务的可移植能力。
分布式云平台,云原生应用的正确解决方案
Akamai委托Forrester Consulting进行的"The Great Cloud Reset"研究发现:借助分布式云架构的优势,可以顺利实现性能与成本之间的平衡。因为分布式云平台可以解决企业(尤其是全球化企业)在很多方面遇到的难题。
- 成本:企业预计分布式云计算将有助于全面节约成本。78%的受访者表示,避免或最小化出站成本是分布式云合作伙伴的一个关键特征。
- 性能:需要提高从核心到边缘的整体网络性能。92%的受访者表示,拥有包含边缘的灵活云架构对于提高性能并为用户提供更好的体验是"重要"或"关键"的。
- 匹配:将正确的工作负载与正确的云进行战略结合是分布式架构的另一个特征。65%的行业受访者表示这有助于优化云支出。此外还有63%的人表示,为云选择合适的工作负载将增加收入。
- 简化:分布式云将帮助企业解决多云战略的复杂性。53%的受访者将复杂性视为其主要担忧,49%的受访者表示,控制与蔓延、数据出站费用和不可预测的定价相关的成本是一项重大挑战。
- 合规:43%的受访者表示,他们需要一个能够满足全球日益突出的数据驻留和主权要求的云提供商。
此外,很多受访企业还表示,分布式云架构还能在其他很多方面为自己带来价值,例如:
- 行业性能指标:当API调用、搜索和结账流程等都存在于云生态系统中时,如何优化这些行业性能指标都是工作优先列表中的重中之重。分布式云以及分布式数据库等服务可在扩展以满足不断增长的客户群和日益复杂的应用程序的需求时帮助企业解决这些挑战。
- 推动创新:分布式云让数据、计算和存储更接近客户,也可以让业务应用程序提供面向未来所需的实时分析能力,企业可以利用分布式云来降低资源成本,同时提供领先于竞争对手的创新。这些创新包括个性化搜索结果、量身定制的产品推荐、社交分享和推荐、实时库存管理、等候室、动态定价功能等。
- 改善用户体验:在整个分布式云平台中分配工作负载还能在客户体验方面获得回报。当企业利用特定云最擅长的功能时,就可以实现工作负载效率的优化,这反过来也会改善用户体验。
对于跨国企业来说,有必要在全球多个国家和地区运行工作负载。借助多个云平台良好分配的工作负载不仅可以提高性能,还可以满足有关数据驻留和主权的日益严格的法规。
Forrester采访过的专业人士几乎一致认为,迁移到分布式云计算平台 是构建和部署云原生应用程序 的正确解决方案。该举措有助于提升竞争优势、改善客户体验并提高利润。
基于微服务的可移植性,让服务变得更高效
云平台的可移植性是指将应用程序和数据轻松迁移或部署到不同云服务提供商或云环境的能力。这种能力对企业来说具有大量重要意义。可移植的云平台在降本增效方面的作用主要是通过下面几方面体现的:
- 提高灵活性和自由度,使企业能够更轻松地在不同云服务商之间进行选择,从而更有效地利用云资源。
- 成本优化,根据性能要求、定价模型以及服务质量选择最具成本效益的云,并根据需求灵活调整。
- 避免供应商锁定,降低供应商锁定风险,从而更灵活地适应市场变化、技术创新以及竞争对手的行动。
- 快速部署和迁移,帮助企业更快地响应市场需求或扩展业务。
- 增强业务的可靠性和弹性,需要时可以快速切换到另一个云平台,从而最大程度减少业务中断。
那么问题来了:如何确保自己要在云中运行的应用程序和工作负载,本身就能灵活适应不同云平台,从而能从一个平台顺利、安全地迁移到其他平台呢?微服务架构!
与传统的单体式应用不同,微服务架构的应用是可扩展,并且是专注于单一职能的。这种架构的应用,会由每个自包含的模块化单元负责处理一个更大规模系统中的一个特定功能,而大型应用程序往往就可以由这种模块化的组件或服务(如容器或无服务器计算)构建而成。
我们可以将微服务看作由不同部门、预算和要求组成的业务。每年,这些要求都会根据公司需求的变化而变。随着时间推移,我们的应用程序也会面对不断变化的要求,其中的某些方面可能会产生更多需求,有些方面则需要我们投入更多关注。此外,应用程序中的不同方面可能还需要进行不同程度的扩展或缩放。微服务可以帮助我们在不影响其他方面的情况下,以独立的方式对应用程序中的某些方面进行缩放或扩展。
微服务应该只负责做一件事,并且做好这件事。此外,通过使用微服务,我们还能在弹性和容错能力方面获得一些固有的好处。微服务架构旨在通过将故障约束到单个服务来防止出现影响整个系统的故障。如果出现特定故障,我们将知道故障位于哪里,并能在不影响其他东西的情况下解决这种故障。
使用微服务的原因
所以为什么要使用微服务?希望借助微服务架构提高应用和工作负载的可移植性,进而利用可移植的云平台降本增效。那么具体来说,这个目标又是如何实现的?Akamai认为,微服务可以帮助企业实现:
- 更快的上市时间:微服务可以并行开发和部署多个组件,从而加速整体开发流程,缩短交付新功能所需的时间。
- 提高可扩展性:微服务可以独立扩展,从而让企业更高效地分配资源,同时更高效地处理不同工作负载或流量模式。
- 增强弹性:微服务去中心化的本质特性降低了系统范围内故障的风险,保证了持续的服务可用性以及更高的系统整体可靠性。
- 灵活性和适应性:微服务可以让企业为不同组件使用不同技术和框架,从而更容易适应不断变化的需求或融入新技术。
- 简化维护和更新:微服务的模块化设计简化了系统的维护和更新,因为每个组件都可以在不影响整体系统的前提下单独升级或替换。
微服务最佳实践
根据对年来的工作经验以及与不同行业客户的交流,Akamai认为在微服务的实施过程中,有很多重要的注意事项,这些事项只要考虑周全,就可以帮助企业减少很多麻烦,更进一步地发挥云平台的各种效益。
简单来说,Akamai认为,在实施微服务架构时候最需要注意的就是保持微服务规模小巧、专注于负责单一业务能力,这一点至关重要。这样我们才能轻松添加额外的功能并避免蔓延。然而,每个微服务的理想规模是多少,这并没有什么明确标准,而是需要根据具体应用及实际需求来决定。
我们还需要针对失败进行相关设计。虽然多个服务和微服务运行过程中,按照设计本身就具备与生俱来的容错能力,但额外的设计可以增加额外的弹性,例如重试机制、断路器以及隔板。想象一下船舶为什么会安装隔板。这些隔板可以保证船舶的结构完整性,而如果船舱漏水,隔板关闭,也可以保证船不会沉没。
微服务应该围绕领域驱动(Domain-driven)的设计原则来设计,这意味着要基于业务能力对服务建模,并使用通用语言来保障服务符合业务需求。领域驱动的设计侧重于围绕对业务的深入理解来打造软件系统,其原则有助于指导设计过程,确保软件与领域保持一致且能为业务提供价值。这些原则共同促进了对业务领域的深入理解,有助于确保开发工作能与业务需求和不断变化的要求紧密契合。
采取以API为先的方法进行设计并实现API网关,借此即可提供中央连接点,从而促进微服务和第三方子系统之间的通信。API网关负责处理大部分路由工作,以及身份验证、认证、速率限制等工作。API的设计模式对于微服务的模块化和可复用能力至关重要。
最后,对于微服务,还有下列这些最佳实践:
- 自动化测试和部署:使用持续集成和持续部署(CI/CD)管道等自动化工具测试和部署微服务,从而降低错误风险,确保以快速、一致的方式部署服务。
- 使用容器:容器提供了一种轻量级、可移植的方式来打包和部署微服务。使用容器有助于简化部署流程,改善应用程序的可扩展性和可移植性。
- 监视和观察:微服务需要不断监视和记录,以确保按照预期运行,并及时发现存在的问题或错误。日志聚合器和应用程序性能监视(APM)工具可以帮助我们做到这一切。通过跟踪,我们还可以进一步了解分布式系统中的数据流。这三大能力有助于针对性能获得端到端的可见性。
- 保护服务:应通过身份验证、认证授权、加密等最佳实践措施保护微服务的安全,当然,容器本身的安全性也不容忽略!为减小整体攻击面,我们应该通过强制执行的策略来定义微服务能与其他服务通信的内容。安全性应该成为所有设计工作的一部分,并且需要在开发过程的每个阶段进行彻底的检查,这样才能获得更安全的应用程序,并妥善保护敏感数据。
Akamai云平台,为你的分布式和可移植目标提供支持
作为一家全球领先的云服务提供商,分布式云计算平台已成为Akamai的核心业务之一。目前,该平台已经凭借26个核心云数据中心和4100+个边缘计算节点,深深扎根于全球130+个国家和地区。
利用全球分布的基础设施,Akamai通过高性能、可扩展、易管理的云服务器、存储和网络服务,帮助企业降低成本、提高效率,实现更好的业务结果。同时,我们还面向数字化营销、SaaS、游戏、电商等行业提供了定制化解决方案,帮助企业顺利上云,快速扩展,最终推动业务成功走向全球!