文档章节

面向微服务的企业云计算架构转型

 普元云计算
发布于 2016/11/14 10:15
字数 2503
阅读 4
收藏 0
点赞 0
评论 0

转载本文需注明出处:EAII企业架构创新研究院,违者必究。如需加入微信群参与微课堂、架构设计与讨论直播请直接回复公众号:“EAII企业架构创新研究院”。(微信号:eaworld)

大家好,我是焦烈焱,今天主要介绍普元利用云计算模式,帮助企业实施数字化转型过程中,在技术上遇到的挑战,以及我们解决问题的方法。


首先解释一下什么是数字化?数字化就是把人、事/物和商业联系起来,Garnter 提到未来的企业都是数字化的企业,IT将成为企业核心竞争力,甚至每个企业都是一个 IT 企业。类似的概念有金融科技(FinTech)、软件驱动企业、API经济,我觉得还是数字化描述得比较本质,大云物移/SMAC这些提法就技术化了。



企业数字化,我们近些年遇到了很多类似的案例,这里不一一展开,但需要说明的是,这些都是通常意义上的传统企业,他们比以往更有动力做数字化的商业模式。



数字化对 IT 的要求,来自从对内服务为主,增加了对外服务的模式,以云计算的模式,直接面向最终客户和合作伙伴,由于服务对象、业务范围发生了很大变化,需要采用不同的架构实现。



微服务是实现对外服务所必要的,原因有三:1、核心来自对外服务往往与互联网企业竞争,需要更快的速度;2、这些服务往往不是企业当前擅长的,要快速试错;3、业务的压力服务预计,需要架构的弹性。例如我们一个农村商业银行的客户,做了一个农产品买卖的电子商务平台,电子商务业务是他们不擅长的,而直接竞争对手就包括目前的互联网企业,迫使我们必须学习互联网企业的经验。



在数字化过程中,我们实施的案例往往采用混合的架构,新事新办法、老事老办法做过渡,而新事一般采用微服务架构。



上图是一个微服务架构的全景图,注意右上角用 ESB 与传统系统连接。说个题外话,最近很多次交流,大家都提到嵌入式的集成与 ESB 集成模式的关系,应该如何选择,我认为两种都需要,前者对同质系统、自研系统比较合适,而后者用于异构的集成,例如我外购了一个产品,无法把集成的逻辑嵌入到该产品中,只能通过 ESB 进行连通。






我们在实施微服务架构,支撑企业数字化的过程中,遇到了很多挑战,主要来自技术欠债太多、隐形成本过高、知识缺少共享与协作等等。



遇到的问题太多,就事论事的解决问题肯定是不行的,我们在实施过程中从技术的精益运营入手,把技术当作一个Business(这个在此翻译成商业、生意最恰当,而不是业务)来做,从架构、治理、协作等各个方面设立了若干专题,在这些专题中通过技术手段提高效率、降低成本。


其实,云计算的本质是提高效率,而不是降低成本,公有云就是要提高社会的效率,私有云就是要提高 IT 的效率。从这个角度看,实施云计算就是做精益运营,而微服务架构为精益运营提供了架构上的保证,因为微服务是小的、容易变化的、容易控制的。


下面,我主要从架构高可用、提升协作效率和提升治理效率三方面谈一下经验。



介绍一下技术欠债,我们以前基于 OpenSatck + CloudFoundry 做基础架构,当年和银联的同事一起,基于 OpenStack 管理了上千台的物理机。


那时,我们花了很大精力在如何实现高可用,做横向、纵向伸缩,但还是有些不足,例如由于虚拟机启动较慢,导致切换的时候时间窗口太长,为了缩短时间就设置了一些已经启动好的虚机,应用也做成了彻底的无状态,例如 JVM 等使用了共享方式,而不是多份 copy,减少镜像的大小,但总体上资源利用率是有待提高的。

再如高可用的实现中,OpenSatck 实现起来就要引用很多组件,能实现,但是比较复杂。




通过 OpenStack 和 CloudFoundry 的实践,我们发现,他们是为了管理而生的,架构的核心是为了更灵活的管理各种设备,而不是为了高可用,类似的还有虚拟机技术,也是为了更方便管理的目的。


基于这样的思考,我们决定把 OpenStack 做薄,让他做最擅长的虚机管理,而高可用等能力交给 Kubernetes,因为在架构上后者天生为调度而设计。


至于为什么选择 Kubernetes,先前微课堂讲师宋潇男已经做了介绍,大家可以在 EAII 公众号(微信号:eaworld)下载相关PPT。



我们用 DevOps 提高协作的效率,加快开发、测试、部署的效率,首先是将应用代码与基础设施分离,开发工程师提供应用的代码、配置、环境信息、安装介质、实现后的软件资源(例如对外接口、数据库表),通过 DevOps 平台进行自动化的部署。



