范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

对企业IT系统全部迁移公有云的演进路线思考

  作者:人月神话,新浪博客同名
  简介:多年SOA规划建设,私有云PaaS平台架构涉及经验,长期从事一线项目实践
  今天重点是整理和思考下对企业IT系统全部上云的一些关键点思考,当然IT全部上云本身也是云原生解决方案要解决的一个重点内容。对于企业遗留系统迁移上云是一个相当复杂的主题,一篇文章肯定无法讲清楚,包括我自己也需要在整理过程中进行相关内容学习和细化。
  因此对于这个主题本身我也会逐步整理多篇文章来分享。云原生概述
  对于Cloud Native翻译为云原生,是Matt Stine提出的一个概念,它是一个思想的集合,包括DevOps、持续交付(Continuous Delivery)、微服务(MicroServices)、敏捷基础设施(Agile Infrastructure)、康威定律(Conways Law)等,以及根据商业能力对公司进行重组。
  Cloud Native既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,持续交付,康威定律,重组等)。Cloud Native也可以说是一系列Cloud技术、企业管理方法的集合。
  在一般用法中,"云原生"是一种构建和运行应用程序的方法,它利用了云计算交付模型的优势。"云原生"是关于如何创建和部署应用程序,和位置无关。 这意味着应用程序位于云中,而不是传统数据中心。
  CNCF给出了云原生应用的三大特征:容器化封装:以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序,并作为应用程序部署的独立单元,实现高水平资源隔离。动态管理:通过集中式的编排调度系统来动态的管理和调度。面向微服务:明确服务间的依赖,互相解耦。
  实际上我们看到对于完整的DevOps是包括了持续交付方面的内容的。因此对于云原生的概念完全和我前面经常谈到的微服务,容器化PaaS和DevOps相吻合。
  即云原生 = 微服务+ DevOps + 容器化PaaS
  在传统的PaaS平台阶段,我们看到更多的是实现中间件资源池,应用托管和中间件资源的自动调度。但是对于业务系统来讲可能仍然是大的单体应用,同时每个业务系统本身还有比较重的底层技术平台,依托于一个技术开发框架。
  而在这种情况下业务系统要实现敏捷,高效的到云环境的交付并不现实。
  也正是这个原因,在云原生下更加强调两点内容:其一是原有的业务系统要进一步微服务化拆分,变成更加细粒度的组件化单元其二是业务系统中和业务无关的内容要 全部下沉到平台层构建
  当满足以上两点后我们构建业务系统更加容易实现面向公有云服务环境的持续集成和交付能力。其中核心底层技术是容器化PaaS,小而灵活,而且具备编排属性和能力,传统应用架构通过微服务化后变得足够小而自治,方便进行敏捷开发和迭代,快速的交付和响应,同时也方便部署和托管到容器中。
  软件因云而生,即云原生,需要的就是上面三者的密切配合来完成。
  综上所述,我们可以进一步将企业IT系统架构或者说平台+应用的分层架构演进体系分为三个阶段来理解。
  最初可能仅仅是实现虚拟化资源池,实现IaaS平台层统一。在这个时候业务系统构建仍然是烟囱式的构建模式,每个业务系统底层有比较重的中间件和平台,业务系统是一个大的单体应用,内部各个业务模块仍然没有完全解耦。
  第二阶段即我们常说的私有云PaaS平台建设阶段,在这个阶段进一步实现中间件资源池,也会做类似4A,流程引擎平台的整合和统一。业务系统逐步朝组件化开发过渡和解耦,但是业务系统内部仍然存在技术平台和技术支撑。
  第三阶段实际上有几个大的变化,首先就是PaaS云平台从传统比较重的类似Cloudfoundry,Cloudify已经过渡到更加轻量高效的容器云平台,同时大量技术服务能力共性化建设。其次是业务系统彻底实现微服务架构化和解耦。那么在上层微服务设计,开发,部署和交付过程如何与底层的容器云平台,技术服务平台进一步协同?这里面就是我们常说的DevOps过程支撑平台。
  而容器云+微服务+DevOps持续交付刚好就是当前主流云原生的核心。
  从资源到服务-关键思维的两次转变
  图片来源网络
  当我们谈到云计算或云原生的时候,一定要转变一个关键思想,就是从拥有资源到享受服务。那么如何理解资源和服务,简单来说如下:资源本身是一个能够看得见实体或虚拟实体单元服务则是一种能力价值体现
  对于消费者或用户来讲,一定要搞清楚你需要得服务还是资源,你拥有了资源当然你能够获得资源提供得服务,但是你本质可能仅仅是需要服务而已。比如我想吃鸡蛋,我并不需要一定要去养一只鸡。我需要部署我的IT系统,我并不需要一定要买一台服务器回家。
  即我们大部分时候都仅仅需要的是资源提供的服务能力,而不是真正需要拥有这个资源。对应到IT系统建设,很多人感觉就是我必须买一台服务器回家,这个资产是我的,心里才放心。但是却没有想到服务器购买回来后涉及到机房,运维,用电等一系列其它成本投入。
  第一阶段-购买云主机和存储
  对于大部分企业来说,上云的第一阶段都是购买大量的云主机和云存储,然后迁移和部署自己的数据库和应用程序。
  但是我们要意识到在这个阶段虚拟机仍然是资源,只是从物理资源变为了逻辑资源。
  当你仅仅购买资源的时候,你会看到:
  对于你在虚拟资源上部署的数据库或应用,后续的运维监控,后续的资源扩展,应用安全,冗余和可靠性等很多问题仍然需要你自己去解决。
  简单来说,就有点类似于装修房子一样,我本来可以提供交钥匙的全套服务能力,但是你却要自己买原材料自己去装修和组装。
  第二阶段-真正从IaaS层资源到PaaS层服务
  理解这点,是我们全面切换上云的一个关键内容。即在云原生状态下的上云,更多的要从对资源层的关注转变到对服务层的关注。
  我们可以举例说明如下:你原来是购买虚拟机装HA数据库,而新思路是直接购买数据库服务你原来是买虚拟机搭建集群,新思路是直接购买容器云集群服务能力进行托管部署
  也就是说转变到服务阶段后,云平台提供的一切能力都是服务,你不要再去关心底层的物理机,虚拟化资源,而是仅仅关注服务即可。
  云平台运营方来保障提供服务能力的可靠性,安全和弹性扩展能力。传统IT系统迁移上云方式和问题
  在这里,我们将通过购买云主机,云存储和网络带宽的方式,自己搭建数据库和应用环境,并将企业内部IT系统迁移上云环境统称为传统方式。在这种方式下基本仍然停留在虚拟资源使用和消费上,最多也就是会再购买些类似集群,CDN内容分发服务等。
  前提建议-去IOE
  对于传统IT系统的上云,建议前提首先去IOE,即自己IT系统的构建不再使用类似Oracle, Weblogic,SAN存储等商用的数据库和存储。而是基于去IOE的思路进行开源化的改造,比如我们常说的Mysql数据库,Tomcat容器等。
  如果用商用数据库,后续涉及到的License和费用问题都很难去解决。
  包括现在我们看阿里云提供的数据库服务,商用的数据库只保留有Sql Server数据库,其它全部都是开源数据库或阿里自研的数据库服务。
  云环境的高可靠和高扩展问题
  在这种场景下,整体云环境的IT基础架构和部署架构由你自己去设计,你需要去考虑整个架构的冗余和高可靠性。同时在这种场景下,整个基础架构不具备自动扩展能力,当你发现应用无法满足业务需求的时候,往往都是需要你手工申请新的计算和存储资源,然后进行扩展配置。
  比如你采用Mysql数据库
  你一开始就要规划是否采用读写分离集群,还是双主+读写分离集群。同时要确认可以在资源负荷大的时候,申请虚拟机资源实现读集群节点的自动化扩展。这些都需要你提前考虑清楚,否则最终切换上云环境后,你的整个DB将没有集群扩展能力。
  同时对于数据库数据的安全和备份你也需要考虑,对于关键数据你自己还需要进行额外备份,防止数据丢失,也确保关键数据能够及时的恢复。
  再比如你的中间件集群
  你也需要考虑清楚你的集群部署方式,是否需要配置独立的集群管理节点,还是说每台服务器都自己手工去部署,然后再配置到类似Nginix的集群服务上。这些内容也得提前规划好,在你只购买虚拟云主机的情况云服务商不会去帮你考虑这些问题,而是需要你自己去解决。
  自然,当集群性能无法支撑高并发时候,你也只能是手工再申请资源,配置集群节点来进行扩展,而很难做到资源自动化的弹性扩展。
  各类技术服务组件的提前规划和部署
  如果你自己的应用系统使用到类似消息中间件,流程引擎平台,各类开源技术组件,自己定制的技术组件服务等,这些都需要提前规划好并完成部署。在整个应用迁移前,你需要确保这些技术服务组件都已经独立部署好,并且能够单元测试通过。
  强烈建议所有的技术类组件在独立部署完成后都需要进行全测试场景的单元测试和验证,以确保技术组件部署的完整性,同时也有益于在技术组件部署完成后出现问题的排查。
  当然整个IT架构里面,技术组件你自己去部署和管理,那么对于单个技术组件本身的高可靠性,可扩展能力,通用需要你自己去规划和考虑清楚。从资源订购到服务订购
  即使你的IT系统还没有进行微服务架构和面向云原生的改造,我们仍然不建议你完全采用购买云主机的方式切换上云,即在这种模式下你后续要过渡到云原生阶段同样会相当大的工作量。
  从通用资源到个性化服务
  对于类似亚马逊,阿里云,华为云,腾讯云等各个大的云服务商可以看到。
  对于云主机和云存储层面,各家的产品和服务都大同小异,基本都是标准化的云主机产品。也正是这个原因你可以看到,如果你原来应用部署在阿里云,如果你阿里云服务不满意,你可以很容易快速的切换到华为云。由于底层都是标准的虚拟机,仅仅是应用和数据迁移的工作量,对于应用程序本身并不需要做修改。
  而当从资源层到服务层后
  你可以看到各家公有云服务商提供出来的中间件,技术服务能力就出现了大的差异,即使阿里和华为云都提供MySql的数据库服务能力,本身在服务能力的底层构建模式,扩展性,包括数据库服务的接口,DB连接的使用上都可能存在个性化的差异。
  特别是阿里云各类技术服务,经常会出现各种个性化的封装和定制。
  因此,如果你整体上云规划已经认定了某一个云服务商提供的服务能力,那么你不需要考虑后续云平台的替换问题。否则你在实施和订购服务的时候,必须考虑到云服务兼容性。
  思考点1:考虑数据库和存储的服务化
  在遗留IT系统迁移上云的时候,我们优先需要考虑数据库的服务化。
  如果你原来用的是Mysql数据库,你可以考虑采用阿里云的Mysql云数据库,这个数据库本身也是一种双Master+读写分离集群结构。后续很容易去做读节点的能力扩展和自动分配。
  如果你原来采用的Oracle数据库,那么在云化的过程中,我们实际是建议将数据库进行迁移,你可以迁移到Mysql数据库,也可以迁移到阿里云的PolarDB数据库。
  对于PolarDB数据库可以看到,对于Oracle引擎版本基本可以实现完全兼容Oracle数据库。
  对于Polar DB实现了计算存储分离,有点类似于Oracle RAC集群数据库,但是其写节点只有一个节点,其它都是读节点。由于实现共享存储,因此其存储的弹性扩展能力足够强。当然整个PolarDB的性能根据官方数据也相当强。
  因此如果采用Polar DB数据库服务,对于数据库集群的高可靠性,扩展,存储扩展等各类问题你都不需要考虑,都由云服务商帮你解决。对你来说你就是获取和实例化一个数据库连接,并去使用数据库即可。
  当然除了结构化数据库外,本身各个公有云还提供其它各类数据库和缓存服务能力。
  类似Redis库服务,时序数据库服务
  也还有各类存储服务能力,从原来购买单纯的存储空间,可以变化为直接采用分布式对象存储接口等。这些也完全可以根据实际的业务场景和需求进行服务订购和消费。
  比如Redis缓存库,你自己要去部署一个高冗余和高可靠的分布式集群仍然是很麻烦的事情,而现在你可以直接购买和订购数据库服务能力,其它都公有云平台帮你搞定。
  思考点2:考虑关键中间件技术能力的服务化
  其次我们可以考虑将我们用到的最常见的开源技术组件服务化,即优先采用公有云平台提供的服务能力,而部署自己再去部署这种技术中间件。
  对于这块我认为最重要的仍然是消息队列,缓存,日志,短信通知,文件等几个关键技术服务能力。这几个能力也是我们最常使用的能力。
  包括消息队列我们也可以看到,类似阿里云往往提供RocketMQ, Kafka, MQTT等各种消息中间件,你需要基于你实际应用场景去选择。中间件技术能力个人理解不需要完全去服务化,将关键的几个核心技术组件服务化即可。
  什么是关键技术组件?至少应该满足两点影响到整个业务系统核心业务流程执行和运转的组件对性能需求高,本身存在高可靠,弹性扩展需求的技术组件服务
  对于满足以上两个特点的技术组件服务我们就需要优先考虑服务化订购。从服务订购到完全适配云原生交付
  云原生开源生态
  这个实际上是最理想的方式。但是这个有一个前提,就是企业的IT架构完全微服务化,同时各个微服务能够实现容器化部署。比如你企业新开发的一个业务系统,已经采用微服务开发框架和架构,同时已经通过jekins在做持续集成和容器的自动部署。那么在这种场景下是最理想的云原生交付前期准备。
  在这种场景下,实际我们需要做出三个方面的工作。
  其一:开发框架和环境
  为了实现持续集成和持续交付,我们需要实现整个研发全生命周期的过程管控能力,其中就涉及到开发态的支撑能力,从开发态到运行态的交付能力。
  在这个过程中你需要考虑微服务开发框架和环境。
  当然你可以使用类似SpringCloud的微服务整体解决方案,但是这种解决方案里面就涉及到整个SpingCloud基础架构,网关,注册中心等的部署和管理,这些事情需要你自己去做。
  你也可以使用公有云服务商提供的开发框架,微服务治理框架,使用这个的好处就是你只需要关注微服务模块的开发即可,其它都不用太关心,公有云基础环境已经具备。
  简单来说就是:
  原来你需要关注整个SpringCLoud,现在你只需要关注SpringBoot开发微服务模块。
  其二:容器云集群服务
  注意,在新微服务架构下我们直接使用容器云集群服务能力,不再是单独去订购虚拟机去部署容器,而是直接实际容器集群服务。
  在使用容器集群服务的时候,你可以配置你自己的调度规则,资源动态扩展规则。
  对于容器云集群的使用,你可以将自己打包好的部署包通过管理界面进行自动化部署,也可以通过DevOps进行自动化集成和部署交付。
  其关键点都在于整个应用集群基础设施架构你不用再关心了,你仅仅是使用服务。
  其三:DevOps过程支撑能力
  当前的各大公有云平台,类似阿里云,华为云本身都提供了完整的DevOps过程支撑能力。也就是说你整个研发过程管理,需求,打包构建整个过程全部上云。通过使用DevOps过程服务,自然你的应用可以自动实现持续交付能力。
  那么你也可以看到通过DevOps虽然实现了自动化的持续交付,但是你跟公有云服务商提供的服务能力往往绑定的更加紧密,或者说你更难脱离你当初选定的公有云服务商。
  这也是当前为何各大公有云都大力推自己的敏捷研发管理平台和DevOps原因。
  如果做到以上三点,我们看基本就实现了一个完整的向公有云环境进行交付和迁移的能力。这种持续敏捷的向公有云交付才是真正云原生的核心。
  而对于我们前面谈到微服务,容器,DevOps都是为了达成这个目标服务。
  详细参考:阿里企业上云最佳实践
  https://www.aliyun.com/acts/best-practice/index
  为何要走到云原生持续交付这个层面?
  最后再谈下为何要演进到云原生持续交付这个层面。前面实际上我已经谈到,只有将资源转变到服务层,你才能够充分享受到云平台带来的类似安全,可靠性,扩展,备份容灾等各种增值服务能力,这些能力往往才是你自己私有云很难去解决的能力,特别是类似我们原来经常谈到的异地容灾部署能力。
  其次,真正实现了敏捷化的持续交付,实现了开发态到运行态的完整无缝集成。这个已经不仅仅是通过自动化节约成本的问题,而是真正满足业务用户敏捷需求的目标。
  最后,你使用的是云平台提供的各种服务,那么自然你能够进一步享受为服务本身提供的运维监控和治理能力,也就是说对于运维,监控这些后续事项云平台也会帮你解决掉,不需要你自己去构建。比如你自己去构建一个业务系统,你可能还通过ELK去做日志分析和监控,而当你转变为采用云平台服务化,这些功能也自然具备。
  结语:对于IT系统迁移上云是个大话题,我后面还会展开来详细谈。
  欢迎关注@人月聊IT 分享SOA,微服务,DevOps平台规划和建设。

