云原生应用架构转型不好做?阿里云这个平台让你一步到位!

简介:Gartner于2019年发布报告表示:原生时代已经到,在未来三年中将有75%的全球化企业使用容器化的应用。原生具有诸多优势,如系统弹性带来用户体验提升、研发效能提升、低成本运维或免运维,以及即插即用按量计费的计算成本等,这些优势使s v b P i得创新团队可以快速将新想法推向市场,这正是初创公司愿意使用云原生来颠覆传统行业的原因。从传统研发模式过渡到云原生时代,怎么解决云原生集成研发使用的"最后一公里"问题G & 4 H r [ 0 A

云原生实践带来的挑战

阿里云云原生为企业提供了完善M ^ N的容器服务、( 0 ? j 5 U )函数Z @ u j w J q ( &计算、微服务体系、中间件体系。每个服务都有伸缩性、弹性和组合性,通过产品选择或组 X L * $ 合搭建,能轻松完成应用与运行环境解耦,和传统应用研发模式具有5 n 3较大差异。从% @ ] .传统研发模式过渡到云原生时代,抑或传统应用和云原生长E ; h ! 4 = m期并存过程中,云原生应用的实现、集成、部署、运维都面临较大的挑战。

1.存量应用与云原0 B F K r e f生应用长期并存的整合问题0 ~ 1 *

虽然云原生可以覆盖绝大部分应用场景,甚至以往比较难d E 1解决的问题在云原生下都可迎刃而解,如u ? ~ A j m营销场景的应用。但有些应用场景在云原生下并无决定性优势,且存在迁移成本,加之传统应用在系统架构上的约束,这些将导致存量传统应用将和云原生应用长期并存。如何整合这两种应用的研发链路,以及基础设施层面的互联互通,是云原生实践带来的一个挑战。

2.研发环境的成熟度问题

云原生新应用的实践或存量应用的云化,不仅仅是基础设施和平台的变化P t D = t v,在架构设计、I ( j e ; d n V N开发方式、测试联调、部署维护等各阶段和各方面都要基于云的特点做出相应调整。传统线下IDE工具链将无能9 j L y d为力,在DevOps这条工具链上,需要一个集成度高、操作路径短的研发环境。

3.研发模式、组织阵型与云原生的适配问题

云原生通常以微服务架构进行服务开发,函数计算更细粒度到函数级别。松耦合的架构# U )方式会减轻因需求变更导致的系统迭代成本,并加快交付速度。微服务使得单个服务的开发团队更小,也更y x & % +加独立,这种松耦合+独立小型的团队使得持续更新和敏捷协作成为可能。在这种情况下,云端出现的问题解决会更突出,在线协作将比线下交流会有更高的效能。

与云B M k Q Y T H原生跨代优势相比,这三点i r J Q d H s只能算“最后一公里”的问题。今天,阿里云推出的云开发平台正在解决云原生Serverless集成研发使用的"最后一公里"问题。

云开发平台的功能特性

云开发平台集成了阿里云FCu e 4 0 k ]、SAE、ASK三种y B _serverless计算服务,在VPC基础设施之上,把众y x :0 R g [ K v x中间件云产品按账户、产品线、应用、函数4个级别进行归类,设定共享级别,按需编排。通过业务语言的方式传达,大D Q幅降低了开发者的学习理解/ ? @ s k d成本,提供集成研发环境,进而降低使用集成云产品的难度,提升研发效能。或者o t 5 可以说,云开发平台是阿里云面向开发者的一个研发门面x r 6 d 9 @$ k o _ q D I b于创建编排的H a , I s l云服务都在开发者的主账号下,因此基于云开发创建的应用和用户存量系统是互联互通的,从这点上说云开发平台是一套开U ` j f K B h放的、集成的研发环境。

云开发平台只集成云原生Serverless计算服务,而. . A X qServ{ ( O d o `erless计算的免运维特p A F A @ R k性,使资源投入更聚焦在研发2 U Y M Y Y上,让应用从创建到实现运营都能在云开发平台上完成。其中FC是函数形态的计算服务,SAE、ASK是服务形态的计算服务。云开发平台具有以下特性1 U R

1.IT架构覆盖绝大多数应用场景

1 | A F用户提供开箱即用b ( 0 2 K . ; 1的基础设施服务,云开发平台聚焦于三种通用的IT架构:1)函数型IT架构;2)服务型IT架构;3)函数、服务混合型Ix U V X IT架构。这三种IT架构基本能涵盖当前适合云原生的所有应用场景。

