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

对企业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平台规划和建设。

周生如故漼时宜年少时不要遇见太惊艳的人,否则余生皆难安电视剧周生如故终于结局了,而这部剧给我们带来的意义并非一星半点,如果你细细品尝,你就会发现,这部宝藏神剧蕴含了诸多哲理。当这部剧正在热播的时候,身边的朋友都跟我说有多好看多好看,但走高速还是国道更省钱?算一笔账才清楚,差距真不小引言有了车以后,出行更加便利,自由。有些人喜欢自驾游,开车去往目的地的同时,还可以欣赏沿途风景。如今生活节奏加快,空闲时不妨慢下来,去试着发现生活中的美。除了自驾游,平时出行办事,周生如故全剧唯一一个可以救漼时宜的人,为何选择放弃?电视剧周生如故终于结局了,而这部剧最大的遗憾莫过于漼时宜的死。然而,漼时宜原本可以不用死的,有一个人完全可以救她,但他最后却选择了放弃!他叫杨邵,周生辰和漼时宜曾经多次帮助过他,但隋唐演义秦琼是主角,武功能耐不比别人差,却为啥排的靠后?关于隋唐演义这部古典传奇小说,想必大家都知道的,不仅仅是书本,连环画,连评书和电视剧都有所演绎,但是最出名的还是我们的评书大师单田芳老先生说的那部书了,小时候中午一放学,回家第一件有些能力,只有读书能给你网红法考老师罗翔有一段视频,谈到自己看书的时候会把手机关上。大多数人不会为了读书而关机,一是觉得不需要,二是哪怕关了手机,过几分钟就会想,是不是有人找我?我不会错过什么重要的信息吧杨紫穿婚纱做起代言,被人吐槽用替身,网友看就行,别问人红是非多,像偶像小生蔡徐坤肖战顶流花旦杨幂杨紫等就是从出道以来就被黑到现在的,做什么事情都会被大众评判一番,而90后花旦杨紫最近就被网友热议了一番。据悉,是因为婚纱代言的事情。杨封神榜里神仙们骑得珍禽异兽现实中有没有呢?姜子牙的是真有喜欢看仙侠鬼怪之类题材影视剧和小说的朋友们一定都读过和看过那部经典的封神榜了,此小说近些年也被频繁的改编搬上银幕,而当年我们小时候看的比较老版的封神榜时,则是被里面的比较恐怖的画面妈宝男朱雨辰的幻灭史他的每一段感情我都知道,但我都是会干扰的我儿子说了,我结婚百分之五十是为了你我的同事和周围的朋友都知道,我是用整个生命去对待我的儿子的这些言论皆是朱雨辰的妈妈在我家那小子中亲口所言小龙女吴卓林现实版被嫌弃的一生小龙女吴卓林现实版被嫌弃的一生文烫嘴1999年,吴绮莉挺着自己怀孕数月的肚子召开了记者发布会。她向娱乐圈投下了一枚重磅炸弹。她向媒体宣称,自己腹中孩子的父亲正是功夫巨星成龙。众人哗韩红4段情史,和王菲爱过同一个男人,为何50岁仍未婚未育?韩红,一个大爱无疆的歌手,潜心做公益的她却因公益而遭到了非议,掀起一阵舆论热潮。7月,当河南遭受严重的暴雨侵袭时,韩红带着团队筹资3000万,第一时间驰援河南。本来是善意的举动,却80岁登上舞台,被何炅称作奇迹的陈爱莲离世,她是谁?11月21日凌晨,鱼美人陈爱莲永远谢幕。弥留之际,陈爱莲要求家人为她换上了春花江月夜的演出服。一生奉献给舞蹈的她,就此了无遗憾的离开了人世,享年81岁。生命不息,舞蹈不止。这是陈爱
我和我的父辈哪一单元最好看?我和我的父辈以革命建设改革开放和新时代为历史坐标,讲述了新中国成立前后各个时期领域的开拓者奋勇向前的故事,再现中国人努力拼搏的时代记忆。10月1日,在上海举行千人观影活动,吴京章子女星杀手杨子的暴富发家史,和他娶过的两个神级女人杨子的暴富发家史1975年,杨子出生河北省一个并不富裕的家庭,父母都是农民,爷爷也是无名之辈然而如今的杨子,因为家人喜欢滑雪,他就在家里建一个超大的滑雪场。家里更加金碧辉煌,奢华无杨幂道歉?漫画腰挑战可能会导致腰椎过伸,粉丝的回应让人脸红杨幂漫画腰挑战女神杨幂看到网上一个有难度的动作漫画腰,于是进行了模仿,杨幂的模仿迎来了许多人的点赞,大家纷纷赞扬杨幂的身材好。35岁的杨幂,还生了孩子,能够保持这样的身材,那真的是郑爽被质疑患严重精神病?开庭被要求做精神鉴定她试图自杀郑爽出席抚养权案庭审根据相关媒体报道,知名女星郑爽与张恒抚养权案在美国丹佛开庭,当地时间22日,郑爽已经去到美国,并居住在丹佛一间公寓里。根据她自己描述,有效签证为6个月。而关于她廖启智突然病倒!连周润发都要叫他大哥,如今患癌入院情况危急廖启智的上位史1954年4月,廖启智出生于香港,由于看到周润发的成功,廖启智决定报考无限艺员培训班,第一次报考失败了,但是廖启智并没有放弃。终于在第八期的培训班开班的时候,报考成功李亚鹏35亿项目失败!赵薇损失严重,深夜表白王菲爱她的缺点李亚鹏35亿丽江雪山项目根据相关媒体报道,随着李亚鹏被法院判赔4000万元后,将李亚鹏推至风口浪尖,虽然律师不断表示,案件还没用完,李亚鹏还可以上诉,但圈内外对李亚鹏的期望已经降到39岁贾玲成全球票房最高女导演!从没拍过电影,凭什么一剧封神?39岁贾玲封神,成全球票房最高女导演根据相关媒体报道,3月20日,你好,李焕英票房突破53亿,超越了神奇女侠的全球票房,成为了全球影史上,票房最高的女导演,没有之一。然而,故事远远亚鹏总李亚鹏败家史,和他背后的4个神级女人亚鹏总李亚鹏如果你曾经去到丽江雪山艺术小镇,你会亲切地听到李亚鹏的员工亲切地称呼李亚鹏为亚鹏总。并且在外人的面前,员工在介绍项目的时候,也会左一句亚鹏总,右一句亚鹏总,言语之中,充惋惜!又一知名顶流女星宣布离婚,结束了长达11年的婚姻吉濑美智子宣布离婚根据相关媒体报道,4月7日,又一知名顶流女星宣布离婚,她发布离婚消息称未来不管是站在演员的角度,还是站在母亲的角度,都会努力回应大家的支持。资料显示,她与圈外老公罕见!公安部点名男星任豪关于日本核废水处理,切莫胡作非为男星任豪的美好梦想日本核废水事件的处理决定轰动世界,娱乐圈内许多知名艺人纷纷避而远之,因为涉及的问题太复杂了,一般的人都不愿意趟这趟浑水。专业的事情,交由专业的人去处理,作为公众人武汉,全城核酸检测层层防御不敢放松,坚守400多天,自去年5月以来始终零感染的武汉市,破防了。自7月20日南京禄口机场出现确诊病例以来,到8月2日,疫情蔓延至8省15市,感染者已达200多人。而7月