伴随着产业和技术的发展,现代企业IT领域正在迎接来自业务和技术领域的变化与挑战,并积极利用新的技术和平台进行数字化转型。力争实现以高效率、高质量的生产方式,制造出更具个性化、智能化、服务化的产品,并且协同行业共同发展。现代企业主要业务软件系统与之前相比,主要面临三方面变化和挑战:
速度和敏捷性:当前业务的变化更加频繁,业务范围变化更快,业务上线时间(Time to market或者Time to ready)更短,要求快速的适应变化,快速反馈;
成本效率:需要降低OPEX和CAPEX(运营成本和投资成本),提高开发和运营效率,节约成本;
创新和核心竞争力的需求:要求业务系统快速迭代和交付,加快新技术、新想法到功能实现的交货期,进而真正做到技术领先,增加企业的核心竞争力。
与此同时,技术方面来看,近些年来IT技术发展越来越快。从软、硬件解耦、虚拟化到云计算、大数据,大规模分布式计算等等… IT技术由传统交易型向交互型转变,从简单的“购买”向着与合作伙伴一起“构建”业务软件系统转变。
以上业务和技术两个方面的变化和挑战,正在共同驱动现代企业软件尽快最大限度利用云计算和大数据平台的能力,实现基于云原生和微服务架构的应用软件和业务系统,通过稳健、递进式的转型,共同促进企业软件现代化。
在整个数字化转型的过程中,PaaS云原生平台和数据平台作为技术基础和基石,起到承上启下,至关重要的作用,是数字化转型的关键。有了技术成熟、可靠的PaaS平台,才能对下接入和管理控制各种IaaS计算、存储和网络资源;对上提供容器运行环境、多种开发语言和平台支持;并且提供各平台服务,最大程度地解放开发和运维人员,大大提高生产效率,使开发人员专注于核心业务程序的开发,而非将时间用于环境和配置。
在成功收购了Pivotal以后,VMware已经拥有了全球最领先的技术,提供安全、稳定、可靠、可扩展的PaaS云原生平台服务和解决方案。帮助企业定制和规划清晰的上云路径,提供健壮的企业级PaaS/CaaS平台,丰富和强大的CI/CD,DevOps等软件工具套件,并利用业界领先的最佳实践和方法论帮助企业对流程和文化做出变革,以适应上云后的一系列变化,助力企业以更灵活的姿态面对市场。
但是,强有力的平台和产品需要好的配套应用转型服务(AppTx-Application Transformation)才能发挥更大作用,帮助企业更加顺畅的实现企业应用的现代化和云原生应用的迁移。
1
企业为什么需要AppTX - Application
Transformation服务
现实世界中,采用新的云原生和微服务技术来进行企业应用系统转型并非易事。事实上,世界上绝大多数开发工程师都正忙于和工作在遗留的应用程序:这些产品和组件已经构建、运行,更新和维护了很长的时间。VMware的客户大都希望将传统的应用迁移到云端,但是这些客户通常都有自己复杂的遗留应用系统和产品组合,这些应用系统是紧耦合的单体应用,并且严重缺乏准确有效的文档。
为了将风险降至最低并确保合规性,大型企业和组织设计了多层次的人工流程进行控制。因此,企业应用系统软件的发布经常是漫长的周期(低频率的),时常需要依赖个人英雄救火;耗尽精力和繁复的大事件。
为了缩短发布时间、降低成本和提高运营效率,同时保持应用系统的安全性、弹性和合规性,现代企业需要逐步地进行应用系统的云原生应用转型和转化。伴随着云原生应用的转型过程,同时更新和引入自动化流程,将减少应用系统持续发布变更的痛苦和风险,同时很好地满足企业级需求。VMware Pivotal Labs的Application Transformation(AppTX)服务,正是为如上关注点而来。
2
VMware Pivotal Labs 云原生应用转型
Application Transformation(AppTx)的方法
VMware Pivotal Labs已经帮助很多全球大企业和组织踏上应用转型之旅(app transformation journey)。VMware Pivotal Labs AppTX的方法定义了渐进的步骤,逐步地提高企业应用云原生成熟度,增加软件开发生命周期SDLC自动化程度和提高企业团队成员的知识体系。
目标和关键结果(OKR = Objective Key Results)用以评估和度量云原生成熟度,自动化程度;并且在每一步骤中,企业人员技能被构建、提升和跟踪。目标(Objective)决定你想去哪里,关键结果(KR- Key Results)指标来衡量你向着目标方向的进展情况。
VMware Pivotal Labs提出了云原生应用转型的四个关键原则:
1、从小事做起:企业的大型应用系统可能包含成上千个应用程序,从一个业务和少数应用开始;
2、不断学习总结:从前面选中的少数几个应用开始,进行云原生应用的转换改造并总结编写对应的cookbook文档,进而用于后续更多的云原生应用转化落地;
3、逐步改造更大、更复杂的应用程序,把它们分解成更小的微服务应用;
4、尽量做到所有的事情自动化即automate everything;广泛使用TDD测试驱动开发、CICD持续集成与持续部署;
应用转型的几个阶段:
VMware定义一个原生云应用程序运行在一个Platform-as-a-Service(例如:Tanzu Application Service - TAS,原Pivotal Cloud-Foundry - PCF或者Pivotal Application Service - PAS)之上,并且能够进行水平和弹性伸缩。过去的几年中,VMware的客户已经将成千上万的应用程序运行在TAS的容器里,既有Spring/SpringCloud的现代Java应用、.Net核心系统,也有各类遗留应用系统。
云原生应用程序转型的三个阶段:
App Re-platforming(应用平台化)
Modernization(应用现代化)
组织架构的转型。
使用云原生应用15要素(15 technical factor)来衡量和评估云应用系统的成熟度,在各个阶段不断地提高。
3
如何进行云原生应用转型
Application Transformation(AppTx)
VMware Pivotal Labs通过在全球大量客户云原生应用转型实践中,不断总结和抽象出最佳实践,帮助企业进行应用转型。
Step 1: Apps Re-platforming 应用上平台
Select Apps for Re-platforming挑选应用
基于技术复杂度、业务关键度和经济价值来对应用程序排列优先级,挑选首批5个左右应用程序进行Re-platforming。
Re-platform Applications 应用上平台
第一阶段将上面选择的应用程序集迁移到PaaS平台上运行,完成云原生第一步。通过对于OKR(Objective Key Results)和Timeline的定义和跟踪,快速迭代进行应用改造和上平台。
Work Tracks 跟踪
跟踪应用上平台的过程;跟踪首批应用上平台过程和转化;生成和记录首批应用上平台的经验和宝典。
Automate Testing 测试自动化
自动化单元测试、集成测试、验收测试和冒烟测试来减少手工测试。
Continuous Integration 持续集成
Step 2: Modernize Applications应用现代化
分解单体应用成为微服务应用Decompose Monoliths into Microservices单体应用被分解成轻量级的微服务,可以在云上水平伸缩。巨石应用可能跨越多个子系统和数据源,甚至是若干跨网络部署服务器和主机后端。巨石应用可能会需要重写、重新设计才能很好的运行在云端。VMware使用一个循序渐进的过程, 建立一个high-level的领域模型和user story;尽量重用已有代码并根据需要进行重写。
领域驱动设计Domain-Driven Design
VMware Pivotal Labs推荐使用领域驱动设计(DDD)和事件风暴作为实践方法去定义和设计分解新的微服务边界上下文。
分解Slicing
建立领域模型之后, 巨石应用(Monolith)分解为为若干个垂直功能部分后,可以逐步搬迁到PaaS平台上。
Step 3: 分解步骤Decomposition Steps
VMware Pivotal Labs建议步骤序列:
1、定义目标和关键结果(OKR);
2、事件风暴(event storming)App和标识边界上下文(bounded Context);
3、从核心领域中选择几个短的领域事件流(domain event flow);
4、用C4模型(包括context,container,component,code分析)来识别一个垂直功能和相应组件和上下文,直到user story;
5、头脑风暴目标架构来实现垂直切片;
6、执行SNAP快速分析,得到对应功能组件满足12要素的分数;
7、根据上面步骤,创建backlog,得到已经排好优先级顺序的用户故事user stories;
8、将用户故事user stories映射到MVP(minimized viable product)或者release;
云原生应用体系的构建:微服务、容器服务、DevOps、CI/CD结合共同助力。
在帮助企业进行数字化转型的过程中,平台产品和厂商需要致力于为企业提供全方位的云服务与解决方案,提供PaaS/CaaS平台、顶级开源微服务开发框架(譬如Spring,SpringBoot,SpringCloud,Steeltoe等)支撑、DevOps开发工具等;还包括完备的数字化转型和敏捷开发最佳实践服务。VMware在上述领域是世界顶级的开源软件贡献公司和绝对技术引领者。
作为Cloud Native云原生概念的提出者、领域的技术先驱与倡导者,WMware不断大力推动Spring开源社区和生态,促进和提供微服务系统构建的平台,框架和工具,Spring Boot、Spring Cloud就是最强大框架之一。VMware云原生平台结合Spring框架按照三阶段架构持续发展,支持从开发、测试到生产的云原生应用全生命周期。除了云原生平台的演进外,VMware的大数据及数据平台Greenplum和Gemfire也在与时俱进,支持最新的机器学习等新兴企业级应用。
基于Spring构建的云原生应用系统,结合云原生平台,加之完整的现代云原生系统构建方法论和最佳实践,必将助力现代企业更加顺畅地完成数字化转型之路。
关于作者
葛宁伟
VMware的MAPBU资深平台架构师。在软件开发、架构设计方面有超过15年的工作经验,同时也是金融、新零售、汽车等行业的资深专家。加入Pivotal后便一直致力于云原生平台及应用现代化相关的技术与方法论的推广与实施。
领取专属 10元无门槛券
私享最新 技术干货