企业级分布式应用服务 EDAS 简介

企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,支持 Spring Cloud、Dubbo 等微服务运行环境,助力应用轻松上云。

EDAS 简介

在数字经济时代,为了连接更多消费者,越来越多的企业将业务数字化向消费端延伸。鉴于消费者体量大和需求变化快的特点,业务需求的敏捷开发和资源集约化部署成为企业面临的主要问题。

阿里云原生团队打造的 EDAS 是一站式云原生应用 PaaS 平台,面向分布式架构和数字化在线业务上云需求,EDAS 无缝集成了阿里云容器服务 Kubernetes 版和阿里云 ECS 作为运行时资源,不仅提供了应用生命周期管理和轻量化运维等基础应用托管能力,还支持高可用部署、应用发布版本管理、变更流程跟踪和应用层极致弹性等全流程管控能力,提供一站式 PaaS 体验。

对于 Spring Cloud 和 Dubbo 等 Java 语言的开源微服务框架应用,无需修改任何代码即可迁移至 EDAS,享受金丝雀发布、离群实例摘除、服务鉴权、无损下线、限流降级和全链路流控等高阶微服务治理能力。

此外,EDAS 支持直接部署 PHP 应用和通过服务网格部署多语言微服务应用,为多语言微服务应用提供了应用托管、服务发现、链路追踪和负载均衡等服务管理能力。

EDAS 融合并升级了阿里巴巴应用安全生产三板斧:

  • 可观测

    • 应用总览
    • 变更记录

    等功能,可帮您实现多维度全流程观测变更过程

  • 可灰度

    • 金丝雀发布
    • 灰度发布
  • 可回滚

    • 日常运行应用支持回滚到历史版本
    • 发布过程支持一键回滚

EDAS 实现了应用的监管控一体化,提供了更多纬度的自动监控、智能诊断和报告输出等功能。

结合开源云原生的理念,EDAS 对接了云效和 Jenkins 等多种主流 DevOps 发布系统,实现了应用的持续集成,并且完全兼容 Cloud Toolkit 插件,实现了应用自动化部署。

目前 EDAS 的产品形态包括公有云、专有云、政务云、金融云和混合云等,无论哪一种形态,EDAS 都提供了一整套的智能巡检、全景监控和智能诊断等以应用为中心的运维能力。

EDAS 目前已成功服务众多领域的客户:

  • 互联网领域
    • 社交
    • 娱乐
    • 在线教育等
  • 数字金融领域
    • 银行
    • 保险
    • 证券基金等
  • 电商领域
    • 各种可以线上买买买的场景
  • 零售领域
    • 会员
    • 促销
    • 抢购
    • 秒杀等场景
  • 数字政务领域
    • 健康码
    • 线上政务办理等

上云就上阿里云,云原生就用 EDAS,助理企业实现智慧数字化升级。

应用托管

应用托管是开发者本身不为应用提供服务器,将应用托管给服务提供商。应用完成开发后,可以托管在 EDAS 上。

应用托管概览

  • 多种语言支持

    EDAS 支持托管 Java 应用,K8s 环境还支持托管 PHP、Node.js、C++ 和 Go 等多语言应用。

  • 多种底层服务器选择

    EDAS 无缝集成了 ECS 云服务器和容器服务 Kubernetes 版,可以基于实际托管需求来选择 ECS 集群、K8s 集群,以及混合云集群。

  • 多种发布方式

    • 支持使用控制台和 API 来完成创建和部署,并支持 WAR 包、JAR 包和镜像多种部署形式。
    • 支持使用控制台、API和插件完成应用升级,并支持单批发布、分批发布和金丝雀发布。
    • 支持使用云效和 Jenkins 实现应用的 CI/CD。
  • 应用生命周期管理

    EDAS 提供从创建到运行的应用全生命周期管理服务,包括应用的发布、启动、停止、扩容、缩容和删除等服务,可以轻松运维上千个应用实例。

  • 应用监控

    EDAS 集成了应用实时监控服务 ARMS。可以监控部署在 EDAS 中的应用的健康状态和关键指标,并针对监控指标设置告警,及时发现并处理可能存在的异常或故障,以保障应用的健康和可用性。

  • 应用运维

    EDAS 为应用提供了一系列运维功能,包括生命周期管理、应用访问方式管理、弹性伸缩、限流降级、负载均衡、变更记录、事件中心、日志管理等。

应用托管的更多信息,请参见:

微服务