1)N k @ , s + Z函数型IT架构

这种架构能支持大部分Q * X a移动应用,因为按调用次数计费,所以可以“0”费用启动项目,适合大部分初创团` k L z队的应用场景、企业静态站点场景,以及峰谷流量明显的应用场景,比如营销活动。Serverless的弹性特B A 8 v L } .性,减少了扩缩容的人力成本和计算成本。

云原生应用架构转型不好做?阿里云这个平台让你一步到位!

2)服务型IT架构

云原生应用架构转型不好做?阿里云这个平台让你一步到位!

当前大I q O部分应用都是服务型IT架构,如SpringJ ? V g . o w 5Boot应用、PHP应用,这种架构模式可以很好的承接当前存量应用的云化迁} f H F b U移。基于@ W x ,阿里云MSE(微服务引擎),也适合微服务化架构的应用。这种架构支持按小时计费的模式,即开O u w f _即用,相对于函数型IT架构,更适合稳定的大流量业务场景。

3)函数、服务混合型IT架构

云原生应用架构转型不好做?阿里云这个平台让你一步到位!

混合型IT架构,充分利用函数型Serverless、服务型Serverless各自的优势,端J W p D H侧接入采用函数计算,按调用次数计费,以及快速敏捷的弹性伸缩能力O z d h $轻松支持各种峰谷流量。而服务型Serverless,可以组合各T y p l 3 J ; ! /种中间件服务,形成高性能、弹性灵活的微服务中台系统,可以支持当前主流复杂的应用场景。

2.支持与存量系统的互联互通

当前云原生还处在商业导入期。企业用户一般会先用q W ^ x K _, | e ^ K ; U z [些适合Serverless的n O r S { r : Q场景小试牛刀,这时创建的Serverless一定不是孤立的应用,它需要访问存量的数据库、中间件服务以及BPaaS中台功能。因此与存量系统的互联互通是Serverless推广应用的首要条件。云开发平台项目一开始就考虑到这个特性,把自己定位为工具,不自建容) A v o z Q (器。由用户授权,云开发平H + g M台支持Serverless应用在用户的账x _ l }户空间中完成CICD^ c `,用户| e p可以选择部署在存量M , ! ; . A Z h应用所在的VPC、VSwitch上,因此,Serverless应用和存量系统、存量数据库、中间件服务的交互畅通无阻.

3.支持被集成ServerlD p O = b M t less的CICD能力