上图为微服务 DevOps 的概念模型,内容有点多,就不一一解释了。



由于在 DevOps 过程中有很多的工具,协作就是要把这些工具打通,协作起来,例如需求是用 Jira 管理的,在 DevOps 平台注册用户后,就可以在 Jira 里面自动注册。


我们做了很多看板,让需求、设计、运维、测试不同角色的人员,通过看板能够了解其他环节的工作,而看板的数据来自于被集成系统,例如在 Jira 里面编辑需求的时候,会自动推送到 DevOps 的看板上。



集成 DevOps 领域工具链,是基于概念模型,结合 AAAA 完成的,这里面工作量比较大,而且上述工具链的审计我们还没有实现,比较复杂。




同时,我们的 DevOps 平台准备基于Kubernetes 实现微服务新版本发布、金丝雀测试、预发和滚动更新,这也是一个基于 OpenStack 比较复杂的工作,用 Kubernetes 的标签概念就比较简单。目前正在考虑通过数据服务解决服务发布的数据库蓝绿部署问题,帮助微服务做好发布、回滚、灰度发布。




面向互联网应用的微服务架构,是一个分布式架构,比较复杂,因此必须提高治理的效率,我们是用元数据来完成的,这是一个元数据在微服务架构中应用的例子。



有了微服务的元数据,就可以做很多事情,上图是通过元数据做各阶段版本的比较。我们曾经在某特大型城市商业银行,利用元数据从设计工具(PowerDesiner)、预发环境、生产环境采集软件资源信息(例如数据库),预发环境、生产环境进行比对,列出不一致的地方,再参考设计,人工确认无误的情况下,才发起生产上线流程。


还有在云中的自适应安全,都可以基于元数据来实现,普元首席架构师顾伟在 CSDN云计算大会的分享中,也会讲到这一点。


元数据的话题,在微课堂也已讲过两次,包括应用场景和技术实现,大家可以关注 EAII 公众号(微信号:eaworld)。



总结一下今天的内容:我们在这些年的实践中,用微服务架构支撑企业的数字化,采用的技术从 OpenStack + CloudFoundry 等管理为主,逐步过渡到 Kubernetes + OpenStack 的模式,同时利用元数据技术提高微服务架构的治理效率,用 DevOps 提高协作的效率。



在精益运营的方面有很多功课我们要做,包括今天的内容,我们会逐步分专题细化共享出来,谢谢大家!


关于作者:

焦烈焱

EAII-企业架构创新研究院 常务理事

2001年加入普元信息,现任CTO,全面负责普元信息技术与产品的运营工作,公司技术发展战略的重要决策人。焦烈焱在企业技术架构研究方面有二十余年的经验,长期致力于分布式环境的企业计算、 SOA与云计算技术研究与实践。加入普元信息后组织完成一系列核心产品的研发工作,包括SOA应用平台、以BPM &/ESB为核心的业务集成平台、以复杂事件处理/数据治理/作业调度为核心的大数据平台,期间主持了中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。著有《SOA中国路线图—实施版》一书。


关于EAII

EAII(Enterprise Architecture Innovation Institute)企业架构创新研究院,致力于软件架构创新与实践,加速企业数字化转型。



eaworld项目(微信号:eaworld,长按二维码关注)


eaworld是EAII的官方微信账号。

本文转载自:http://blog.csdn.net/jiaoly/article/details/52276875

共有 人打赏支持
粉丝 1
博文 23
码字总数 18356
作品 0
海淀
聚焦“微服务与容器云” 2017CIO时代线下CIO沙龙顺利举行

2017年2月23日下午,CIO时代2017年第一场线下CIO沙龙在上海复旦大学老逸夫楼顺利举行。本次活动主题聚焦“微服务与容器云”,来自复旦大学、CIO时代学院、上海电气、上海汽车、港中旅华贸货运...

玄学酱 ⋅ 04/18 ⋅ 0

北达软微服务架构设计与实践圆满结束

2016年10月26-27日,为期两天的微服务架构设计与实践在北京大学成功举办。随着新一代信息技术的快速发展,业务需要快速变化、快速创新,互联网的连接带来了大的并发量和数据量。从单机架构走...

玄学酱 ⋅ 05/10 ⋅ 0

【演讲实录】下一代企业级应用架构管理体系

在我们的工作中,接触到很多的传统行业的客户,比如金融、零售和制造业等等,传统行业由于受到互联网环境的冲击,很多企业都开始做数字化转型,因此逐渐走向我们今天经常听到的新金融、新零售...

技术小能手 ⋅ 2017/12/29 ⋅ 0

针对云原生转型的6个关键数据策略

