玩转Edas应用部署

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: EDAS 提供了一个可视化的应用发布与管理平台;EDAS 提供了一个高性能的 RPC 框架,能够构建高可用的分布式系统;EDAS提供一系列系统数据化运营组件,本文正是针对EDAS的应用部署的分享。请保持认真的姿势把文章看到底!


云享团干货第二期,本期分享专家:滨雨,有多年软件开发 + 项目管理经验,先后在华为、阿里基础架构部任职,在阿里云主要从事存储、cdn、视频、中间件等技术领域的支持,喜欢新技术,喜欢钻研,喜欢各种新的挑战。

本期分享“玩转Edas应用部署”,后续也会持续给大家带来干货分享,如果有什么问题欢迎在下边留言讨论。



Edas应用部署,能解决什么问题呢?能给我们带来哪些便利?看看以下三个场景你就懂啦。


应用发布与管理

还在担心在复杂云环境中的应用发布、部署、重启、扩容等操作?EDAS 提供了一个可视化的应用发布与管理平台。

构建一个分布式系统

还在考虑网络通信,序列化协议设计等技术细节?考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节?EDAS 提供了一个高性能的 RPC 框架,能够构建高可用的分布式系统。

透过数字来剖析我们的系统运行状态


还在为实现服务进行精细化的监控和跟踪,寻找系统瓶颈所在而烦心?EDAS提供了一系列系统数据化运营组件。

作者针对EDAS的应用部署这一核心功能进行了详细的介绍,请保持认真的姿势看到底

普通应用部署

1、前提条件:必须有还未被实例化的,且安装好Agentecs

4471ecddb81612c3e53909513ee67d771498f2c3

2、其他详细步骤参考:https://help.aliyun.com/document_detail/43150.html?spm=5176.doc43456.6.565.zDd64Q

docker应用部署

1、开通公测

安装docker应用(目前在控制台上叫集群管理)需要单独申请开通公测,可以工单提交反馈

fe3a080db148a9ee523c2cd98dcc8c34a49600b4

2、ecs服务器docker转化

将选择的ecs服务器docker化

d816004fde85832b408deb309a2d7b68dc834340

3、服务端应用创建

创建服务端docker应用,自定义指定端口,端口地址要大于1024,选择给应用配置的cpu和内存配置,需要注意的是,在同一个集群内,端口是不允许重复的。

5b4ab252a57a2ce8b679bc1bd34a2a3f56c360f7

4、创建provider端hsf工程

服务端工程对外暴露一个接口,以hsf:provider标签对外暴露服务

配置文件如下:

e56cbfc0da29838a75d95c45f657ad1648385ca8

 

代码工程如图:

5ce6e9668c069abe8cc0a70904c38be73fe0cee5

将工程打成war包

5、provider端应用部署

将第四步工程打出的war包上传部署

fe14cf95bb1c00f3adecf49315324bfdeb0ca7e5

6、监控服务列表,如果应用部署成功,可以在服务列表看到对外暴露的服务

58c751940c6efe65408990446326234e8be9a089

而此时是还看不到消费的服务

7、创建消费端应用

同样的方式,创建消费端应用,部署消费端服务,部署成功后,可以在消费端看到消费的服务

消费端应用代码示例

b9d664f16e72b4239eba0088dcafe3444d6d09e1

8、docker容器查看

ssh登录到docker服务器,执行docker ps 可以查看到服务器上部署的容器信息

40c592827878d6ed45fcc4b4180f0894a588441f

执行docker exec -ti  $container_id bash 进入到docker容器,可以查看容器内部署应用的情况

7496a23ebb056309915007763526959f5dd0a875

实战排查

  • 实战宝典

在使用edas过程,难免会中间遇到很多阻塞的问题,在遇到问题的时候保持淡定,定位问题的方式可以采取五步曲:

c177b287ca524ac61c5d9c253ae925f027a5668e

1、查看日志:

相信不管是测试还是开发人员,日志永远都是定位问题的最佳利器,edas问题的日志,可以通过两种方式,一种是在应用控制台-运行日志,可以直接看到应用部署的日志,另一种则是直接登录到服务器,到 /home/admin/taobao-tomcat****/目录下查看。

Agent的日志:

60a2df313f14017d2bcb38f8e5e22f73ce4780d5

2、网络环境确认

网络环境问题,也是edas应用部署中很常见的,ecs服务器上如果路由发生过变更,则会导致无法ping通域名: edas-internal.console.aliyun.com

例如下面的截图就是一个正常的路由(只针对阿里云ecs):从路由可以看到,必须至少包含10.*网段以及100.*网络的路由信息,当发现路由策略有问题时需要根据情况添加路由信息

ac1fbb760ed8ce8d3310006a60f6befbb2ed32b1

3、xml配置文件确认

主要针对hsf应用的配置,consumer端和provider端的xml配置文件,版本号保持统一、接口名保持统一

4、  查询到异常信息后根据关键字到阿里云官网文档上搜索解决方案:

https://help.aliyun.com/product/29500.html?spm=5176.doc42939.3.1.q2mSgr

hsf异常编码问题:

https://help.aliyun.com/knowledge_list/43910.html?spm=5176.7743936.3.4.YyZNUd

5、倘若前四部依然没能解决问题,可以直接反馈工单

  • 案例分析

1、端口问题

应用出现部署异常,按照“排查宝典”,第一步,先看日志,如图的启动日志:

526abc3647be25bc990a85994fce86dc428d8322

