您当前的位置是:  首页 > 技术 > 企业通信 > 文摘 >
当前位置:首页 > 技术 > 企业通信 > 文摘 > 统一PaaS架构支撑IT应用开发敏捷化

统一PaaS架构支撑IT应用开发敏捷化

2017-02-15 13:49:01   作者:   来源:CTI论坛   评论:0  点击:


  我们正步入瞬息万变的信息时代,“快人一步”正成为企业的核心竞争力之一。如何让企业的业务创新和客户响应等快起来、敏捷起来?数字化重构是企业发展的必由之路,构建一个敏捷、高效的IT系统是最重要的基础。然而,当前业界主流的企业IT应用仍然以功能和流程作为核心来驱动的应用开发模式,不但成本高而且敏捷性很差,越来越难以为继,必须对IT应用开发的方法论和实现技术进行一场变革。
\
  传统企业IT应用开发模式面临挑战
  分段式的研发模式,业务上线周期太长
  目前,业界主流企业普遍采用基于瀑布式的研发模式,这种模式主要存在以下弊端:首先,业务需求是分段的,企业业务部门从企业运营的视角对IT提出需求,IT部门进行应用的开发;其次,IT应用开发是串行的,从需求分析、方案设计、编码测试到部署上线是按顺序开展的。一般一年只有1~2个版本上线,如果加上组织部门墙导致的开发流程断裂,上线周期会更长,一旦出现需求大量变更,周期就会严重拖延,甚至陷入交付的泥潭。
  这与互联网应用快速试错、快速上线以及开发运维一体化的DevOps模式形成了强烈的对比,为此企业的IT应用开发纷纷开始借鉴互联网的DevOps模式。但在实践中也发现,仅仅理念的转变是远远不够的,更需要有一个良好的架构和先进的开发模式来支撑。
  架构陈旧且高度耦合,牵一发而动全身,效率低下
  从企业应用的软件架构发展看,近十几年来,主要经历了从单体应用到SOA模式、再到微服务的发展过程。
  在单体架构中,应用核心的商业逻辑以及由其定义的服务、对象和事件都封装在不同的模块中,这些模块和组件整体打包和部署,高度依赖应用的语言和框架。单体应用的好处是项目初期构建非常快,但随着时间的推移、代码的不断膨胀以及人员的更换,会导致研发效率急剧下降。团队需要维持上百万行代码中的数以百计、千计的依赖关系,哪怕是很小的几行需求或者一个Bug修复,都会导致意想不到的问题发生。
  为了解决单体模式紧耦合、难以扩展的问题,出现了以服务为中心的SOA架构,将紧耦合的系统划分成面向业务的、粗粒度、松耦合和无状态的服务,服务之间通常通过企业服务总线(ESB)连接在一起。目前,绝大部分的企业IT架构是基于SOA模式的,但是从本质上讲这种模式还是中心化的,ESB变成整个系统的核心组件甚至成为瓶颈,不能把企业应用带到面向未来的云化方向。
  微服务是从SOA演进而来,更倡导服务的细粒度、分布式、扩展性和治理能力。每个微服务定义为独立、自包含和无外部依赖的应用程序服务,单个微服务可以独自开发特性、修改bug和升级,服务间无耦合关系。
  越来越多的企业认识到,在云时代要开发出Cloud Native(云原生应用),真正走向敏捷,微服务架构一定是首选。但同时微服务在运行和治理时带来了更大的复杂性,比如大量微服务之间的调用链管理和依赖管理等,这些复杂性由什么技术和平台承载呢?因此,由PaaS屏蔽复杂的资源分布和部署差异,向应用层提供统一的服务、微服务管理和运行框架就成为一种必然。
  PaaS技术选择碎片化,难以形成合力,形成新的烟囱系统
  当意识到PaaS平台的重要性后,企业中不同的部门近年来在这个领域加快了试点建设,但由于各部门立场不同,所做出的技术选择往往不统一,缺少统一的规划和章法。
  比如,有些企业开发部门希望业务创新要快,减少对环境的等待时间,希望选择像CloudFundry这样的技术,以具备较好的开发流水线、多语言支持和多种服务接入能力;而运维部门则希望各种应用对IT资源和对部署的依赖应该尽量统一、尽量标准化,这样整体运维(特别是跨数据中心和全球化运维)效率最好,所以他们倾向于选择以开源架构技术为代表的Kuberentes、DockerCompose /Swam等……由此,在构建新的开发平台解决业务敏捷的同时,又形成了新的烟囱系统,不同的开发架构和不同的部署模式形成了制约敏捷、高效的新瓶颈。
  统一PaaS驱动企业IT应用开发的变革
  由此可见,企业的IT应用开发是一个系统性的问题,涉及到流程、方法、架构和组织等多个关键要素。
  企业借助云计算走向敏捷的核心就是要引入PaaS平台来实现“以应用为中心”的自动化和分布化,统一的PaaS不仅在技术与架构上能有效支撑服务化以及微服务开发和治理,还能在开发流程和组织协同上起到关键的使能作用。
  PaaS层建设的基本原则必须以面向未来云原生应用(Cloud Native)架构的要求出发,同时充分考虑对企业现有SOA架构服务的兼容和平滑演进,从应用视角提供统一的PaaS平台层,解决应用的开发、部署和运行的管控与组织协同的一致性,从而实现开发敏捷,支持快速业务创新和快速客户响应。要实现这样的目标,我们认为PaaS的核心需要实现“3个统一”。
  统一的研发流程自动化,构建企业级开发流水线,实现应用开发态的敏捷
  打破传统研发模式下开发与运维之间的壁垒,实现真正的DevOps,必须要有自动化工具的支撑。在开发态引入流水线技术,实现从代码编写到编译打包、自动测试、部署、上线和升级等一系列活动全部自动化。流水线同时可以成为打通开发、测试和运维等不同部门之间的纽带和桥梁,部门间在流水线自动化驱动下完成高效协作。因为每个企业开发工具和开发习惯都不一样,所以PaaS开发流水线的核心是具备开放的生态接入能力和灵活的流程定制能力。
  统一的资源编排调度自动化,“以应用为中心”驱动资源的编排调度,实现部署态的敏捷
  通过PaaS的自动化技术实现开发、部署和运行态所有资源( 主机、网络、OS/DB/中间件)申请和调度的自动化,实现一致的DTAP(Development、Test、Acceptance、Production)环境的自动化、服务化供应,开发人员聚焦核心业务实现,随时自助申请,随时部署上线和升级,可节省40%以上非业务活动时间。同时,由PaaS对开发态和部署态的运行环境进行一致性管理,可以大大降低因此造成的业务故障。
  部署态的资源编排调度的核心是根据应用的SLA要求,实现跨数据中心内和数据中心间的资源高效分配和动态调整。高效不仅体现在调度的速度也体现为整体资源利用的最优化。
  统一的微服务治理框架,大规模分布化的治理和自动化运维,实现运行态的敏捷
  传统单体应用微服务化后,一个大型服务通常会拆解成数十个微服务,形成一个分布式的应用。相比单体应用,分布式系统引入了治理的复杂性,比如微服务间如何相互发现、相互通信访问,以及如何进行调用链的跟踪和问题定位。PaaS在分布式治理层通过引入统一的微服务治理框架,可以实现不同语言和不同技术堆栈实现的微服务间相互发现、路由、调用链跟踪和熔断等复杂功能的屏蔽,开发者只需聚焦业务逻辑的开发,无需关注分布式系统管理的复杂性,从而实现每个微服务团队快速独立开发和上线业务。PaaS微服务治理框架的另外一个核心是,要考虑对企业已有SOA架构的中间件服务的纳管能力,企业在这个领域已经积累的大量中间件服务不可能一夜之间都转型到微服务架构,因此,如何合理地构建一个中间件云,把这些服务接入到PaaS平台,最大限度地给开发者屏蔽实现上的差异是非常关键的。
  通过以“ 3 个统一” 为核心特征的PaaS平台,支撑IT应用的“开发态、部署态和运行态”的全自动化,这是敏捷的基础,也是PaaS发展的方向和目标。
  FusionStage PaaS平台:胜任企业敏捷转型的需求
  华为作为全球领先的ICT解决方案供应商,既有企业业务、运营商业务,也有消费者业务,业务覆盖170多个国家。华为自身的IT系统是极其复杂的,要面向全球客户、供应商、合作伙伴和员工等提供IT服务,涵盖60多个数据中心,超过1000种IT应用,业务流程高达上万个,每年涉及的新增需求和变更超过几万起,研发投入资源巨大。
