asp购物网站,珠海网络推广咨询,企业搭建pc端网站,四川省建设招标网站戳蓝字“CSDN云计算”关注我们哦#xff01;2015年#xff0c;谷歌成立了原生云计算基金会#xff0c;标志着CloudNative时代的来临。它以容器化封装、自动化管理、面向微服务等特点#xff0c;向人们展示了应用云化开发的新模式。在业界#xff0c;DevOps全栈开发运维模式… 戳蓝字“CSDN云计算”关注我们哦 2015年谷歌成立了原生云计算基金会标志着CloudNative时代的来临。它以容器化封装、自动化管理、面向微服务等特点向人们展示了应用云化开发的新模式。在业界DevOps全栈开发运维模式正在继续向前推进以解决传统单体架构的应用开发、测试、运维无法一体化而导致的上线周期长开发资源利用率低无法满足应用快速上线和迭代要求等问题。 2018年用友云开发者中心作为CloudNative模式的引领者作为DevOps模式的践行者在一次又一次的迭代研发中经历了层层的蜕变在4.19迭代中上线了应用流水线功能大大简化了应用CI、CD时的配置及操作提升了构建效率在8.19迭代中以提升平台稳定性为重心调整优化了平台底层架构使平台稳定性得到了大幅度提升在12.19迭代中创新性的研发了产品流水线功能打通了产品下各模块之间各环境之间的应用部署再一次提升了产品的部署效率。 当前随着开发者中心稳定性及易用性的提升越来越多的产品和服务正在向开发者中心迁移需要运维的应用规模成指数级增长。本文立足于当下环境以一名DevOpsyunwei工程师的角度向大家介绍一些在践行DevOps中遇到的常见的、共性的问题并给出这些问题的排查思路及解决办法助力应用部署过程保证顺利上云。 1.通过编写Dockerfile方式灵活构建应用 在开发者中心应用流水线中已经提供了不同类型应用的标准构建模式。同时为提供更加灵活的应用构建方式开发者中心提供了手动编写Dockerfile的模式来构建应用。通过手动编写Dockerfile用户拥有极大的自由度来构建镜像并可解决构建时遇到的一些问题。流水线支持Dockerfile的方式构建应用 例如针对原有的Node.js应用构建模式可能遇到以下问题容器启动之后才执行编译代码操作导致应用启动过程时间变长默认构建镜像的过程中无法选择npm源从而导致镜像构建失败 现在用户可以通过编写Dockerfile的方式在构建镜像的过程中指定npm源并在构建镜像的过程中即对应用进行编译。这样不仅解决了应用编译和构建的问题而且也加速了应用容器在部署时的启动速度。 本文给出一个具体的Dockerfile示例以供参考 FROM dockerhub.yonyou.com5000/node9 MAINTAINER 用户名 “user-emailyonyou.com” WORKDIR /design/workdir ADD ./ /design/workdir RUN cnpm install \ npm run builddll \ npm run build VOLUME /design/workdir/log EXPOSE 8080 CMD [“npm run start”] 2.快速查看应用运行日志和异常日志 在应用上云过程中经常会遇到需要查看应用日志以排查问题的场景。开发者中心提供了快速便捷的查看应用日志和异常日志的方法具体如下。 首先通过开发者中心进入应用管理界面在“实例”页签中可以看到容器日志和容器控制台。通过点击容器日志图标可以在弹出窗口中查看应用输出到控制台的日志通过点击容器控制台图标可以在弹出窗口中登录至容器内操作系统中进而执行Linux Shell命令以进行查看应用日志文件等操作。通过开发者中心的应用管理查看日志 具有管理员权限的用户还可以直接访问应用所在主机在后台主机中查看应用日志。 查看普通资源池即Mesos架构平台下应用日志可以在浏览器中访问主控机5050端口来访问Mesos-Master管控页面同时也可以访问主控机8080端口打开Marathon管理页面。两者均可以搜索到应用的容器进而查看应用运行日志。 3.排查应用无法正常启动的几种方法 在部署应用后可能会遇到应用无法正常启动无法通过健康检查的情形此时可以通过以下几种方法排查并解决问题。 1 确认配置了正确的健康检查配置项 导致应用无法正常启动并运行的原因有很多。对于Java Web等类型的应用开发者中心配置了默认的健康检查页面。当应用无法通过健康检查时可以先在应用管理菜单应用详情的属性页签下查看健康检查项。健康检查提供了HTTP、UDP、COMMAND等三种方式只有配置了正确的健康检查才能通过健康检查验证。健康检查配置项 2 确认配置了正确的应用服务端口 应用在启动会向系统申请服务端口这个端口会实际会在应用所在的容器中占用。在相应的配置项中必须指定了对应的服务端口才能保证应用的正常访问。 应用实际申请的服务端口可以通过进入容器内部查看。此时需确认应用的服务端口是否和应用详情的属性页签中容器端口项相一致。若不一致则将配置修改为相同的容器端口号点击保存并重启按钮使配置生效。容器端口相一致 3确认为应用分配了足够的系统资源 应用在启动和运行时需要向系统申请内存等资源。如果应用出现无法正常启动或不断重启的现象可能是由于分配的资源不足导致。 在开发者中心普通资源池部署的应用建议内存分配为1024MB~2048MBCPU可设置为0.2~0.5.在VIP资源池部署的应用内存最大值建议设置为1024MB~4096MBCPU最大值建议设置为1~2. 4从应用日志入手分析具体原因 在确认以上配置正确后若应用仍无法正常启动可以通过查看应用日志的方式寻找导致应用无法启动的原因。限于篇幅原因此处不再赘述。 4.应用通过健康检查但无法正常访问的排查方法 应用通过健康检查后可能会遇到点击应用的域名但却不能正常访问应用的情形。此时需从应用访问链路角度入手排查问题。应用健康示意图 对于普通资源池部署的应用本文提供一种排查问题的思路如下普通资源池应用无法正常访问排查问题思路 1进入应用容器中执行命令如curl -Lv localhost8080/api查看应用是否正常启动。若应用未正常启动可参考第3节内容排查问题 2若应用正常启动则需排查Marathon-LB负责均衡是否出现问题。通过浏览器或者Postman等工具请求192.168.0.338228/api.其中192.168.0.3为Marathon-LB所在服务器IP地址38228为应用随机映射端口号可在应用详情属性页签下的环境变量中查看。如不能正常返回结果则说明Marathon-lb负载均衡环节出现问题查看应用的随机映射端口号 3若Marathon-LB负责均衡无异常可在Redis中查询Ceryx为应用绑定的ip和端口是否存在问题。 5.应用部署时手动调试启动问题的方法 如果应用启动过程中遇到问题用户可以手动调试自己的应用具体的方法为 1修改启动命令以保证应用容器正常启动touch test tail -f test修改启动命令 2修改健康检项为1s以使容器绝对通过健康检查修改健康检查 3点击保存并重启按钮随后即可进入容器输入应用的启动命令启动应用或输入其他命令排查问题。进入容器执行命令 6.巧用环境变量灵活调整应用运行态 当Java应用启动遇到了PermGen等类似问题时可以在应用管理菜单属性页签下在环境变量里面设置相应的环境变量来增加应用的性能参数如图所示。设置环境变量 7.k8s启用host模式实现共享宿主机网络 开发者中心目前已经支持在VIP资源池以HOST模式部署的应用这可保证一些特殊类型的应用正常运行如Dubbo框架应用。在HOST模式下部署的Dubbo框架应用可以保证混布的Consumer也能够消费到部署到Kubernetes集群中的Provider. 具体的使用方法如图所示用户需要在应用详情-属性页签下的命令项中修改启动命令将容器默认的8080端口替换为系统分配的PORT0变量。应用以HOST模式部署 应用修改为host之后的启动命令为sed s/8080/$PORT0/g -i conf/server.xml /usr/local/tomcat/bin/catalina.sh run 8.URL中特殊字符的解决办法 开发者中心使用的基础镜像版本均为各对应类型应用环境的标准最新版因此一些老版本的应用特性可能与之不兼容如在Tomcat 7的低版本7.0.69中支持URL里包含“{”、“}”等特殊字符但是Tomcat 7的高版本不支持此类字符。解决办法是在应用详情属性页签下的命令项中增加如下命令echo tomcat.util.http.parser.HttpParser.requestTargetAllow|{} conf/catalina.properties /usr/local/tomcat/bin/catalina.sh run 小结 本文主要介绍了用户在使用开发者中心部署应用的过程中可能遇到的常见的、共性的问题并给出解决办法和问题排查思路。 当前用友云开发者中心仍然背负者CloudNative模式引领者的使命继续践行DevOps理念向用户提供更加完备的功能以协助企业优化产品架构提供弹性、灵活、高可用的运行环境协助用户应用顺利上云。 若您在使用开发者中心过程中遇到任何问题欢迎随时与我们的技术人员反馈如将问题反馈至我们设立的用户暖心群等您提出的问题将会得到专业人员的迅速解决1.微信群添加小编微信color_ld备注“进群姓名公司职位”即可加入【云计算学习交流群】和志同道合的朋友们共同打卡学习2.征稿投稿邮箱liudancsdn.net微信号color_ld。请备注投稿姓名公司职位。推荐阅读下一次 IT 变革边缘计算Edge computing企业云存储建设之路AI in 美团吃喝玩乐背后的黑科技开除“野狗”式程序员团队的效率提高了Windows 成“弃子”Linux 终上位可替代Android的6大开源移动操作系统程序员求助被领导强行要求写Bug该怎么办网友的回答让我笑翻程序员抢票的正确姿势 ↓↓交朋友还能抢票点击“阅读原文”打开 CSDN App 阅读更贴心喜欢就点击“好看”吧