当前位置: 首页 > news >正文

长沙网站制作主要公司深圳建设资源交易服务中心网站

长沙网站制作主要公司,深圳建设资源交易服务中心网站,WordPress营销推广返佣插件,wordpress破解主题教程前言 五阿哥钢铁电商平台#xff08;www.wuage.com#xff09;是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造#xff0c;并充分运用双方股东优势资源#xff0c;即#xff1a;阿里巴巴在大数据、电商运营、互联网产品技术上的巨大优势#xff0c;尤其是在B2… 前言 五阿哥钢铁电商平台www.wuage.com是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造并充分运用双方股东优势资源即阿里巴巴在大数据、电商运营、互联网产品技术上的巨大优势尤其是在B2B终端买家上的独有市场基础以及中国五矿67年的行业经验和遍布全球的200多个营销和物流网点致力于为钢铁行业带来全新而持续的发展。Docker容器云平台是运维技术团队为内部服务整合、开发的一套容器管理平台支持基础设施私有云和公有云对接实现云上和云下实例使用一套平台进行管理业务实例按需弹性扩容和缩容规范化的项目管理流程、测试、上线流程旨在将开发、测试人员从基础环境的配置与管理中解放出来使其更聚焦于自己的业务开发。 本文主要结合在五阿哥业务场景情况从以下三个部分讲解 1、为什么使用Docker技术 。 2、Docker容器云架构方案。 3、技术的选型和实践。 为什么使用Docker技术 1.硬件资源利用率的问题造成部分成本的浪费 在网站功能中不同的业务场景有计算型的有IO读写型的有网络型有内存型的集中部署应用就会导致资源利用率不合理的问题。比如一个机器上部署的服务都是内存密集型那么CPU资源就都很容易浪费了。 2.单物理机多应用无法进行有效的隔离导致应用对资源的抢占和相互影响 一个物理机器跑多个应用无法进行所使用的CPU内存进程进行限制如果一个应用出现对资源的抢占问题就会引起连锁反应最终导致网站部分功能不可用。 3.环境、版本管理复杂上线部署流程缺乏增加问题排查的复杂度 由于内部开发流程的不规范代码在测试或者上线过程中对一些配置项和系统参数进行随意的调整在发布时进行增量发布一旦出现问题就会导致测试的代码和线上运行的代码是不一致的增加了服务上线的风险也增加了线上服务故障排查的难度。 4.环境不稳定迁移成本高增加上线风险 在开发过程中存在多个项目并行开发和服务的依赖问题由于环境和版本的复杂性很高不能快速搭建和迁移一个环境导致无法在测试环境中无法模拟出线上的流程进行测试很多同学在线上环境进行测试这里有很高的潜在风险同时导致开发效率降低。 5.传统虚拟机和物理机占用空间大启动慢管理复杂等问题 传统虚拟机和物理机在启动过程进行加载内核执行内核和init进行导致在启动过程占用很长时间而且在管理过程中会遇到各种各样的管理问题。 Docker容器云架构方案 基于Docker容器技术运维技术团队开发了五阿哥网站的容器云平台。整体架构图如下 基础设施 基础设施包含网络、服务器、存储等计算资源。 多云对接 私有云VMware和公有云aliyun进行统一托管包含网络区域配置VM实例开通及Docker的环境初始化配置等。 弹性调度 Docker容器云平台集群节点管理Saltstack进行配置管理镜像中心管理业务镜像统一监控统一日志管理定时任务管理。 服务编排 服务注册服务发现容器节点在线的扩容和缩容服务优雅上线回滚降级规范JavaNodePythoniOSAndroid等规范化的上线。 统一门户 规范化整个业务流程简洁的用户流程可动态管理整个云环境的所有资源。 技术选型及实践 镜像标准 众所周知Docker的镜像是分层的。对镜像分层进行约定第一层是操作系统层由CentOS/Alpine等基础镜像构成安装一些通用的基础组件第二层是中间件层根据不同的应用程序安装它们运行时需要使用到的各种中间件和依赖软件包如nginx、tomcat等第三层是应用层这层仅包含已经打好包的各应用程序代码。 经验总结如何让自己的镜像变的更小PUSH的更快 dockerfile构建应用镜像在中间件层遇到一些需要安装的软件包时尽可能的使用包管理工具如yum或以git clone方式下载源码包进行安装目的是将软件包的copy和安装控制在同一层软件部署成功后清除一些无用的rpm包或源码包让基础镜像的尺寸更小。Java应用镜像中并没有将jdk软件包打入镜像将jdk部署在每台宿主上在运行镜像时通过挂载目录的方式将宿主机上的java家目录挂载至容器指定目录下。因为它会把基础镜像撑得非常大在构建应用镜像时docker会对这两层进行缓存并直接使用仅会重新创建代码出现变动的应用层这样就提高了应用镜像的构建速度和构建成功后向镜像仓库推送的速度从整体流程上提升了应用的部署效率。编排工具 Rancher图形化管理界面部署简单、方便 可以与AD、LDAP、GITHUB集成基于用户或用户组进行访问控制快速将系统的编排工具升级至kubernetes或者swarm同时有专业的技术团队进行支持降低容器技术入门的难度。 基于以上优点我们选择Rancher作为我们容器云平台的编排工具在对应用的容器实例进行统一的编排调度时配合Docker-Compose组件可以在同一时间对多台宿主机执行调度操作。同时在服务访问出现峰值和低谷时利用特有的rancher-compose.yml文件调用“SCALE”特性对应用集群执行动态扩容和缩容让应用按需求处理不同的请求。[https:/zhuanlan.zhihu.com/p/2...]() 网络模型 由于后端开发基于阿里的HSF框架生产者和消费者之间需要网络可达对网络要求比较高需要以真实IP地址进行注册和拉取服务。所以在选择容器网络时我们使用了Host模式在容器启动过程中会执行脚本检查宿主机并分配给容器一个独立的端口来避免冲突的问题。 持续集成 监测代码提交状态对代码进行持续集成在集成过程中执行单元测试代码Sonar和安全工具进行静态扫描将结果通知给开发同学同时部署集成环境部署成功后触发自动化测试(自动化测试部分后续会更新https://zhuanlan.zhihu.com/id...。 静态扫描结果 持续部署 是一种能力这种能力非常重要把一个包快速部署在你想要的地方。平台采用分布式构建、部署master管理多个slave节点每个slave节点分属不同的环境。在master上安装并更新插件、创建job、管理各开发团队权限。slave用于执行job。 基于上述架构我们定义了持续部署规范的流程 开发同学向gitlab提交代码拉取项目代码和配置项文件执行编译任务拉取基础镜像将编译好的应用包打入生成最新的应用镜像推送到镜像仓库根据当前应用及所属环境定制化生成docker-compose.yml文件基于这个文件执行rancher-compose命令将应用镜像部署到预发环境发布生产前的测试环境相关配置、服务依赖关系和生产环境一致。预发环境测试通过后将应用镜像部署至线上环境测试结果通知后端测试同学。监控管理 通过zabbix 自动注册AutoRegistrationGrafana通过调用zabbix的API接口进行监控指标的统一展示。 日志管理 容器在运行时会在只读层之上创建读写层所有对应用程序的写操作都在这层进行。当容器重启后读写层中的数据包含日志也会一并被清除。虽然可以通过将容器中日志目录挂载到宿主机解决此类问题但当容器在多个宿主机间频繁漂移时每个宿主机上都会有留存应用名的部分日志增加了开发同学查看、排查问题的难度。 综上所述日志服务平台作为五阿哥网站日志仓库将应用运行过程中产生的日志统一存储并且支持多种方式的查询操作。通过在日志服务的管理界面配置日志采集路径在容器中部署agent把应用日志统一投递到logstore中再在logstore中配置全文索引和分词符以便开发同学能够通过关键字搜索、查询想要的日志内容。经验总结如何避免日志的重复采集问题 日志服务agent需要在配置文件“ilogtail_config.json”中增加配置参数“check_point_filename”指定checkpoint文件生成的绝对路径并且将此路径挂载至宿主机目录下确保容器在重启时不会丢失checkpoint文件不会出现重复采集问题。服务注册 etcd是一个具备高可用性和强一致性的键值存储仓库它使用类似于文件系统的树形结构数据全部以“/”开头。etcd的数据分为两种类型key和directories其中key下存储单独的字符串值directories下则存放key的集合或者其他子目录。 在五阿哥环境中每个向etcd注册的应用服务它们的根目录都以”/${APP_NAME}_${ENVIRONMENT}”命名。根目录下存储每个应用实例的Key信息它们都以“${IP}-${PORT}”的方式命名。下图是使用上述约定存储在etcd上某应用实例的数据结构 可以看到我是使用get方法向etcd发送请求的请求的是部署在预发环境PRE的搜索服务search在它的根目录“/search_PRE”下仅存储了一个应用实例的信息这个实例的key是“172.18.100.31-86”对应的value是“172.18.100.31:86‘’整个注册过程是这样的 ①通过代码为容器应用程序生成随机端口和宿主机正在使用的端口进行比对确保端口没有冲突后写入程序配置文件②把通过python和etcd模块编写的服务注册工具集成在脚本中将IP地址和上一步获取的随机端口以参数的方式传递给服务注册工具③待应用程序完全启动后由服务注册工具以约定好的数据结构将应用实例的写入etcd集群完成服务注册工作④容器定时向etcd发送心跳报告存活并刷新ttl时间⑤容器脚本捕获rancher发送至应用实例的singnal terminal信号在接收到信号后向etcd发送delete请求删除实例的数据。注在ttl基础上增加主动清除功能在服务正常释放时可以立刻清除etcd上注册信息不必等待ttl时间。 经验总结容器在重启或者意外销毁时让我们一起看一下这个过程中容器和注册中心都做了什么事情 应用在注册是携带key 和value时携带了ttl超时属性就是考虑到当服务集群中的实例宕机后它在etcd中注册的信息也随之失效若不予清除失效的信息将会成为垃圾数据被一直保存而且配置管理工具还会把它当做正常数据读取出来写入web server的配置文件中。要保证存储在etcd中的数据始终有效就需要让etcd主动释放无效的实例信息来看一下注册中心刷新的机制代码直接奉上 服务发现 confd是一个轻量级的配置管理工具支持etcd作为后端数据源通过读取数据源数据保证本地配置文件为最新不仅如此 它还可以在配置文件更新后检查配置文件语法有效性以重新加载应用程序使配置生效。这里需要说明的是confd虽然支持rancher作为数据源但考虑易用性和扩展性等原因最终我们还是选择了etcd。 和大多数部署方式一样我们把confd部署在web server所在的ECS上便于confd在监测到数据变化后及时更新配置文件和重启程序。confd的相关配置文件和模板文件部署在默认路径/etc/confd下目录结构如下/etc/confd/├── conf.d├── confd.toml└── templatesconfd.toml是confd的主配置文件使用TOML格式编写因为etcd是集群部署有多个节点将interval、nodes等选项写到了这个配置文件里。cond.d目录存放web server的模板配置源文件也使用TOML格式编写。该文件用于指定应用模板配置文件路径src、应用配置文件路径dest、数据源的key信息keys等。 templates目录存放web server下每个应用的模板配置文件。它使用Go支持的text/template语言格式进行编写。在confd从etcd中读取到最新应用注册信息后通过下面的语句写入模板配置文件中{{range getvs /${APP_NAME}/*}} server {{.}}; {{end}} 通过supervisor管理confd进程。confd在运行后会每隔5秒对etcd进行轮询当某个应用服务的K/V更新后confd会读取该应用存储在etcd中的数据写入到模板配置文件中生成这个应用配置文件最后由confd将配置文件写入到目标路径下重新加载nginx程序使配置生效。代码请参考https://zhuanlan.zhihu.com/id... 总结 以上是五阿哥运维技术团队针对Docker容器云平台建设实践目前已经将权限开放给开发同学实现云上和云下实例使用一套平台进行管理业务实例按需弹性扩容和缩容规范化的项目管理和发布流程实例和业务可按需进行扩容和缩容实现7*24小时“一站式”的持续交付开发同学更聚焦于自己的业务开发提高了公司的研发过程的效能。 接下来会不断优化和适配各种业务场景逐渐完善容器云平台同时会将容器云平台各种功能总结的经验和教训不断分享给大家给大家在工作中一些参考避免走重复的“弯路”。 作者简介刘晓明五阿哥www.wuage.com公司运维技术负责人拥有10年的互联网开发和运维经验。一直致力于运维工具的开发和运维专家服务的推进赋能开发提高效能。最后给自己代个盐~~欢迎大家有空时翻下我牌子(知乎号布道 )看看之前的文章顺便关注下专栏“开发运维”。
http://www.sadfv.cn/news/28298/

