EDAS 4.0 助力企业一站式实现微服务架构转型与 K8s 容器化升级
作者:安绍飞
审核 &校对:营火
编辑 &排版:雯燕
前言
近年来,企业的数字化随着互联网的普及发展越来越快,技术架构也是几经更迭,尤其是在线业务部分。最开始企业的需求就是将业务尽可能在线化、线上化,产生了早期的在线业务应用架构,即单体应用,主要就是由 Web 应用中增加业务逻辑及后端数据存在数据库。
随着在线业务的增加,以及更多的访问增长,发现单体应用已经支撑不了业务了,进而逐步演进到分布式应用。同时,前端加上了负载均衡来承接日渐增长的请求,中间也引入了更多消息、缓存等中间件和数据库。
随着云计算的发展演进到云原生时代,企业的应用也开始面向云进行容器化、微服务化的构建,在这个过程中,就带来了和之前阶段不同的变化,抽象来看主要是应用的开发设计、应用交付、线上运维方面的变化。
云原生应用服务的新诉求
在云原生应用日益成为主流的技术架构下,云原生应用如何更好的利用云服务,实现面向云服务的架构设计、让业务更敏捷的研发,快速的联调验证就尤为重要。这就要求平台可以提供一站式的 PaaS 产品来进行支撑。
1)首先是开发设计:从原来的层次化/模块化单体架构,演进到全面的微服务化,使用 SpringCloud、Dubbo、Servicemesh 这一些技术栈来构建微服务,那这个过程中,研发人员需要进行面向微服务的架构设计、测试人员需要面向微服务架构设计测试用例,编写实现自动化测试、同时随着环境上云,也要求着开发环境与云端环境能够实现联通调试。
2)接着是应用交付:从之前的虚拟机 &批量脚本来完成部署交付,到通过容器、K8s 等技术实现通用的标准化交付,这个过程中,也出现了一些新的需求,比如批量的通过应用模板来快速部署交付、以及通过应用跨集群来实现多场景的管理交付。
3)第三部分是线上运维的变化:从原来的虚拟机维度运维,演进到容器集群维度的运维,需要有更高的视角来帮助企业的开发运维同学,这里我们提出鸟瞰式运维理念,通过应用视角鸟瞰 K8s 所有资源,运维管理的不再是单独针对 Deployment、Service、Ingress 这些 K8s 原子资源进行,而是鸟瞰式的统一监管控实现运维。
EDAS 4.0 全面升级 &ADD 1.0 重磅发布
针对上面提到的生命周期三个阶段新场景演进产生的新诉求,EDAS 正式发布了 4.0 版本,新增多集群应用管理、微服务 API 管理与测试、端云联调 3.0 等新能力。同时重磅发布新产品 --- 云原生应用开发设计平台 ADD v1.0,大大提升云原生应用的开发效率。
接下来将为大家逐一详细介绍。
云原生应用设计开发平台 ADD 1.0 发布
针对开发设计阶段的需求,云原生应用设计开发平台 ADD 这个产品应运而生。ADD 产品的设计初衷就是为了提升企业在云原生应用开发设计阶段的工作效率,提高生产力。它有 6 大特色:
可视化应用架构设计:帮助企业方便的沉淀与维护原来在线下白板上的架构讨论设计;
前端网页应用拖、拉、拽设计:实现前端“无代码”开发;
后端代码在线开发与调试:保证代码安全;
一站式集成面向接口的测试用例管理与自动化执行配置能力:实现在线自动化测试;
集成主流项目管理工具:提高云原生化开发项目管理效率;
业务应用组件高效复用:借助应用组件商店,实现全面的资产复用;
EDAS 4.0 全新升级——微服务 API 管理与测试
在微服务化的过程场景里,我们总结出这样三个挑战:
多环境的适配挑战:由于微服务有不同的研发团队,环境也是多种多样,在面对相应的微服务环境时,就需要做专门的配置适配,比如测试的参数、自动化用例的选择等等。
应用的可测性挑战:随着企业的资源逐渐云化管理,应用也大都部署在公共云或现在专有云环境,这样就带来了很多可测性挑战,比如阿里云的 VPC 环境内无法直接外网访问,需要弹性 IP 或其他打通方案;并且随着应用容器化,在 K8s 内的网络拓扑也会带来相应的复杂度。
用例生成的挑战:很多情况下,开发会专注于业务研发,无形中给测试同学带来了沟通协作的成本,由于不理解微服务接口的契约,就无法很快的实现用例生成。
为了解决以上挑战,我们提供云上微服务一键测试工具(API 管理与测试)针对性的解决相应问题:
通过 API 快速测试能力,可以直接打通 EDAS 应用,发起测试,并且测试历史记录可以快速生成 API 模板。
然后是通过测试环境管理,打通云内微服务,提供了 API 模板与测试环境参数的设置能力,可以直接实现一套测试配置映射一个微服务环境下的应用。
提供一个用例管理功能,统一模板化管理用例,实现用例自适应,也就是这个用例可以按照运行的微服务环境来选择相应配置执行。
所以,EDAS 的微服务一键测试工具,相当于为用户提供了一个面向微服务的云上私网 Postman,一键自动化执行用例,完成云上微服务测试,提升微服务测试效率。
EDAS 4.0 全新升级——端云联调 3.0
针对开发测试的部署架构变化,EDAS 4.0 将微服务的端云联调能力进行了全面升级,也是从 2020 年以来的第三次升级。这次升级,可以支持企业用户在容器化开发过程中,快速的将本地代码跑起来,和云上微服务打通联调。本地可以是容器,也可以是进程,很好的实现一套云上微服务环境,多个研发协同开发微服务的需求场景。
端云联调 3.0 主要升级了 3 大能力:
微服务的双向联调:日常开发中,研发本地可能写的是 Consumer 服务消费者,也可能是 Provider 服务提供者,所以实现双向互调就显得非常必要。本地的应用拉起后,借助工具提供的通道服务,可以轻松打通云上代理,进行互调。
横向产品支撑:因为微服务化应用启动或运行时,往往需要依赖 DB、MQ、Redis 等资源,端云联调 3.0 也进行了相应的支持,除了微服务,数据库、缓存、消息队列等也都可以给本地访问。
PaaS 层能力支持:对于开发常用的一些诊断、观测能力, 端云联调 3.0 也提供服务鉴权、流量控制、链路的诊断这样的能力,更好地提升开发联调效率。
EDAS 4.0 全新升级——多集群应用管理
我们看到随着业务的发展,一些企业逐渐有了应用的集群级容灾、多地域部署、业务同发这样的挑战和需求,还有一些企业的业务要同时部署在境外保证合规,以及一些政企客户需要中央统一管控各个地方的应用。
为了应对这样的应用交付新业务场景挑战,EDAS 4.0 也是提供了全新的多集群应用管理支持,借助一个统一的应用模板,来实现通用的跨集群的应用部署管理。比如创建应用、更新应用、变更应用配置等左侧这些原来单集群下的管理能力,全部升级为多集群维度的能力。也就是说可以站在多集群应用视角来对一个多集群应用实体,进行统一的治理、统一的观测,不再需要多个集群间来回跳转,解决前面提到的业务场景新挑战,帮助客户实现集群容灾、多地部署等诉求。
EDAS 4.0 全新升级——“鸟瞰式”运维
最后针对线上运维的变化,EDAS 4.0 升级提供了鸟瞰式运维的支持。
云原生的应用,在微服务和容器化之后,颗粒度会更加小,所以再去进行精细化管控,已经不再合适,需要放养,需要鸟瞰式管理运维。我们认为鸟瞰式运维,主要可以从业务、应用、资源几个维度逐层递进来展开。
业务维度:通过提供流量无损、流量控制能力,保证业务应用的稳定运行,然后提供面向业务的灰度发布能力实现应用的可控上线,再加上按业务指标进行弹性的触发实现业务的灵活负载。
应用维度:支持按照应用拓扑来观测上下游调用情况,借助应用观测与告警,来保证应用级服务接口问题的及时发现。并且可以直接进行应用级的统一变更,不用再深入到底层的工作负载维度去操作。
资源维度:提供一键检索快速定位到 EDAS 的任意应用关联的资源。并新增资源画像能力,应用的资源画像是直接关联应用实例的,可以帮助用户一键检测出错配、空转的具体实例资源,同时提供动态调度,实现更可靠的资源动态分配。
总结
EDAS 是一款非常成熟的产品,从 1.0~2.0 时代围绕企业业务中台建设,更好的帮助企业实现资源集群化和业务弹性可伸缩,并提供标准的服务化开发框架,同时也很好地支持了一些企业业务在线化和中台化。到了 2020 年,我们发布了 EDAS 3.0,实现了业务应用的监管控一体,并提供无侵入的双模微服务的支持(也就是 Java+ 多语言微服务)。
现在,EDAS 正式来到 4.0 时代,发布了多项重磅新能力;同时联合新产品—云原生应用设计开发平台 ADD 1.0,一起发布云原生应用研发 &运维 PaaS 产品家族,助力企业应用架构现代化升级。
点击此处,即可查看 EDAS 相关介绍~
版权声明: 本文为 InfoQ 作者【阿里巴巴云原生】的原创文章。
原文链接:【http://xie.infoq.cn/article/34a6b5c576ef59e9de8383963】。文章转载请联系作者。
评论