简介: EDAS 正式来到 4.0 时代,发布多项重磅新能力;同时联合新产品—云原生应用设计开发平台 ADD 1.0,一起发布云原生应用研发&运维 PaaS 产品家族,助力企业应用架构现代化升级。

作者:安绍飞

前言

近年来,企业的数字化随着互联网的普及发展越来越快,技术架构也是几经更迭,尤其是在线业务部分。最开始企业的需求就是将业务尽可能在线化、线上化,产生了早期的在线业务应用架构,即单体应用,主要就是由 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 大特色:

  1. 可视化应用架构设计:帮助企业方便的沉淀与维护原来在线下白板上的架构讨论设计;
  2. 前端网页应用拖、拉、拽设计:实现前端“无代码”开发;
  3. 后端代码在线开发与调试:保证代码安全;
  4. 一站式集成面向接口的测试用例管理与自动化执行配置能力:实现在线自动化测试;
  5. 集成主流项目管理工具:提高云原生化开发项目管理效率;
  6. 业务应用组件高效复用:借助应用组件商店,实现全面的资产复用;

EDAS 4.0 全新升级——微服务 API 管理与测试

在微服务化的过程场景里,我们总结出这样三个挑战:

  1. 多环境的适配挑战:由于微服务有不同的研发团队,环境也是多种多样,在面对相应的微服务环境时,就需要做专门的配置适配,比如测试的参数、自动化用例的选择等等。
  2. 应用的可测性挑战:随着企业的资源逐渐云化管理,应用也大都部署在公共云或现在专有云环境,这样就带来了很多可测性挑战,比如阿里云的 VPC 环境内无法直接外网访问,需要弹性 IP 或其他打通方案;并且随着应用容器化,在 K8s 内的网络拓扑也会带来相应的复杂度。
  3. 用例生成的挑战:很多情况下,开发会专注于业务研发,无形中给测试同学带来了沟通协作的成本,由于不理解微服务接口的契约,就无法很快的实现用例生成。

为了解决以上挑战,我们提供云上微服务一键测试工具(API 管理与测试)针对性的解决相应问题:

  1. 通过 API 快速测试能力,可以直接打通 EDAS 应用,发起测试,并且测试历史记录可以快速生成 API 模板。
  2. 然后是通过测试环境管理,打通云内微服务,提供了 API 模板与测试环境参数的设置能力,可以直接实现一套测试配置映射一个微服务环境下的应用。
  3. 提供一个用例管理功能,统一模板化管理用例,实现用例自适应,也就是这个用例可以按照运行的微服务环境来选择相应配置执行。

所以,EDAS 的微服务一键测试工具,相当于为用户提供了一个面向微服务的云上私网 Postman,一键自动化执行用例,完成云上微服务测试,提升微服务测试效率。

EDAS 4.0 全新升级——端云联调 3.0

针对开发测试的部署架构变化,EDAS 4.0 将微服务的端云联调能力进行了全面升级,也是从 2020 年以来的第三次升级。这次升级,可以支持企业用户在容器化开发过程中,快速的将本地代码跑起来,和云上微服务打通联调。本地可以是容器,也可以是进程,很好的实现一套云上微服务环境,多个研发协同开发微服务的需求场景。

端云联调 3.0 主要升级了 3 大能力:

  1. 微服务的双向联调:日常开发中,研发本地可能写的是 Consumer 服务消费者,也可能是 Provider 服务提供者,所以实现双向互调就显得非常必要。本地的应用拉起后,借助工具提供的通道服务,可以轻松打通云上代理,进行互调。
  2. 横向产品支撑:因为微服务化应用启动或运行时,往往需要依赖 DB、MQ、Redis 等资源,端云联调 3.0 也进行了相应的支持,除了微服务,数据库、缓存、消息队列等也都可以给本地访问。
  3. PaaS 层能力支持:对于开发常用的一些诊断、观测能力, 端云联调 3.0 也提供服务鉴权、流量控制、链路的诊断这样的能力,更好地提升开发联调效率。

EDAS 4.0 全新升级——多集群应用管理

我们看到随着业务的发展,一些企业逐渐有了应用的集群级容灾、多地域部署、业务同发这样的挑战和需求,还有一些企业的业务要同时部署在境外保证合规,以及一些政企客户需要中央统一管控各个地方的应用。

为了应对这样的应用交付新业务场景挑战,EDAS 4.0 也是提供了全新的多集群应用管理支持,借助一个统一的应用模板,来实现通用的跨集群的应用部署管理。比如创建应用、更新应用、变更应用配置等左侧这些原来单集群下的管理能力,全部升级为多集群维度的能力。也就是说可以站在多集群应用视角来对一个多集群应用实体,进行统一的治理、统一的观测,不再需要多个集群间来回跳转,解决前面提到的业务场景新挑战,帮助客户实现集群容灾、多地部署等诉求。

EDAS 4.0 全新升级——“鸟瞰式”运维

最后针对线上运维的变化,EDAS 4.0 升级提供了鸟瞰式运维的支持。

