分布式+可移植,上云后降本增效的关键

试想一下:如果没有云计算,商业将会是什么样子?


云计算和多云战略的出现为全球企业带来了革命性的变化。然而,虽然技术已经发展了这么多年,但“多云”所固有的复杂性仍然是企业面临的主要痛点。选择多云战略的企业,无不希望在提高性能的同时控制云成本支出。是否有什么最佳实践能和帮助我们实现这一目标?

在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、游戏、电商等行业提供了定制化解决方案,帮助企业顺利上云,快速扩展,最终推动业务成功走向全球!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【尚庭公寓SpringBoot + Vue 项目实战】用户管理(十五)

【尚庭公寓SpringBoot Vue 项目实战】用户管理(十五) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】用户管理(十五)1、业务介绍2、接口实现2.1、根据条件分页查询用户列表2.2、根据ID更新用户状态 1、业务介绍 用户管理共包含两…

辐射传输方程和图形学渲染方程的区别

文章目录 概述辐射传输方程图形学渲染方程主要区别小结 概述 因为最近在看NeRFs相关的论文,所以接触到一些图形学内容, 在一篇介绍Radiance Filed 文章中,看到了关于图形渲染方程的内容,但搜索下来,文中给出的方程形式和其他地方的似乎不一致…

关于生成式人工智能的发展

近年来,人工智能的发展引起了广泛关注,尤其是在深度学习领域,以深度神经网络为代表的人工智能技术已经取得了重大突破。然而,深度神经网络也有其局限性。深度学习技术在处理一些复杂问题时表现良好,但在解决更广泛的任…

PS系统教学20

油漆桶工具 作用:上色工具的一种 上一些纯色、图案 纯色 新建图层填充区域的源设置为前景色设置前景色为想要的颜色左键单机填充(altdelete)如果要添加背景色(Ctrldelete)也可以与选区工具结合使用 可以与快速选择…

大模型日报2024-06-17

大模型日报 2024-06-17 大模型资讯 大模型产品 大模型论文 VideoGPT: 图像与视频编码器结合的视频理解 摘要: VideoGPT结合图像和视频编码器的优势,提升视频理解性能。通过自适应池化策略处理视频,改进多项视频基准测试表现,并引入VCGBench-D…

【React】如何使用npm run start命令运行两个服务

我们开发前端项目时,有时候需要本地 mock 数据,这样就需要启动两个服务,一个是接口服务,一个是前端项目。可以安装一个插件来帮助我们通过一个命令启动两个服务。 方法一 添加& npm run server 注意:Windows系统…

牛客热题:最长回文子串

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长回文子串题目链接方法一&am…

鸿蒙开发:【启动本地PageAbility】

启动本地PageAbility PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。 表1 featureAbility接口说明 接口名接口描述startAbility(parameter: StartAbilityParameter)启动Ability。startAbilityForRes…

Linux之网络编程

Linux之网络编程 TCP协议 TCP(Transmission ControlProtocol) : 传输控制协议,是一个 面向连接的、可靠的、基于字节流的传输层的协议。TCP 协议建立的是一种点到点的,一对一的可靠连接协议 特点: 数据无丢失数据无失序数据无错误数据无重…

振动分析-3-基于Python的FFT幅值修正与能量修正

幅值修正与能量修正过程(更正) 参考什么是泄漏? 参考什么是窗函数? 参考使用python实现快速傅里叶变换(FFT) 参考频谱泄露和窗函数以及加窗后幅度修正和python代码实现 1 快速傅里叶变换(FFT) 离散傅里叶变换(discr…

84. 柱状图中最大的矩形(hard)

单调栈&#xff1a; 就是说&#xff1a;固定高度&#xff0c;寻找最长宽度&#xff0c;如何找最长宽度&#xff0c;需要从heights[i] 这一个元素开始向左向右两边寻找heights[j] <heights[i]的j元素&#xff0c;也就是找两边第一小于heights[i]的元素。此过程中就是利用到单…

PCA 在图像分析上的应用

同一物体旋转角度求取 直接上代码&#xff1a; import cv2, os import numpy as np import timedef perform_pca(image, num_components):# 将图像转换为浮点型img_float np.float32(image)img_flatten img_float.reshape(-1, 2)# 计算均值和协方差矩阵mean, eigenvectors …

java面试(企业场景)

设计模式 工厂方法模式 简单工厂模式 简单工厂包括以下角色&#xff1a; 抽象产品&#xff1a;定义了产品的规范&#xff0c;描述了产品的主要特性和功能具体产品&#xff1a;实现或者继承抽象产品的子类具体工厂&#xff1a;提供了创建产品的机会&#xff0c;调用者通过该…

跨链协议中Cosmos IBC、Polkadot/XCM、Celer Network的区别以及用途

跨链协议是实现不同区块链之间通信和价值转移的关键技术。Cosmos IBC、Polkadot/XCM 和 Celer Network 是三个在跨链领域内具有代表性的协议&#xff0c;它们各自有着独特的设计理念和应用场景。下面是这三个协议的详细对比&#xff1a; Cosmos IBC (Inter-Blockchain Communi…

【C++进阶学习】第二弹——继承(下)——挖掘继承深处的奥秘

继承&#xff08;上&#xff09;&#xff1a;【C进阶学习】第一弹——继承&#xff08;上&#xff09;——探索代码复用的乐趣-CSDN博客 前言&#xff1a; 在前面我们已经讲了继承的基础知识&#xff0c;让大家了解了一下继承是什么&#xff0c;但那些都不是重点&#xff0c;今…

Flask-RESTPlus

Flask-RESTPlus库教程 Flask-RESTPlus 是一个用于构建RESTful APIs的Flask扩展&#xff0c;它提供了一些有用的工具来简化API的开发和文档编写。Flask-RESTPlus 包含Swagger文档生成器&#xff0c;使得API文档更加直观和易于维护。 官方文档链接 Flask-RESTPlus官方文档 架…

【代码随想录算法训练Day41】LeetCode 416.分割等和子集

Day41 动态规划第三天 LeetCode 416.分割等和子集 class Solution { public:bool canPartition(vector<int>& nums) {int sum0;// dp[i]中的i表示背包内总和// 题目中说&#xff1a;每个数组中的元素不会超过 100&#xff0c;数组的大小不会超过 200// 总和不会大于…

企业内部、与合作伙伴/客户文档协作如何高效安全地收集资料?

在企业的日常运营与对外合作中&#xff0c;「文件收集」是一项特别常见的文档协作需求。例如&#xff0c;公司举办项目经验分享大会&#xff0c;组织者需要提前收集演讲者的材料&#xff1b;新项目启动时&#xff0c;项目经理需要快速收集技术方案和报价方案以便招投标和商务活…

计算机网络 4.3光纤

第三节 光纤 一、认识光纤 1.传输原理&#xff1a;通过内部的全反射来传输一束经过编码的光信号。 2.光纤通信系统&#xff1a; ①光源&#xff1a;是光波产生的根源。 ②光纤&#xff1a;是传输光波的导体。 ③光发送机&#xff1a;负责产生光束&#xff0c;将电信号转变…

大型Web应用的模块化与组织实践:Flask Blueprints深入解析

目录 一、引言 二、Flask Blueprints概述 三、Flask Blueprints的使用 创建Blueprint对象 定义路由和视图函数 注册Blueprint 使用Blueprints组织代码 四、案例分析 创建模块目录结构 创建Blueprint对象 注册Blueprint 五、代码示例与最佳实践 1. 代码示例 …