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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: Gartner于2019年发布报告表示:云原生时代已经到,在未来三年中将有75%的全球化企业使用容器化的应用。云原生具有诸多优势,如系统弹性带来用户体验提升、研发效能提升、低成本运维或免运维,以及即插即用按量计费的计算成本等,这些优势使得创新团队可以快速将新想法推向市场,这正是初创公司愿意使用云原生来颠覆传统行业的原因。从传统研发模式过渡到云原生时代,怎么解决云原生集成研发使用的"最后一公里"问题。

云原生实践带来的挑战 

阿里云云原生为企业提供了完善的容器服务、函数计算、微服务体系、中间件体系。每个服务都有伸缩性、弹性和组合性,通过产品选择或组合搭建,能轻松完成应用与运行环境解耦,和传统应用研发模式具有较大差异。从传统研发模式过渡到云原生时代,抑或传统应用和云原生长期并存过程中,云原生应用的实现、集成、部署、运维都面临较大的挑战。

1.存量应用与云原生应用长期并存的整合问题


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

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

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

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

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

与云原生跨代优势相比,这三点只能算最后一公里的问题。今天,阿里云推出的云开发平台正在解决云原生Serverless集成研发使用的"最后一公里"问题。

 

云开发平台的功能特性

   云开发平台集成了阿里云FCSAEASK三种serverless计算服务,在VPC基础设施之上,把众多中间件云产品按账户、产品线、应用、函数4个级别进行归类,设定共享级别,按需编排。通过业务语言的方式传达,大幅降低了开发者的学习理解成本,提供集成研发环境,进而降低使用集成云产品的难度,提升研发效能。或者可以说,云开发平台是阿里云面向开发者的一个研发门面,由于创建编排的云服务都在开发者的主账号下,因此基于云开发创建的应用和用户存量系统是互联互通的,从这点上说云开发平台是一套开放的、集成的研发环境。

    云开发平台只集成云原生Serverless计算服务,而Serverless计算的免运维特性,使资源投入更聚焦在研发上,让应用从创建到实现运营都能在云开发平台上完成。其中FC是函数形态的计算服务,SAEASK是服务形态的计算服务。云开发平台具有以下特性:

 

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

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

1)函数型IT架构

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

 截屏2020-11-29 下午1.59.33.png

2)服务型IT架构

截屏2020-11-29 下午1.59.45.png

 当前大部分应用都是服务型IT架构,如SpringBoot应用、PHP应用,这种架构模式可以很好的承接当前存量应用的云化迁移。基于阿里云MSE(微服务引擎),也适合微服务化架构的应用。这种架构支持按小时计费的模式,即开即用,相对于函数型IT架构,更适合稳定的大流量业务场景。

 

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

截屏2020-11-29 下午2.00.15.png

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

 

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

当前云原生还处在商业导入期。企业用户一般会先用一些适合Serverless的场景小试牛刀,这时创建的Serverless一定不是孤立的应用,它需要访问存量的数据库、中间件服务以及BPaaS中台功能。因此与存量系统的互联互通是Serverless推广应用的首要条件。云开发平台项目一开始就考虑到这个特性,把自己定位为工具,不自建容器。由用户授权,云开发平台支持Serverless应用在用户的账户空间中完成CICD,用户可以选择部署在存量应用所在的VPCVSwitch上,因此,Serverless应用和存量系统、存量数据库、中间件服务的交互畅通无阻。      

 

3.支持被集成ServerlessCICD能力

基于传统应用研发和Serverless应用研发长期并存的考虑,Serverless研发需要和ISV本地研发模式相兼容,只有切入到ISV当前的场景中,才有机会引导ISV、开发者到云开发模式当中。云开发平台当前提供了三个层级的使用方案:

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

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

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

对于有研发体系的后两者,通过提供POP接口,支持ISV进行集成,和ISV现有研发体系无缝融合。

 

4.团队在线协同特性

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

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

 

5.基础架构平台能力

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

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

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

 

集成案例介绍

 

  说不如练,云开发平台就在你眼前:https://workbench.aliyun.com,以下将简单介绍SpringBoot应用、PHP应用如何迁移到Serverless计算服务当中。

 

1.SpringBoot应用迁移

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

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

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

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

  4)调整pom.xml, 增加两个约定配置:

 <properties>

      <applicationName>${project.artifactId}</applicationName>

       <spring-boot.version>2.2.6.RELEASE</spring-boot.version>

 </properties>

  ...

  <build>

    <finalName>${applicationName}</finalName>

    <plugins>

      <plugin>

          <groupId>org.springframework.boot</groupId>

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

          <version>${spring-boot.version}</version>

          <configuration>

              <!--需要替换您的springboot启动类-->

              <mainClass>com.alibaba.sca.temp.web.Application</mainClass>

              <layout>ZIP</layout>

          </configuration>

          <executions>

              <execution>

                  <goals>

                      <goal>repackage</goal>

                  </goals>

              </execution>

          </executions>

      </plugin>

    </plugins>

     ...

   </build>

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

  完成Springboot应用到Serverless的迁移,让存量应用快速具备云开发CICD的特性,以及Serverless应用的所有优势。

 

2. PHP应用迁移

PHP应用迁移方案步骤:

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

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

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

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

 

WordPress是社区比较热门的由PHP实现的建站平台,提供所见即所得的页面编辑发布功能。云开发平台支持一站式部署WordPress,开发者可以依据https://workbench.aliyun.com/activities/k8s中的描述部署,充分体验一下WordPress部署过程,感受PHP应用的迁移过程,还能机会获得限量版精美礼品哦!

 

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
4天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
24 5
|
5天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
19 5
|
5天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
5天前
|
消息中间件 缓存 Cloud Native
云原生架构下的性能优化实践与挑战####
随着企业数字化转型的加速,云原生架构以其高度解耦、弹性伸缩和快速迭代的特性,成为现代软件开发的首选模式。本文深入探讨了云原生环境下性能优化的关键策略与面临的主要挑战,通过案例分析,揭示了如何有效利用容器化、微服务、动态调度等技术手段提升应用性能,同时指出了在复杂云环境中确保系统稳定性和高效性的难题,为开发者和架构师提供了实战指南。 ####
18 3
|
5天前
|
运维 Kubernetes Cloud Native
深入理解云原生架构:从理论到实践
【10月更文挑战第38天】本文将引导读者深入探索云原生技术的核心概念,以及如何将这些概念应用于实际的软件开发和运维中。我们将从云原生的基本定义出发,逐步展开其背后的设计哲学、关键技术组件,并以一个具体的代码示例来演示云原生应用的构建过程。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和实操指南。
|
5天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
19 3
|
5天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####
|
6天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
4天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
5天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
16 1
服务架构的演进:从单体到微服务的探索之旅

热门文章

最新文章