相关文章:

  • 全国旅游景点网站开源软件开发项目管理文档
  • 做网站如何防止被骗企业网站定制开发价格
  • 扬州电子商务网站建设代做机械设计的网站
  • 品牌网站推广软件wordpress 企业知识库
  • 快速搭建网站框架云尚网络科技有限公司介绍
  • 滁州哪里做网站建设网站建站
  • 网站设计教程网站dw网页制作教程div视频教程
  • 做网站优化有什么作用网站这么做404页面
  • 虚拟主机网站建设中国建设银行网站外汇
  • 网站建设策划书1万字网络架构图和拓扑图
  • 徐州网站建设市场河北建设工程信息网招标
  • 做网站后台的时候要注意什么网站备案账号
  • wordpress分类目录keywordseo关键词挖掘
  • 门户网站网页设计规范wordpress怎么接受邮件
  • 制作网站的模板下载阳江市商品房备案查询
  • 公司建网站哪家南宁好的网站建设公司
  • 网站源码上传安装模板网站建设教程
  • 站长工具乱码公司变更名字需要什么手续
  • 做旅游网站的产品经理如何吴桥网站建设价格
  • 新网站做内链百度关键词搜索技巧
  • 哪家公司做网站开发做得比较好哔哩哔哩网页版官网在线观看
  • 营销型网站建设818gx做网站的背景怎么做
  • 微信公众号的模板网站花钱做网站不给部署
  • 低价网站建设费用预算wordpress增加网址大全
  • 网站开发 前景建设局职责
  • 网站外链坏处免费行情网站链接
  • 谁做的12306网站网站建设需求书模板
  • ps网站如何做烫金的文字win10建设网站
  • 读书网站建设策划书3733手游网站在哪里做的
  • 文件传输协议登录网站比较好的网站设计