清华最甜女教授!毕业康奈尔的她被哈佛抢着要,却毅然回国任教又是仰望学霸的一天!今天上午,第四届青橙奖公布,以北大韦神领衔的10位青年学者拔得头筹。其中,32岁清华女教授获奖百万冲上了热搜第二。32岁,有的人还没博士毕业,有的人却已经是博士艺术家将500克1000粒米扔江中近日,一则充满教育意义的话题引起波澜。在10月16日将是第四十一个世界粮食日,在上海的一位艺术家(杨烨炘)用500克黄金做了1000粒金米,然后将这1000粒金米扔进了黄浦江和上海如果许敏是农村的,家里还负债累累,郭威田静还会离开杜新枝吗?错换人生发展至今,大家都有着各种各样的假设,其中我发现了这样的一个假设,有人说,如果许敏家是农村的,家庭条件非常的差,而且还负债累累,郭威田静还会离开杜新枝回到她的身边吗?关于这个郭威错换案志姑姑和王某莲,他们现场如何回应病历涂改问题在错换事件中,众所周知,当年的病历存在着大量的涂改缺失等问题,所以找到当年的医护人员是非常关键的一步,在千呼万唤之下,郭希志与王某莲等人终于是被联系上了,并且出席了此次的开庭审理,熊磊嘴里所谓的讨要公道,不过是打着名正言顺的理由不还房产自从姚策去世之后,杜新枝以及熊磊,就开始打着姚策的旗帜针对许敏与田静了,杜新枝训斥田静在姚策去世后直播带货,而熊磊则口口声声的说要替姚策讨回一个公道,是许敏逼死的姚策,而熊磊所说的全家齐骂人!熊磊母亲公开骂姚爸一家都是奴才,还称会让对方哭在许敏与熊磊的房产之争中,熊磊在网上各种污化许敏的行为,大家也都是看得到的,我在这里就不多说了,除了熊磊之外,她的母亲也曾多次参与此事,这就给人一种上梁不正下梁歪的感觉,难怪熊磊会千呼万唤始出来的郭希志,庭审时一问三不知,法庭将如何考量自从错换人生发生以来,很多人都对郭希志抱以很大的兴趣,大家也一直想要了解此人,在一审的时候大家非常失望的是没有查找到此人,但在二审中却非常出人意料地出现了,但这未必就是一件好事,因许妈房子之争新进展小熊请拿出购房合同,舅舅发声铿锵有力许敏与熊磊的房产之争还在持续之中,对于此事大家也是各有看法,但每当提到这件事,我都会想起姚策以前的一句话,姚策曾说父母对我的养育之恩,我此生难报,房子我是一定会还的。这句话我想很多第二次庭审后,杜家开足马力造舆论,会把杜妈偷换嫌疑清零吗在二次庭审过后,我们能够看到的是,关于杜女士的网络舆论是一片大好,支持者也是越来越多了起来,支持的文章也是一大片,而杜女士也是各种表现着自己的胜利,面对这样的一种情况,有人认为这是熊磊有本事,你想要的都拿走谈到熊磊,她给我的感觉就是一个只懂索取不懂感恩的女子,在错换事件中,她的各种言论无不都是为了得到更多的利益,当初舅舅向她索要赔偿款时,她说其中的20万给律师了,但事后证明并没有,直理直气壮啃老,明目张胆抢房,熊磊如此嚣张,她的母亲脱不了干系提到熊磊此人,有人称她为啃老族,在没有发生错换事件以前,据说她一直是没有工作的,而且喜欢各种游玩与追星,甚至还跑到土耳其去追星,对此熊磊本人是不承认的,但是我们能看到的是,现在的她
张雨绮霸气护男友,硬刚芒果,评论区却翻车了文汤汤慢杨天真曾经问过张雨绮这样一个问题你为什么总是创造出一个机会,又把它毁掉?!而且你每次都是为了男人!现在,张雨绮粉丝再次把这个问题抛给了她。1事情起因是这样的今年8月份,张雨吴亦凡又叒急了,女子保护女子不是天经地义的事吗?文汤汤慢昨天最搞笑的评论莫过于718美竹革命,牛姐沉冤得雪!7月19日,吴亦凡澄清后,爆料还在继续,而且这次是直接上了证据上午9点,一个微博名为张丹三的女子发文说想想就很后怕,他也理想之城擅用权谋的赵显坤,他为什么比不上夏明?文汤汤慢若干年后,当苏筱回忆她在瀛海的这段时光,最后悔的居然是让自己的闺蜜当了下属!苏筱当上了改革小组的组长,徐知平不甘心,跟苏筱商量让赵鹏当副组长,苏筱的条件就是其余的人她自己选5年前吴亦凡就该黄了?此时成为极端反例谁之过,一文讲述始末文汤汤慢先从吴亦凡长胖说起!在2018年6月,上合组织国家电影节上,吴亦凡穿着绸缎上绣着龙的唐装,精神气特别好,眼睛里都透着光!仅仅一年后,他就胖成了这样!对于一个上升期顶流艺人,重蹈容祖儿覆辙?林志炫这次遇上的,是李响文汤汤慢谁都没想到,这次没有炒作,也没有预热,披荆斩棘的哥哥在霍尊和陈露沸沸扬扬的分手事件后,紧锣密鼓地拉开了序幕!为什么节目组这么低调,因为这次来的哥哥们都太牛了!他们中有被节目理想之城美强惨夏明,他对苏筱的算计,才刚刚开始文汤汤慢夏明精于算计又有深情人设?怎么可能,无论是从出身外貌家庭环境职业背景他都注定是美强惨,他不是个值得女人托付的人!剧中虽然一直在圆,但是漏洞百出!编剧高明的地方在于,让苏筱和理想之城被孙俪的成功学洗脑,黑化的吴红玫有错吗?文汤汤慢吴红玫心理的不平衡是一点点累积的!元旦这一天,她和小北本来想请苏筱吃饭,到了餐厅,小北拿出一把优惠券出来,和服务员在那数,说是9张优惠券换三份99元的套餐,结果服务员说不能为什么霍家郭晶晶家风这么好?三代当家主母都付出了什么?文汤汤慢最近,香港霍家第三代儿媳郭晶晶再度走进大众视野!东京举办奥运会,退役10年的郭晶晶被邀以裁判的身份参加,还是裁判的裁判如今霍家作为长子长孙的霍启刚担任香港体育协会暨奥委会副少女影后郭柯宇被耽误的十年不就是结个婚吗,多大点事?文汤汤慢1995年,姜文的阳光灿烂的日子上映,卖了五千万票房,是国产片冠军而排在第二的是红樱桃,卖了四千万,起了重要宣传作用的是它的海报,上面有一个女孩裸体的背影这个女孩就是郭柯宇理想之城为何只有许峰让人意难平?文汤汤慢许峰在瀛海是典型的文人经商,学问好,北大毕业的,遇上同村的赵显坤,这才有了后来的故事这两个人明显是惺惺相惜的,赵显坤直接让学法律的许峰当了自己的助理,许峰呢,也因为董事长的扫黑风暴不敢深扒,女性角色无一幸免文汤汤慢累计播放量高达14个亿,连续11天播放量日冠,全网讨论度关注度居高不下扫黑风暴为什么好看?因为影射现实触目惊心!这部剧总顾问是中央政法委委员秘书长,全国扫黑办主任陈一新且同