SaaS路线图 | 时光机


戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg

时光机:搭载这部时光机,带您回顾《程序员》大量优秀文章,重温经典技术干货,我们发现硬核技术永不过时,对于get要点、solve难题、提高自我,仍有非凡意义。


作者:Richy Ho是一名软件架 构师,热衷于分布式及 并行计算、机器学习和 数据挖掘、SaaS和云 计算。先后在Cisco、 eBay、Adobe等公司工作。博客在horicky. blogspot.com。


本文介绍了从传统Web应用一步一步迁移到SaaS的历程。


我观察了多家企业从传统 Web 应用迁移到 SaaS 的历程,察觉出其中存在着一种模式。本文试 图将这模式描绘出来,并总结出从中学到的若 干教训。虽然讲解中以 J2EE Web 应用架构作为示 例,但同样的原理也适用于其他技术平台。

 

第1阶段:使用中的现有Web应用 在最开始,我们已经拥有正常工作的Web应用。我 们分析现有应用的功能,把各个实现类划分成适当的组 (见图1)。

 

640?wx_fmt=jpeg


 第2阶段:将功能分散到单独的进程中去 我们分析各个功能,将它们拆分到不同的进程 (JVM)中。拆分要求是粗粒度的,各进程通过一个 Facade类暴露出服务接口,经由这些服务接口实现彼 此间的通信。服务接口可以是各种远程对象调用,也 可以是XML Over HTTP。Restful Web Service是服务 接口实现途径的事实标准(见图2)。

 

640?wx_fmt=jpeg


第3阶段:将不同进程转移到不同机器上 为了进一步扩展,跨越单台服务器能力的局限, 我们将进程转移到不同的机器上。请注意可以是物理 机器,也可以是虚拟机器(见图3)。

 

640?wx_fmt=jpeg


第4阶段:构建服务池 如果服务本身是无状态的,我们可以简单地 向服务池中投入(运行着同样服务的)更多机器, 横向扩展服务的容量。有必要使用一个网络负载均 衡服务器来平均地将工作量分散到池中的服务器上 (见图4)。

640?wx_fmt=jpeg


当工作负载上升时,可以向池中投入更多机器去 增强服务的总体容量。云计算供应商提供了弹性的扩展能力,使我们可以更加迅速地伸缩 池的大小,更有效率地处理动态的负 载变化。

 

第5阶段:通过分区扩展数 据层 业务处理层扩展完毕之后,我 们发现数据层成了瓶颈。因此有必 要通过按照数据的键作分区,分散 数据访问的工作负载。构建分布式 数据库的典型技巧请参考本刊2010 年第1期的文章《NoSQL的模式》 (见图5)。

 

640?wx_fmt=jpeg


第6阶段:加入缓存以降低服 务器负载 如果应用的读/写比很高,或者可 以在一定程度上容忍过时数据,我们 就可以增加一层缓存层,减少对服务 的实际访问量。客户端在向服务发送 请求之前先检查缓存。

 

我们需要维持缓存对象的新鲜 度。这方面存在很多方案,比如可以设定缓存对象在一定时间后过期;也 可以在后端数据发生变化的时候,明 确地发出请求,将相应的特定缓存对 象废弃掉(见图6)。 我们可以用本地缓存(位于客 户端所在的机器上),也可以采用 Memcached或者Oracle Coherence这 类分布式缓存引擎。

 

640?wx_fmt=jpeg


第7阶段:考虑对外公开哪些 服务 到了这个阶段,我们希望对外 公开一些服务,也许是服务本身就 是获利渠道,也许是为了更方便与 商业伙伴实现紧密的B2B集成。决 定暴露哪些东西,牵涉到非常多的 考虑因素,比如安全、可伸缩性、 服 务 水 平 协 议 、 使 用 情 况 跟 踪 等 (见图7)。

 

640?wx_fmt=jpeg


第8阶段:部署服务入口网关 决定对外暴露哪些服务之后,我 们根据具体的决策配置专门的服务入 口网关,负责处理上面提到的那些问 题。大多数XML服务网关都具备了消 息验证、安全检查、消息转换、路由 逻辑等功能(见图8)。

 