如今,许多组织正在将采用云原生平台作为其数字转型战略。云原生允许企业以更灵活的方式提供快速响应、用户友好的应用程序。但是,支持云原生转换的数据体系结构常常被忽略,希望它会自行处理...

技术小能手 ⋅ 05/22 ⋅ 0

灵雀云发布Alauda EE,基于容器面向DevOps应用的新一代PaaS平台

  【IT168 云计算】6月8日,以“云筹帷幄、从容自如”为主题的Alauda EE企业专享版产品发布会如期举行,灵雀云CEO左�h宣布正式发布企业专享版产品“Alauda EE”。   Alauda EE 是灵雀云...

it168网站 ⋅ 2017/06/12 ⋅ 0

浪潮发布PS Cloud 开源+云ERP会给中小企业带来哪些红利?

-------- 作者:刘学习 开源系统的星星之火,经过20多年的发展,已经燎原到了几乎所有的IT应用领域,不仅包括操作系统、数据库、中间件、办公软件等方向,而且还在大数据、云计算、区块链、A...

z1y492vn3zyd9et3b06 ⋅ 04/26 ⋅ 0

谁说技术大会只是演讲者的舞台?来Pworld2016,不止让你“听”!

8月,注定是个火热的季节,这个8月,引爆大家激情的不只有里约奥运会,备受瞩目的PWorld 2016大会将于8月26日在北京新云南皇冠假日酒店首站开启。今年的PWorld将分别在北京(8月26日)、上海...

玄学酱 ⋅ 05/21 ⋅ 0

云计算超融合一体机,加速企业互联网下半程

2018年5月,中国软件网、海比研究联合出品了《2018中国企业服务生态发展状况研究报告》,该报告得出的结论是2018年企业上云将呈现三大特点,即大型企业上云减速,中型企业上云加速,小微企业...

云科技时代 ⋅ 05/18 ⋅ 0

腾讯云战略投资灵雀云(Alauda),领跑容器PaaS市场

摘要:灵雀云(Alauda)获B轮融资,腾讯云战略领投,之前轮次投资方高榕资本、宽带资本跟投,其他战略投资者持续跟进,B轮融资总额超亿元人民币。融资后,腾讯云与灵雀云双方将在容器及企业级...

智, 多趣 ⋅ 2017/11/08 ⋅ 0

对不起!你的超融合认知已过期……

点击上方“CSDN”,选择“置顶公众号” 关键时刻,第一时间送达! 程序员们,认知盲点和认知盲维是不一样的。前者可能丢掉的是一个项目——认真补习满血复活,争取拿下下一个!后者则可能丢掉...

csdnnews ⋅ 05/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 25分钟前 ⋅ 0

spring RESTful

spring RESTful官方文档:http://spring.io/guides/gs/rest-service/ 1. 可以这么去理解RESTful:其实就是web对外提供的一种基于URL、URI的资源供给服务。不是一个原理性知识点。是一个方法论...

BobwithB ⋅ 27分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 30分钟前 ⋅ 0

@Conditional派生注解

@Conditional派生注解(Spring注解版原生的@Conditional作用) 作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效; @Conditional扩展注解 作用(判...

小致dad ⋅ 30分钟前 ⋅ 0

适配器模式

适配器模式 对象适配器 通过私有属性来实现的类适配器 通过继承来实现的接口适配器 通过继承一个默认实现的类实现的

Cobbage ⋅ 34分钟前 ⋅ 0

Java 限流策略

概要 在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速...

轨迹_ ⋅ 38分钟前 ⋅ 0

GridView和子View之间的间隙

默认的情况下GridView和子View之间会有一个间隙,原因是GridView为了在子View被选中时在子View周围显示一个框。去掉的办法如下: android:listSelector="#0000" 或 setSelector(new ColorDra...

国仔饼 ⋅ 41分钟前 ⋅ 0

idea插件开发

1 刷新页面要使用多线程 2 调试要使用restart bug 不要去关闭调试的idea 否则再次启动会卡住

林伟琨 ⋅ 41分钟前 ⋅ 0

Java 内存模型

物理机并发处理方案 绝大多数计算任务,并不是单纯依赖 cpu 的计算完成,不可避免需要与内存交互,获取数据。内存要拿到数据,需要和硬盘发生 I/O 操作。计算机存储设备与 cpu 之间的处理速度...

长安一梦 ⋅ 48分钟前 ⋅ 0

思路分析 如何通过反射 给 bean entity 对象 的List 集合属性赋值?

其实 这块 大家 去 看 springmvc 源码 肯定可以找到实现办法。 因为 spirngmvc 的方法 是可以 为 对象 参数里面的 list 属性赋值的。 我也没有看 具体的 mvc 源码实现,我这里只是 写一个 简...

之渊 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部