云原生的应用,在微服务和容器化之后,颗粒度会更加小,所以再去进行精细化管控,已经不再合适,需要放养,需要鸟瞰式管理运维。我们认为鸟瞰式运维,主要可以从业务、应用、资源几个维度逐层递进来展开。

  1. 业务维度:通过提供流量无损、流量控制能力,保证业务应用的稳定运行,然后提供面向业务的灰度发布能力实现应用的可控上线,再加上按业务指标进行弹性的触发实现业务的灵活负载。
  2. 应用维度:支持按照应用拓扑来观测上下游调用情况,借助应用观测与告警,来保证应用级服务接口问题的及时发现。并且可以直接进行应用级的统一变更,不用再深入到底层的工作负载维度去操作。
  3. 资源维度:提供一键检索快速定位到 EDAS 的任意应用关联的资源。并新增资源画像能力,应用的资源画像是直接关联应用实例的,可以帮助用户一键检测出错配、空转的具体实例资源,同时提供动态调度,实现更可靠的资源动态分配。

总结

EDAS 是一款非常成熟的产品,从 1.0~2.0 时代围绕企业业务中台建设,更好的帮助企业实现资源集群化和业务弹性可伸缩,并提供标准的服务化开发框架,同时也很好地支持了一些企业业务在线化和中台化。到了 2020 年,我们发布了 EDAS 3.0,实现了业务应用的监管控一体,并提供无侵入的双模微服务的支持(也就是 Java+ 多语言微服务)。

现在,EDAS 正式来到 4.0 时代,发布了多项重磅新能力;同时联合新产品—云原生应用设计开发平台 ADD 1.0,一起发布云原生应用研发&运维 PaaS 产品家族,助力企业应用架构现代化升级。

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

EDAS 4.0 助力企业一站式实现微服务架构转型与 K8s 容器化升级的更多相关文章

  1. 基于微服务架构、运行于容器中的.NET Core示例应用eShopOnContainers

    eShopOnContainers 是 <.NET Microservices – Architecture for Containerized .NET Applications>这本微 ...

  2. 微服务架构 - 离线部署k8s平台并部署测试实例

    一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...

  3. Re:从0开始的微服务架构:(一)重识微服务架构--转

    原文地址:http://www.infoq.com/cn/articles/micro-service-architecture-from-zero?utm_source=infoq&utm_ ...

  4. 浅谈微服务架构、容器技术与K8S

    关注嘉为科技,获取运维新知 企业应用系统:从单体应用走向微服务架构:从裸金属走向容器. 如果在诸多热门云计算技术诸如容器.微服务.DevOps.OpenStack等之中,找出一个最火的方向,那么可能非 ...

  5. Spring Cloud 微服务架构解决方案

    1 理解微服务 1.1 软件架构演进 软件架构的发展经历了从单体结构.垂直架构.SOA架构到微服务架构的过程. 1.1.1 单体架构 特点: 1.所有的功能集成在一个项目工程中. 2.所有的功能打一个 ...

  6. Java生鲜电商平台-微服务架构概述

    Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中.尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化 ...

  7. 使用微服务架构思想,设计部署OAuth2.0授权认证框架

    1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...

  8. Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

    原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...

  9. 今天介绍一下自己的开源项目,一款以spring cloud alibaba为核心的微服务架构项目,为给企业与个人提供一个零开发基础的微服务架构。

    LaoCat-Spring-Cloud-Scaffold 一款以spring cloud alibab 为核心的微服务框架,主要目标为了提升自己的相关技术,也为了给企业与个人提供一个零开发基础的微服务 ...

  10. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转

    原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...

随机推荐

  1. 关于Ubuntu的磁盘空间不足其中的一种问题

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2014-07-06 01:12:48 ...

  2. js实现展开多级数组

    1.递归 function steamrollArray(arr) { let res = [] for (const a of arr) { if(a instanceof Array){ res ...

  3. 小米Linux 运维工程师面试真题

    小米Linux 运维工程师面试真题 首先我们来看下小米 Linux 运维工程师招聘岗位要求: [岗位定义]运维工程师 [岗位薪资]10K-24K [基本要求]北京 / 经验 3-5 年 / 本科及以上 ...

  4. MySQL系列:索引失效场景总结

    相关文章 数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版) 数据库系列:高并发下的数据字段变更 数据库系列:覆盖索引和规避回表 数据库系列:数据库高可用及无损扩 ...

  5. 03.Android崩溃Crash库之ExceptionHandler分析

    目录总结 00.异常处理几个常用api 01.UncaughtExceptionHandler 02.Java线程处理异常分析 03.Android中线程处理异常分析 04.为何使用setDefaul ...

  6. 利用Python 去重聚合Excel数据并对比两份数据的差异

    问题背景 在数据处理过程中,常常需要将多个数据表进行合并,并进行比对,以便找出数据的差异和共同之处.本文将介绍如何使用 Pandas 库对两个 Excel 数据表进行合并与比对,并将结果输出到新的 E ...

  7. C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据

    Chapter 3 线程间共享数据 3.2 用互斥锁保护共享数据

  8. SHELL使用教程

    疑难解答 执行完shell文件后不退出 在shell文件末尾添加如下命令即可. exec /bin/bash 参考资料 为什么sh脚本运行之后自动退出,有没有让终端不自动关闭的方法. - Ubuntu ...

  9. copy 导入包含特殊符号的文本

    客户提供了一份数据记录需要导入数据库,但是文本中有一个列的内容是反斜杠"\" ,因为""是特殊的转义字符,需要使用两个"\"才能表示,如果直 ...

  10. Python日志模块封装

    一.先上结论 对Python logging模块进行二次封装 # -*- coding:utf-8 -*- # 作者:IT小学生蔡坨坨 # 博客:caituotuo.top # 时间:2022/3/1 ...