640?wx_fmt=jpeg


第9阶段:部署服务出口网关 我们不但对外提供服务,同时也 会消费其他人提供的服务。此时需要 部署一个服务出口网关,帮助我们完 成查找服务端点、提取服务策略等任 务(见图9)。


640?wx_fmt=jpeg



服务出口网关的一项重要功能 是管理企业内部对外部服务提供者的 依赖。典型的安排是让出口网关持有 提供相同服务的服务提供者的一份列 表,列表中还记录了该服务提供者的可用性(availability)和响应时间等信 息。出口网关要负责按照我选择的指 标(如最便宜的、最可靠的、延迟最 小的等)将请求路由到适当的服务提 供者(见图10)。

 

640?wx_fmt=jpeg


第10阶段:实现服务的版本 控制 服务在对外开放之后还会继续演 进。在理想的情况下,只需要改变服 务的实现,服务的接口保持不变,因 此不需要改动客户端的代码。

 

但现实往往没有那么理想,服 务接口或者消息格式都有可能需要 修改。在这样的情况下,为了保证不 破坏现有客户端,有可能要同时运 行多个版本的服务。也就是说,服务 入口网关必须智能地将客户端请求 路由到正确版本的服务实现上去(见 图11)。

 

640?wx_fmt=jpeg


典型的解决方法是维护一个版 本矩阵,跟踪各版本之间的兼容性。 我们可以规定一些发布策略,比如小 版本号的变动必须保持向后兼容, 而大版本号的变动就不要求。利用 这样的兼容性矩阵,入口网关就能 根据收到的请求判定客户端的版本, 并将其路由到具有最新兼容版本的服 务器上。

 

第11阶段:将基础设施外包 给云提供商 购买和维护必要的硬件设备成本 可能非常高昂,使用中出现闲置的计 算资源更是浪费。闲置通常是不可避 免的,因为我们要按照负载高峰去配 备资源,所以非高峰时段就必然会出 现闲置。 为了更有效地利用计算资源,

 

我们可以考虑市场上的云提供商,比如,Amazon AWS或者Microsoft Azure。 将应用迁移到云上可能需要重 新设计,才能适应云环境的一些特 质,比如,要适应较高的网络延迟, 要计较带宽的成本,还要让应用程序 的设计适应数据库的“最终一致性” 模型。

 

640?wx_fmt=png


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 太形象了!什么是边缘计算?最有趣的解释没有之一!

  • 互联网出海十年

  • 华为员工年薪 200 万!真相让人心酸!

  • 天才程序员:25 岁进贝尔实验室,32 岁创建信息论  琥珀  极客宝宝  5天前

  • 安全顾问反水成黑客, 靠瞎猜盗得5000万美元的以太币, 一个区块链大盗的另类传奇

  • 人造器官新突破!美国科学家3D打印出会“呼吸”的肺 | Science


640?wx_fmt=png真香,朕在看了!

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

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

相关文章

SpringCloud微服务如何优雅停机及源码分析 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:Trust_FreeDom转自:码农沉思录本文主要讨论的是微服务注册…

qt自定义行编辑器,用来加载颜色

提要 自定义行编辑器,点击后弹出颜色选择对话框,选择喜欢的颜色,确认后在行编辑器加载选中的颜色。 效果 选中某一个颜色后,行编辑器中加载所选的颜色。 示例 mylineedit.h #ifndef MYLINEEDIT_H #define MYLINEEDIT_H#inclu…

qt使用样式表设置窗口widget为圆角

提要 窗口widget是无法直接通过样式表设置为圆角的,需要在窗口QWidget中拖入控件QFrame,将QFrame设置的和窗口QWidget一样大小,将窗口QWidget中需要的控件拖入到QFrame中。 示例 下面是一个提示工具的窗口。通过它简单的记录一下样式表怎么…

微软 Build 2019:IE 重生,Azure 成主角;华为拟在英剑桥新建半导体研发基地,与ARM做邻居……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go阿联酋联邦政府人工智能部长 …

完美起点更重要:青立方超融合易捷版 助力企业一步云就绪

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!长跑,一项比短跑更具技术含量的运动,如果起跑过猛,…