\
  因此,PaaS平台既是华为面向客户提供的一块业务,也是华为自身走向敏捷运营、敏捷IT应用开发的基本要求。华为FusionStage PaaS平台正是基于这样的背景下进行开发的,其核心是围绕“统一的研发流程自动化、统一的应用资源编排调度、统一的分布式/微服务治理”来展开,以实现IT应用“研发态、部署态、运行态”的全流程自动化,支撑业务敏捷和运营敏捷。
  FusionStage PaaS平台正在帮助华为自身的IT系统从IT 1.0向IT 2.0跨越式演进,实现跨全球多个数据中心的IT全面云化。使IT应用可随时随地在华为全球8大区域的数据中心中进行部署和升级,实现平均每天数十次、全年累计几千次的自动化部署上线,将IT应用的整体上线周期从原来的数周时间缩短到了天级,成功实现了企业IT的敏捷和高效。
  华为会把FusionStage PaaS平台部署到华为企业云、德国电信OTC等合作伙伴的公有云上,让企业基于FusionStage PaaS平台来开发IT应用。
  FusionStage是通用的PaaS平台,提供基础的开发部署管理、服务运行治理能力和各种通用的IT公共服务。 这样企业就可以更加专注于领域业务,基于FusionStage PaaS平台快速开发行业专有的服务和应用,极大提升效率,实现IT敏捷转型。
  贾永利/文

专题