有别于传统的单体式应用架构,微服务架构将应用拆分成多个核心功能,每个功能都可以作为一项独立的服务,由独立团队负责并且可以独立构建和部署,各项服务在运行和出现故障时不会相互影响。微服务使应用更易于扩展和更快地开发,从而加速创新并缩短新功能的发布周期。

EDAS 提供了从开发、部署到治理的完整的微服务解决方案。

云原生应用 PaaS 平台

云原生是指应用原生被设计为在云上以最佳方式运行,充分发挥云的优势。在云原生时代,PaaS 平台将下沉到基础设施,成为云的一部分。EDAS 正是一个应用托管和微服务管理的 PaaS 平台。

  • 云服务集成

    EDAS 作为应用的一站式 PaaS 平台,集成了众多阿里云服务,以产品和 EDAS 内部组件两种形态为 EDAS 中的应用提供各个层面、维度的功能。

    • 产品集成:以独立产品的形式集成,相关资源、功能由各产品(非 EDAS)管理。
    • 组件集成:以 EDAS 的服务组件形式集成,为 EDAS 提供的资源、服务可以在 EDAS 中管理。

    更多信息,请参见云服务集成概述

  • 权限管理

    在 EDAS 上托管的应用可能包含多个服务或子系统,这些服务或子系统又可能由不同团队、成员进行开发、运维。EDAS 通过账号体系及基于账号体系的一系列权限管理操作,提供企业级的权限管理系统,帮助用户对应用、资源和数据进行必要的隔离和权限控制,以保证其安全性。

    更多信息,请参见权限管理概述

客户原声

以下是客户对 EDAS 的评价。

中国邮政 CHINAPOST

依托 EDAS,邮政传统以省为中心的自建系统平滑向分布式微服务架构转型,利用 EDAS 强大的应用管理能力,新一代寄递系统很好地支撑了多种寄递业务的快速发展。2018 年双 11 期间,邮政在 EDAS 上服务日调用量高达数十亿次,整体业务再创新高,在流量高峰冲击下系统平稳有序运行。

福特汽车 FORD

通过 EDAS 构建的微服务 PaaS 平台很好地支撑了福特汽车新零售业务,建立线上商城,为汽车买家提供一站式服务,打通线上线下流量。借助 EDAS 微服务治理、运维监控及应用生命周期管理等功能,显著提高需求的迭代效率,建立起数据应用、管理、运营三位一体的企业数字化运营中心。

快鱼服饰 FASTFISH

借助 EDAS 搭建起业内第一个成熟的分布式业务系统,帮助快鱼解决原有多套系统之间商品、渠道等数据不一致等问题,保障系统的快速迭代和敏捷开发,降低研发周期及成本。微服务架构下,很好地支持海量数据及应用的并发,系统效率提高了 25 倍,有效提升了用户的操作体验。

开通 EDAS

单击下方文本可立即前往 EDAS 开通页面。

立即开通 EDAS

应用场景

EDAS 是分布式架构和数字化业务上云的首选应用托管平台,具有广泛的应用场景。下面罗列了 EDAS 的典型应用场景。

微服务解决方案

EDAS 支持 Apache Dubbo(2.6.x及以上版本)、Spring Cloud(Edgware及以上版本)和 HSF 三个主流微服务框架,更多信息,请参见 Spring Cloud概述Dubbo 概述 和 HSF 概述。EDAS 内置的 HSF 框架为阿里巴巴自研的高效微服务框架,孵化自阿里众多业务场景的最佳实践;同时,零代码入侵就能完成 Apache Dubbo 和 Spring Cloud 应用上云,有效降低运维成本,支持应用的无损上、下线、金丝雀发布,以及流量控制等多种高级特性,助力用户在云上轻松构建微服务应用。

能够解决的问题

  • 基于成熟微服务框架快速构建应用:借助阿里巴巴自研的微服务框架 HSF 在云上构建微服务应用。
  • Apache Dubbo 和 Spring Cloud 应用上云:无需构建 ZooKeeper、Eureka 和 Consul 等微服务依赖的自建服务,极大降低运维成本。
  • 提供企业级高级特性:提供无损上、下线、金丝雀发布,以及流量控制等多种高级特性

图 1. 微服务解决方案架构图微服务解决方案架构图

应用托管解决方案