没有一家公司可以逃避边缘计算 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者: Ariane转自:边缘计算社区边缘计算正在为数据中心的世界添…

gblfy_IDEA常用快捷键技巧

文章目录一、IDEA常用快捷键1. 查找2. 注释3. 断点调试4. 复制/移动5. 提示二、为需要的菜单设置快捷键2.1. 先搜2.2. 后加三、查找快捷键对应的菜单/替换快捷键3.1. 先搜3.2. 再加3.3. 需移除一、IDEA常用快捷键 1. 查找 查找快捷键说明idea中对应菜单位置CTRLR当前文件替换…

甲骨文中国裁员已定,补偿为N+6;VMware联手云平台合作伙伴AsiaPac,闪耀狮城;对标英伟达,寒武纪新货曝光……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 乐视改乐融,重新…

5G精华问答 | 大数据和5G有什么关系?

戳蓝字“CSDN云计算”关注我们哦!即将到来的5G,通过提升连接速率,提升了“人联网”的感知,也促进了人类主动创造数据。另一方面,它更多是为“物联网”服务的。包括低延时、海量终端连接等,都是物联网场景的…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于概率预测与随机响应面法的新能源孤岛配电网实时风险评估与调控策略》

这个标题涉及到新能源孤岛配电网的实时风险评估与调控策略,其中使用了概率预测和随机响应面法。下面是对标题中各个要素的解读: 新能源孤岛配电网: 新能源: 指的是可再生能源,如太阳能、风能等,与传统的化石…

Open Infrastructure开启开放协作新时代

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!在丹佛举办的Open Infrastructure Summit大会的Keynote演讲中,OpenStack基…

图解分布式架构的发展和演进 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!编注: 架构决定的系统的稳定性,扩展性和并发性,架构的演进是从…

Hadoop精华问答 | 如何设置单个任务占用的内存量和CPU数目?

我们很荣幸能够见证Hadoop十年从无到有,再到称王。感动于技术的日新月异时,让我们再来看看关于Hadoop的精华问答。1Q:默认情况下,各个节点的负载不均衡(任务数目不同),有的节点很多任务在跑&…

MyBatis-Plus_自定义sql

查询专栏:自定义查询sql 文章目录1. 在mapper接口中定义接口2. 在xml文件中书写sql3. 全局配置3.1 配置xml的位置3.2 配置实体类的位置4. 在实体类中测试5. 控制台输出1. 在mapper接口中定义接口 /*** 查询所有 有条件会自动拼接在where 后边当条件 单表操作** pa…

Gartner:PaaS 和平台架构领域的 4 大趋势 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!Gartner公司已列出了2019年及以后影响平台即服务(PaaS)技术和平…

MyBatis-Plus_分页查询

查询专栏:myabtis 实现的分页为什么还要分页插件? 文章目录1. 创建分页插件2. 测试分页3. 自定义分页4. 测试自定义分页方法5. 控制台输出6. 多表操作1. 创建分页插件 Configuration public class MybatisPlusConfig {Beanpublic PaginationInterceptor…

qt设置滚动区域的滚动条的样式

引言 当窗口的控件太多,不能一下完全显示,就可以采用滚动区域来添加控件,这样添加的控件,可以通过滑动滚动区域的滚动条来浏览所有的控件。下面就大致记录一下滚动区域的滚动条的样式怎么设置。 实现 直接上设置滚动区域的滚动…

什么叫云原生应用?| 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:吕建伟转自:阿朱说(1)从Function到…

500位开发者要在杭州搞事情!CTA峰会嘉宾全阵容揭秘

戳蓝字“CSDN云计算”关注我们哦!扫描二维码,立享折扣。5 月 26 日- 5 月 27 日,由中国 IT 社区 CSDN 与数字经济人才发展中心联合主办的第一届 CTA 核心技术及应用峰会将在杭州国际博览中心召开。首届 CTA 核心技术及应用峰会将围绕人工智能…

Storm精华问答 | Spark与Storm的区别有哪些?

戳蓝字“CSDN云计算”关注我们哦!Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等, 大数据实时处理…