基于传统应用研发和SY 9 1 ververless应用研发长期并存的考虑,Serverless研发需要和ISV本地研发l 3 F ) ` I模式相兼容,只有切入到ISV当前的场景中,才有机会引导ISV、开发者到云开发模式当中U r P z H Z。云开发平台当前提供了三个层级的使用方案:

对于新手开发者,云开发平台提供4 k )了一个包括创建、实现、测试、构建、部署全部环节的集成研发环境,支持一站式实现Serverless应用;

对于有研发体系的ISV,研发、测试在本地完成。云开发平台和ISV的分工界面在代码仓库Codeup上,云开发平台提供全套CICD功能,开发者提交代码到Codeup上后,CICD功能、资源编排都交给云开发平台;

对于有研发体系并且有CI体系的ISV,提供基础设施的编排以及CD功能。

对于有研发体系的后两者,通过提供POP接口,支持ISV进行集成,和ISV现有研Z ~ y v o U [ g r发体系无缝融合。

4.团队在线协同特性

受疫情影响,上半年大家都体验了远程办公的模式,更有报道称,美国的公司员工将J ] q g = U 7 z有50%永久远程办公。可以预见,在未来以云原生应用为主的研发模式下,远程办T W C a C L ^公将是常态,在线编程、在线测试联调、在线集成部署都在CloudIDT M vE中完成,团队在线协同功能是云开发平台的重要特征之一。

企业、团队、开发者角色的权限控制体系,加上Cloud-Nati Q . / #ve的集成研发环境,组成了云开发平台在线协同功能特性。Serverless的编程流畅性,测试联调、构建部署一站式体验将在CloudIDE中持续打磨。

5.基础架构平台能力

云原生一个重要的特征是微服务化,继而开发团队更小更独立。但前提是要有一套统一框架和统一标准,小团队才能l A E v g独立去迭代业务逻辑。这套框架、标准,以及基础类库需要体现在微服务v W T ? 1 o o i的整个研T 2 . (发过程当中。

另外微服务化后,F { o可以抽象出更多的通用能力。传统上这些通用功能会通过SDK提供出来,但在云原生环境下,这些通用能- 8 ^ Q + %力可以直接部署为服务,函数级能力可以部署于函数计算,提供函数级通用服务;模块级能力可以通过容器方式部署,向外提供模块级通用服务。

云开发平台充分考虑到这一云原生研发模式的特征,提供了应用级解决方案,当前支持静态定义。后期将支持动态生成,基于一系列基础框架、基础类库,像活字印刷一样组合成为某一场景的应用模板,开发者将在其n I L ^ _ r上专注^ p % i 9 s * z /实现业务逻辑。函数级通用服务、模块级通用服务的生产、安装正在实现当中,将很快发布上线。

集成案例介绍

说不如练A ] l M [ ; x,云开发平台就在你眼前: 阿里云-云开发平台 以下将简单介绍SpringBoot应用、V M rPHP应用如何迁移到Serverless计算服务当中。

1.SpringBoot应用迁移

对于存量系统的迁移,云开发平台已经上架了FC、SAE、ASK的各种架构形式的迁移解决方案,且还在不断丰富当中。Springboot迁移方案步骤:

1)在云开发平台上创建一个“SpringBoot应用迁移方案(ASK)”应用;

2)打开这个应用的CloudIDE环境,点击“开发部署”;

3)在CloudIDE中,把存量系统的src目录和pom.xml拖到CloudIDE工程目录中;

4)调整pom.xml, 增加两个约定配置:v p Y F I . M O

<properties>

<applicationName>${prog [ s |ject.artifactId}</applicationName>

<spring-boot.version>2.2.6.Rk z ) m k d e * ELEASE</spring-boot.version>

</properZ s g sties>

<build>

<fi3 2 j O , TnalName>${applicationName}</final0 . # % n *Name>

<plugins>

<plN Q .ugin>

<1 & w s zgrou0 , y V F =pId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<version&Y . y O @ cgt;${spring2 - ^ ~ V I C-boot.version}</version>

<configuration>

<!--需要替& n # + - } NU A Z u . } w您的springboot启动类-->

<mainClass>com.B B C O u [ 6 =alibaba.sca.temp.web.Application</} k J ? o = 3mainClass>

<layout>ZIP</layout>

</configuration>

&T , h y B (lt;executions>

<execution&g= 5 Rt;

<goals>

&E 9 g / u Blt;goal>repackage</goal>

</goals>

</execution>

</executions>

</pluC s Qgin>

</plugins>b / D C x 5 h b P;

</build>

5)提交修改的代码,然后构建部署进行验证,完成迁移工作。

完成Springboot应用到Sed _ ! f U YrverleH ( Uss的迁移,让存量应用快速具备云开发CICD的特性,以及Serverless应用的所有优势。

2. PHP应用迁移

PHP应用迁移方案步骤:

1)在云开发平台上创建一个“PHP 应用迁移方案(SAE)”或者 “PHP 应用迁移方案(ASK)”应用;

2)打开这个应用的CloudIDE环境,点击“开发部署”;

3)然后,把存@ 4 2 ? s i量的PHP项目文件拖放到CloudIDE工程目录下,就能完成迁移工作;

4)提交代码并Push,然后就可以开始进行应用部署,部署成q g @ N A G 4功后,云开发平台会生成一个临时b % X B (域名出来,点开即可验证部署效果。

作者:霸道网管

本文为阿里云原创内容,未经允许不得转载