从日志的异常信息可以很清楚的看到是由于端口冲突,这类问题,一种方法就是更改应用的端口,或者到服务器上去kill掉占用相同端口的进程。


2、  xml配置错误问题

例如下面的异常信息:

1300619e9014af3f10788c6b0d3aeb4d89b1d5d5

根据“宝典”第一步,先查看日志,这是一个hsf客户端的启动日志,从日志可以看出是客户端调用hsf失败,可以检查hsf应用服务端和消费端的配置日志。

Consumer端:

037e6da072137e135fcadabdb5cbf6ed9bf6ae04

服务端:

61d0cc3448c5643454c9118fb1fbea3e95607b26

检查后可以发现,两边对应的interface配置不一致,导致服务启动失败,修改interface后问题得到解决。

3、hsf异常问题

hsf有一套自定义的标准异常code,当在应用启动时出现类似“HSF-00**”的异常日志时,可以直接在hsf常见问题中搜索到解决方案

https://help.aliyun.com/knowledge_list/43910.html?spm=5176.7743949.3.4.BzlRSR

例如下图:
90a0a49d81e971170b7fc0f346a350490552d6a4

可以看到应用启动时发现有异常:“HSF-0001”错误信息抛出,根据错误编码,找到对应文档,根据文档提示进行排查
https://help.aliyun.com/knowledge_detail/43936.html?spm=5176.7843910.2.3.p2s0GN


4、 网络环境问题

应用启动后,发现配置中心上(线上环境是不需要单独创建配置中心的),无法查看到提供者列表和调用者列表,如下图配置中心:

d2b2733c9b43636c80f378cef070df5014fb8e55

c500ecbfc3dbb337fa6d697aa9214af0967d5577

hsf应用运行前提是:

1)消费端和服务端与配置中心网络是可达的

2)消费端可以远程telnet服务端的12200端口

在本地的运行环境下,我们先检查第一步,看下本地是否绑定jmenv.tbsite.net到配置中心ip地址,执行ping jmenv.tbsite.net

5020223a3b755f11307c697d9f1e2ab6a483f4dd

得到ip地址

再用得到的ip地址访问http://ip:8080

57d7f11fc6e6ff41aa99d50e4d7a91ab97adb4bb

因此可以很明确的知道是由于与配置中心网络不通,解决办法是需要将configserver搭建好后,在本地的hosts文件中绑定ipjmenv.tbsite.net


今天的分享结束啦,大家还需要哪些技术分享,欢迎留言,我们下期见。



相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
相关文章
|
3月前
|
Serverless 应用服务中间件 开发者
Serverless应用引擎问题之源码部署关掉如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
46 2
|
4月前
|
监控 应用服务中间件
如下请问EDAS的这个问题怎么解决? 应用id:2b0e6935-47fb-40ec-a11d-7dac320aecc1 集群中的节点内存是足够的,部署跑不起来 可以帮忙看看吗,以前集群下应用发布都是正常的,最近集群下应用部署基本都报错跑不起来,提示节点不可用
如下请问EDAS的这个问题怎么解决? 应用id:2b0e6935-47fb-40ec-a11d-7dac320aecc1 集群中的节点内存是足够的,部署跑不起来 可以帮忙看看吗,以前集群下应用发布都是正常的,最近集群下应用部署基本都报错跑不起来,提示节点不可用
60 2
|
7月前
|
Kubernetes 负载均衡 Serverless
通过EDAS部署并访问应用
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ASK,掌握微服务应用的部署和访问。
243 1
|
7月前
|
Kubernetes Serverless 应用服务中间件
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ASK,体验微服务应用的部署、访问和高级发布能力。
248 0
|
弹性计算 Kubernetes Cloud Native
云原生微服务应用平台 EDAS 2022 年度报告
最近一年来,随着我们的客户对于云技术的诉求从资源快速交付的服务,转变为对资源精益运用的服务。EDAS 团队结合公共云上所服务的企业类客户的几万个应用,选取了 8 个最具代表性的指标,进行了一次系统性的分析整理和总结,希望可以给当前正在从事软件架构的从业人员一个侧面的视角,来了解一些当下发生在身边的技术现象。
云原生微服务应用平台 EDAS 2022 年度报告
|
弹性计算 Kubernetes Cloud Native
云原生微服务应用平台 EDAS 2022 年度报告
最近一年来,随着我们的客户对于云技术的诉求从资源快速交付的服务,转变为对资源精益运用的服务。EDAS 团队结合公共云上所服务的企业类客户的几万个应用,选取了 8 个最具代表性的指标,进行了一次系统性的分析整理和总结,希望可以给当前正在从事软件架构的从业人员一个侧面的视角,来了解一些当下发生在身边的技术现象。
336 1
云原生微服务应用平台 EDAS 2022 年度报告
|
弹性计算 监控 负载均衡
EDAS 应用监控|学习笔记
快速学习 EDAS 应用监控,该功能主要包括三个功能,即监控大盘、基础监控以及服务监控。
191 0
|
应用服务中间件 开发者
EDAS 应用回滚、扩容和删除|学习笔记
快速学习 EDAS 应用回滚、扩容和删除
204 0
|
应用服务中间件 开发者
EDAS 应用创建、启动和停止|学习笔记
快速学习 EDAS 应用创建、启动和停止
259 0
EDAS 应用创建、启动和停止|学习笔记
|
应用服务中间件 开发者
EDAS 应用部署、启动和停止|学习笔记
快速学习 EDAS 应用部署、启动和停止
516 0
EDAS 应用部署、启动和停止|学习笔记

热门文章

最新文章