免去运维人员逐台登录 ECS 实例的繁杂操作,免集群维护。用户只需要登录 EDAS 控制台,就可以通过 WAR 包、JAR 包或镜像等多种方式快速部署应用,基于 ECS 提供全应用生命周期管理,包括发布、回滚、应用分组管理、多版本并存,并集成监控、日志等能力,极大的提升了 ECS 的集群管理效率。

能够解决的问题

  • 大幅降低运维成本:免 IaaS 运维及集群维护,有效降低运维人力成本。
  • 应用全生命周期管理:可视化管理应用生命周期,应用运行状态了如指掌。

图 2. 应用托管解决方案架构图应用托管解决方案图

容器托管解决方案

EDAS 支持以容器的形式托管应用,无缝对接阿里云容器服务 Kubernetes 版,用户无需理解容器服务底层细节。通过 EDAS 控制台就能完成应用在容器里的全生命周期管理,包括监控、诊断等服务。用户可以低门槛拥抱容器新技术,最大化利用资源。

能够解决的问题

  • 无缝支持 Kubernetes:Kubernetes 集群托管给 EDAS,用户仅需关注应用生命周期管理即可。
  • 容器与微服务完美结合:基于 Kubernetes,快速构建容器上的微服务架构。
  • 无需构建镜像:支持 WAR 包和 JAR 包直接部署,EDAS 代为构建镜像并部署到 Kubernetes 集群,有效简化流程降低使用门槛。

图 3. 容器托管解决方案容器托管解决方案架构图

学习路径

由浅入深,玩转企业级分布式应用服务 EDAS。

了解

EDAS 介绍

上手

快速入门

使用

部署应用至 ECS 集群

部署应用至 K8s 集群

实践

ECS 集群应用管理

K8s 集群应用管理

开发

API 参考

应用开发

名词解释

