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

云原生实践带来的挑战

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

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

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

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

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

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

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

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

云开发平台的功能特性

云开发平台集成了阿里云 FC、SAE、ASK 三种 serverless 计算服务,在 VPC 基础设施之上,把众多中间件云产品按账户、产品线、应用、函数4个级别进行归类,设定共享级别,按需编排。通过业务语言的方式传达,大幅降低了开发者的学习理解成本,提供集成研发环境,进而降低使用集成云产品的难度,提升研发效能。

或者可以说,云开发平台是阿里云面向开发者的一个研发门面,由于创建编排的云服务都在开发者的主账号下,因此基于云开发创建的应用和用户存量系统是互联互通的,从这点上说云开发平台是一套开放的、集成的研发环境。

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

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

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

(1)函数型 IT 架构

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

(2)服务型 IT 架构

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

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

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

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

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

3. 支持被集成 Serverless 的 CICD 能力

基于传统应用研发和 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 应用迁移

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

  • 在云开发平台上创建一个“ SpringBoot 应用迁移方案(ASK)”应用。
  • 打开这个应用的 CloudIDE 环境,点击“开发部署”。
  • 在 CloudIDE 中,把存量系统的 src 目录和 pom.xml 拖到 CloudIDE 工程目录中。
  • 调整 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>

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

2. PHP 应用迁移

PHP 应用迁移方案步骤:

  • 在云开发平台上创建一个“PHP 应用迁移方案(SAE)”或者 “PHP 应用迁移方案(ASK)”应用;
  • 打开这个应用的 CloudIDE 环境,点击“开发部署”;
  • 然后,把存量的 PHP 项目文件拖放到 CloudIDE 工程目录下,就能完成迁移工作;
  • 提交代码并 Push ,然后就可以开始进行应用部署,部署成功后,云开发平台会生成一个临时域名出来,点开即可验证部署效果。

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

原文链接:https://developer.aliyun.com/article/780039?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

云原生应用架构转型不好做?阿里云让你一步到位!相关推荐

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

    云原生实践带来的挑战  阿里云云原生为企业提供了完善的容器服务.函数计算.微服务体系.中间件体系.每个服务都有伸缩性.弹性和组合性,通过产品选择或组合搭建,能轻松完成应用与运行环境解耦,和传统应用研发 ...

  2. 拥抱云原生,Fluid 结合 JindoFS:阿里云 OSS 加速利器

    作者| 王涛(扬礼).车漾(必嘫) 来源|阿里巴巴云原生公众号 什么是 Fluid Fluid 是一个开源的 Kubernetes 原生的分布式数据集编排和加速引擎,主要服务于云原生场景下的数据密集型 ...

  3. 拥抱云原生,Fluid结合JindoFS :阿里云OSS加速利器

    简介: Fluid 是一个开源的 Kubernetes 原生的分布式数据集编排和加速引擎,主要服务于云原生场景下的数据密集型应用.在 Fluid 上使用和部署 JindoRuntime 实现数据集的可 ...

  4. 【云原生】基于Kubernetes开发的阿里云ACK之可观测监控

    目录 Kubernetes监控类型 ACK监控体系 1.资源监控-云监控 2.日志监控-SLS 3.业务监控-ARMS 4.架构监控-AHAS ACK监控解决方案 Kubernetes监控类型 ACK ...

  5. 云原生Java架构实战 K8s+Docker+KubeSphere+DevOps(上)

    云原生Java架构 K8s+Docker+KubeSphere+DevOps 云平台 私有网络VPC VPC的子网计算 VPC的交换机 重要概念 容器化 docker概念 青云服务器 centos安装 ...

  6. 因云而生,全新视角看阿里云服务器硬件方升架构

    简介:方升架构作为新一代云服务器架构的典范,是阿里云云原生基础设施的最佳实践之一.阿里云结合云计算丰富业务场景需求,推出一系列自研服务器产品.部件及解决方案,包括高性能计算全栈解决方案.高性能存储和大 ...

  7. 光云科技快麦ERP正式入选阿里云原生合作伙伴计划,赋能企业“新基建”

    近日,杭州光云科技有限公司(股票简称:光云科技,股票代码:688365)与阿里云签订了"云原生合作伙伴计划协议",成为首批入驻的解决方案伙伴,阿里云解决方案伙伴具备自主解决方案,或 ...

  8. Go语言云原生与微服务(一)云原生架构

    Hello,我是普通Gopher,00后男孩,极致的共享主义者,想要成为一个终身学习者.专注于做最通俗易懂的计算机基础知识类公众号.每天推送Golang技术干货,内容起于K8S而不止于K8S,涉及Do ...

  9. 云原生基础架构的最佳状态,就是没有架构?

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 云原生基础架构是通向云原生时代的基石,对于很多架构师来说,上云之后,架构为什么成为了云原生架构而不 ...

最新文章

  1. 简单介绍基于Spring Boot的项目骨架使用
  2. RabbitMQ之Exchange分类
  3. mvc4 ajax url参数,MVC4.0中Ajax通过a标签向后台Action传递参数问题?
  4. Linux内核分析 - 网络[八]:IP协议
  5. 9-12 原生安装4
  6. CS106 错误拒绝访问
  7. 下载mono太慢怎么办?
  8. idea project settings在哪_IntelliJ IDEA如何对project的目录进行筛选显示?
  9. IDEA插件系列(46):PDF Viewer插件——PDF文档查看器
  10. matlab3维b样条曲线_MATLAB-3次B样条
  11. 区块链未来前景及运用领域
  12. 寸 金 难 买 寸 光 阴
  13. 淘宝代购系统、海外代购系统、代购小程序、APP的开发以及源码PHP前端源码
  14. openwrt 认证收费_在OpenWrt中安装Wiwiz实现portal认证
  15. 短地址短链接免费接口:缩短链接地址。可用于缩短链接场景,如:电子发票链接,促销活动链接,新闻文章链接等
  16. 监控相机IQ调试策略
  17. 双目视觉集合框架详解
  18. 对于模块化的一些见解
  19. 读后感:李敖先生北大演讲
  20. android intent 传递int参数,intent的getIntExtra步骤得不到值

热门文章

  1. docker 导入导出镜像
  2. Python可视化 | Matplotlib绘制圆环图的两种方法!
  3. Pandownload惊喜复活?这一次请你低调使用!
  4. 磁盘里竟然还有这个东西!多亏这个1.5M大小的神器工具发现了它
  5. 真香!微软将为Edge浏览器带来超好用的全新侧边搜索功能:无需跳转网页
  6. java poi 如何合并多个sheet 为一个sheet_Java POI组件实现多个Excel文件整合成一个多Sheet的Excel文件...
  7. 回溯法解决01背包问题
  8. SELECT COUNT语句
  9. html font后面跟多种字体
  10. Ocelot 集成Butterfly 实现分布式跟踪