玩转Edas应用部署

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

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




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

应用发布与管理

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

构建一个分布式系统

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

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

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

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

普通应用部署

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

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

docker应用部署

1、开通公测

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

2、ecs服务器docker转化

将选择的ecs服务器docker化

3、服务端应用创建

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

4、创建provider端hsf工程

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

配置文件如下:

 

代码工程如图:

将工程打成war包

5、provider端应用部署

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

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

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

7、创建消费端应用

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

消费端应用代码示例

8、docker容器查看

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

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

实战排查

  • 实战宝典

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

1、查看日志:

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

Agent的日志:

2、网络环境确认

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

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

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、端口问题

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

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

2、 xml配置错误问题

例如下面的异常信息:

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

Consumer端:

服务端:

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

3、hsf异常问题

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

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

例如下图:

可以看到应用启动时发现有异常:“HSF-0001”错误信息抛出,根据错误编码,找到对应文档,根据文档提示进行排查

https://help.aliyun.com/knowledge_detail/43936.html?spm=5176.7843910.2.3.p2s0GN

4、 网络环境问题

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

hsf应用运行前提是:

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

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

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

得到ip地址

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

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


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

时间: 2024-08-12 07:23:00

玩转Edas应用部署的相关文章

EDAS——如何快速定位OOM问题

本期分享专家:滨雨,有多年软件开发 + 项目管理经验,先后在华为.阿里基础架构部任职,在阿里云主要从事存储.cdn.视频.中间件等技术领域的支持,喜欢新技术,喜欢钻研,喜欢各种新的挑战. 什么是OOM? 相信很多"程序猿"都能知道,OOM 异常,就是我们常见的: "java.lang.OutOfMemoryError" 在应用开发中,是比较常见的一种异常,主要分为三种: 1. OutOfMemoryError: PermGen space 2. OutOfMemor

部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 Dashboard.本节将实践用 Graylog 来管理 Docker 日志. Graylog 架构 Graylog 架构如下图所示: Graylog 负责接收来自各种设备和应用的日志,并为用户提供 Web 访问接口. Elasticsearch 用于索引和保存 Graylog 接收到的日志. MongoDB 负责保存 Graylog 自身的配置信息. 与 ELK 一样,Graylog 的部署方案很灵

ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)

上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示. 几乎所有的软件和应用都有自己的日志文件,容器也不例外.前面我们已经知道 Docker 会将容器日志记录到 /var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log,那么只要我们能够将此文件发送给 ELK 就可以实现日志管理. 要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日

如何快速部署 Prometheus?- 每天5分钟玩转 Docker 容器技术(85)

上一节介绍了 Prometheus 的核心,多维数据模型.本节演示如何快速搭建 Prometheus 监控系统. 环境说明 我们将通过 Prometheus 监控两台 Docker Host:192.168.56.102 和 192.168.56.103,监控 host 和容器两个层次的数据. 按照架构图,我们需要运行如下组件: Prometheus Server Prometheus Server 本身也将以容器的方式运行在 host 192.168.56.103 上. Exporter Pr

部署架构云 轻松玩转企业云计算

近几年,云计算市场正在迅速崛起和发展,国内也涌现出一大批做云的厂商.其中阿里巴巴旗下的阿里云经过这几年的积淀已经成长为当前国内最大的公有云,所谓孤木不成林,阿里巴巴认识到云计算不能只是一个厂商唱独角戏,云计算需要一个足够大的生态圈.所以,阿里云在去年就开始着手构建云生态体系,并招募众多家云服务商作为合作伙伴. 上海驻云信息科技有限公司就是阿里云生态体系中的一员,在几年前就入驻了阿里云平台,并在2013年由阿里云上的一个客户转身变成了为各企业"上云"提供架构咨询服务的"牵线人&

玩转阿里云上Kubernetes 1.7.2 高可用部署

随着Kubernetes社区的不断壮大,其版本不断更迭,新功能及BugFIX也不断更新,促使其部署方式也不断的变化,本文将带您在阿里云上快速的部署一个高可用的Kubernetes集群.并且添加阿里云CloudProvider支持,让您可以方便的自由的使用阿里云上的SLB,NAS,阿里云盘,VPC网络等云资源. 部署结构图 如上图,脚本通过执行SSH命令的方式部署一个M + N节点的Kubernetes集群,M=Number(Master) N=Number(Worker). 支持VPC网络,确保

创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)

上一节我们完成了 OVS VxLAN 的配置工作,今天创建 vxlan100_net 并部署 instance. 创建 vxlan100_net 打开菜单 Admin -> Networks,点击 "Create Network" 按钮. 显示创建页面. Provider Network Type 选择 "VXLAN".  Segmentation ID 即 VNI,设置为 100. 点击 "Create Network",vxlan100

部署 DevStack - 每天5分钟玩转 OpenStack(17)

本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点 创建虚拟机 按照物理资源需求创建 devstack-controller 和 devstak-compute 虚拟机 安装操作系统 安装 Ubuntu 14.04,并配置 eth0 的 IP devstack-controller  192.168.104.10 devstak-compute    192.168.104.11 下载代码 下载 devstack 代码,并切换到 stable/liberty 分支 apt-

nova-compute 部署 instance 详解 - 每天5分钟玩转 OpenStack(28)

本节讨论 nova-compute,并详细分析 instance 部署的全过程. 先给大家道个歉:今天这篇文章的篇幅比以往要多一些,本来想分两次发,但考虑到文章的完整和系统性,还是一次发了出来,这次可能要超出 5 分钟了,大家见谅. nova-compute 在计算节点上运行,负责管理节点上的 instance. OpenStack 对 instance 的操作,最后都是交给 nova-compute 来完成的. nova-compute 与 Hypervisor 一起实现 OpenStack