本文主要对 EDAS 涉及的专有名词及术语进行定义和解释,方便您更好地理解相关概念并使用 EDAS。

  • Alibaba Cloud Toolkit

    阿里云开发者插件(Alibaba Cloud Toolkit)是一个面向 IntelliJ IDEA、Eclipse 和 Maven 平台的免费插件,旨在帮助开发者在本地开发平台(IDE)中更便捷的使用阿里云,从而高效地开发、测试、诊断并部署应用。

  • Ali-Tomcat

    Ali-Tomcat 是基于 Apache Tomcat 改造的 Servlet 容器。在支持原有核心功能的前提下,Ali-Tomcat 在启动时会自动加载 Pandora 容器以实现了类隔离功能。

  • CPU 共享比例

    CPU 共享是一种在 Docker 化技术中提升单机资源使用率的方法。例如对于一台2核8G的机器宿主机,如果选择 CPU 共享比例为1:2,那么可以在此宿主机上最多分配出四个1核 2G 的 Docker 实例;以此类推,选择1:4,则可以最多分配出八个1核 1G 的 Docker 实例。请注意,无论如何,内存都是独享的,无法共享。

  • Dubbo

    Dubbo 是一个开源的分布式服务框架,提供高性能和透明化的 RPC 远程服务调用方案。

  • ECS

    云服务器 ECS(Elastic Compute Service)是一种简单高效、处理能力可弹性伸缩的计算服务。帮助您快速构建更稳定、安全的应用。

  • EDAS

    企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Dubbo、Spring Cloud 等微服务运行环境,助力您的各类应用轻松上云。

  • EDAS Agent

    EDAS Agent 是安装在用户 ECS 上的 Daemon 程序,主要用于 EDAS 服务集群与部署在相应的 ECS 上的应用程序之间进行通信。在运行的过程中主要承担应用管理、状态回报、信息获取等功能;同时也是 EDAS 控制台与用户应用程序之间信息沟通的主要桥梁。

  • EDAS Container

    EDAS Container 是 EDAS 平台 HSF 应用运行的基础容器,EDAS Container 包含 Ali-Tomcat 和 Pandora。

  • K8S Namespace

    K8S Namespace 通过将系统内部的对象分配到不同的 Namespace 中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群资源的同时还能被分别管理。

  • Pandora

    Pandora 是一个轻量级的隔离容器,也就是 taobao-hsf.sar。它用来隔离应用和中间件、中间件之间的依赖,使其互不影响。EDAS 的 Pandora 中集成了实现服务发现的插件、实现配置推送的插件、实现调用链跟踪的插件等各种中间件产品插件。利用这些插件可以完成对 EDAS 应用的服务监控、治理、跟踪、分析等全方位运维管理。

  • Pandora Boot

    Pandora Boot 是在 Pandora 的基础之上,发展出的更轻量使用 Pandora 的方式。基于 Pandora 和 FatJar 技术,可以直接在 IDE 里启动 Pandora 环境。

  • Pod

    Pod 是 Kubernetes 中最小的部署单元和计费单位,根据应用场景,可以由一个或多个容器组成。当一个 Pod 中有多个容器时,这些容器会共享 Pod 的计算资源、存储空间、IP 和端口。对于计算资源还可以限制各个容器使用的比例。

  • SLB

    负载均衡 SLB(Server Load Balancer)是对多台应用实例进行流量分发的负载均衡服务。可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。

  • VPC

    专有网络 VPC(Virtual Private Cloud)是基于阿里云创建的自定义私有网络。不同的专有网络之间二层逻辑隔离,您可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。

  • 变更流程

    在 EDAS 上进行应用部署、启动、扩容/缩容等生命周期操作时,应用变更记录将整个变更过程中执行的业务逻辑抽象成为一个流程(Process),以可视化的方式展现。

  • 持续集成

    一种软件开发实践,通过该实践,开发人员定期将代码更改并入中央存储库,然后运行自动化构建和测试。

  • 方法追踪

    采用 JVM 字节码增强的技术,对选中方法中的所有方法调用增加必要的耗时与调用序列记录,以便观看执行过程中的具体执行序列。

  • 调用链查询

    调用链查询用于查看系统中的调用链路状态,尤其是慢业务和出错业务。

  • 分布式链路跟踪

    EDAS 鹰眼监控系统能够分析分布式系统的每一次系统调用、消息发送和数据库访问,从而精准发现系统的瓶颈和隐患。

  • 分布式任务管理

    SchedulerX 是阿里巴巴中间件团队开发的一款分布式任务调度产品。用户在应用中依赖 SchedulerX-Client,并在 SchedulerX 控制台创建定时任务,进行相应的参数配置后,启动该应用就可以接收到定时任务的周期调度。SchedulerX-Server 集群为调度触发提供高可用性和高稳定性的保证,并且可以实现对用户客户端机器集群进行分布式调度。

  • 付费账号

    付费账号是指用于购买 EDAS 产品的账号。一个付费账号可以绑定(最多5个)主账号,付费账号同时也是一个主账号。

  • 服务报表

    以租户维度展示当前租户内所有应用的所有服务在近 24 小时内的运行时情况,包括服务调用量、调用耗时和调用出错次数。

  • 服务查询

    服务查询用于查询目标机器提供的或者消费的服务。

  • 服务监控

    能够针对应用的服务调用情况,对服务的 QPS、响应时间和出错率进行全方面的监控。

  • 服务降级

    与服务限流相反,每一个应用会调用许多外部服务,对于这些服务配置降级规则可以实现对劣质服务的精准屏蔽,确保应用自身能够稳定运行,防止劣质的服务依赖影响应用自身的服务能力。EDAS 从响应时间维度对降级规则进行配置,帮助您在应对流量高峰时合理地屏蔽劣质依赖。

  • 服务限流

    EDAS 可以对每一个应用提供的众多服务配置限流规则,以实现对服务的流控,确保服务能够稳定运行。限流规则可以从 QPS 和线程两个维度进行配置,帮助您在应对流量高峰时,确保系统能以最大的支撑能力平稳运行。

  • 服务拓扑

    通过拓扑图的形式直观的了解不同服务间的相互调用关系及相关性能数据。

  • 高速服务框架

    高速服务框架 HSF(High-speed Service Framework)是一款面向企业级互联网架构的分布式服务框架,以高性能网络通信框架为基础,提供了诸如服务发布与注册、服务调用、服务路由、服务鉴权、服务限流、服务降级和服务调用链路跟踪等一系列功能特性。

  • 健康检查

    健康检查对容器与应用进行定时检查和汇报,然后将结果上报到控制台,从而帮助您了解集群环境下整个应用的运行状态,排查和定位问题。

  • 基础监控

    EDAS 从应用所运行的实例(ECS)上采集数据,对机器的 CPU、内存、负载、网络和磁盘等基础指标进行详细的监控。所有监控均以应用为单位进行数据的统计和处理。

  • 集群

    集群指应用运行所需的云资源组合。ECS 集群:ECS 集群中,在一台独立的 ECS 实例上仅允许部署一个应用。Swarm 集群(即将下线,新用户不可创建及使用):Swarm 是 Docker 公司发布的容器管理工具。Swarm 集群中,在一台独立的 ECS 实例上可以创建多个 Docker 实例,每一个 Docker 实例上允许部署一个应用。容器服务 K8S 集群:通过了 CNCF 标准化测试的 Kubernetes 集群,运行稳定且集成了阿里云其它产品(如 SLB、NAS)。在容器服务中创建 Kubernetes 集群并导入 EDAS 后,您就具备了在 EDAS 中向容器服务 Kubernetes 集群部署应用的能力。

  • 命名空间

    命名空间实现资源和服务的隔离。您可以使用命名空间隔离不同环境,如开发、测试和生产环境,以避免影响不同环境下的服务调用和配置推送。

  • 批量运维

    在 EDAS 控制台中,可以使用机器指令对安装了 Agent 的 ECS 实例进行批量运维操作。可以按集群、应用和实例批量执行命令,解决多个实例重复运维的烦恼。

  • 轻量级配置及注册中心

    一个可以在本地运行的 EDAS 轻量级配置及注册中心,提供服务发现和配置管理功能。

  • 日志采集器

    采集系统监控日志用来生成监控数据以及调用链信息的组件。在 VPC 网络中,机器天然与服务器隔离,日志采集器可以打通服务器和本地机器的连接通道。安装一个日志采集器即可采集整个 VPC 里所有机器的数据。

  • 实时日志

    实时日志是针对 Docker 容器的一种标准输出的运行时日志。

  • 弹性伸缩

    弹性伸缩功能可以感知集群内各个服务器的状态(CPU、RT 和 Load),并根据状态实时实现集群扩容、缩容,在保证服务质量的同时,提升集群系统的可用率。

  • 应用实时监控服务

    应用实时监控服务 ARMS(Application Real-Time Monitoring Service)是一款阿里云应用性能管理(APM)类监控产品。借助 ARMS 可以迅速便捷地为企业构建秒级响应的应用监控能力。

  • 应用监控

    用于监控应用的实时流量和历史信息,用户可以通过该信息监控应用的健康状态,从而快速发现、定位问题。

  • 应用配置管理

    应用配置管理 ACM(Application Configuration Management)是一款在分布式架构环境中对应用配置进行集中管理和推送的工具类产品。您可以在 EDAS 中使用 ACM 对应用配置进行集中管理和推送,还可以基于命名空间在不同环境间进行配置的隔离和同步。

  • 应用生命周期

    应用是 EDAS 管理的基本单位,一个应用下面通常包含了多个实例。EDAS 提供了完整的应用生命周期管理机制,可以完成应用从发布到运行过程的全面管理,包括应用创建、部署、启动、回滚,扩容缩容和停止下线等操作。

  • 应用实例

    应用实例是指用来部署应用的 ECS 实例或者容器实例。比如在 ECS 集群里,一台 ECS 里只有一个应用实例;在 K8S 集群里,一个 Pod 是一个应用实例。

  • 应用实例分组

    将一个应用下属所有实例(ECS)进行分组,以便对不同分组中的实例部署不同版本的应用。EDAS 应用实例分组提供应用内实例的分组管理功能。用户可以实现 Beta 发布、AB 测试,灰度发布等运维方式。支持用户从分组角度实现应用生命周期管理、资源监控与告警,可以迅速提升运维效率。

  • 应用运行环境

    应用运行的环境,例如 HSF 应用的运行环境 EDAS-Container 或开源应用的运行容器(如 Apache Tomcat)。

  • 应用诊断

    EDAS 针对应用提供了详细的问题排查和性能分析,包括提供当前应用运行的单机上的 JVM 堆/非堆内存、类加载(Class Loader)、线程、Tomcat 连接器的统计数据以及方法追踪等。

  • 云服务总线

    云服务总线 CSB(Cloud Service Bus)面向专有云和专有域,帮助企业在自己的多个系统之间,或者与合作伙伴以及第三方的系统之间实现跨系统跨协议的服务能力互通。在 EDAS 中创建 CSB 专享实例,用来管理和控制目标环境内应用对外的服务开放,也可以引入外部服务并进行管理控制;开放 VPC 内的 EDAS 应用,用于在自有开发环境通过公网来测试联调阿里云 VPC 内的 EDAS 应用。

  • 资源组

    EDAS 对资源的一种划分方式。资源组可以绑定 ECS、集群和 SLB。您的主账号可以基于资源组对子账号进行授权。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2017-2021 Shadowalker
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信