容器技术与微服务架构在跨境电商领域的集成实践_第1页
容器技术与微服务架构在跨境电商领域的集成实践_第2页
容器技术与微服务架构在跨境电商领域的集成实践_第3页
容器技术与微服务架构在跨境电商领域的集成实践_第4页
容器技术与微服务架构在跨境电商领域的集成实践_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、容器技术与微服务架构在跨境电商领域的集成实践容器技术与微服务架构在跨境电商领域的集成实践陈天影大纲一、跨境电商业务特征及技术特点二、微服务架构及面临的困境三、基于Docker的私有容器云平台设计 四、Docker实践中遇到的问题及解决方案五、总结一、跨境电商的业务特征及技术特点跨境电商的业务特征海外市场拓展服务跨境支付DHpay其他增值服务社交商务Socialshops综合物流服务DHlink互联网金融服务DHfinet约120万家国内供应商;1000万买家遍布全球230个国家和地区8个多语言平台4000万在线产品国际合作伙伴物流&支付跨境电商的技术特点可扩展业务多可管理流量大品类多高并发海外

2、部署可监控覆盖广多机房二、微服务架构及面临的困境通信和路由微服务框架服务注册中心-zookeeper集群监控服务提供者服务提供者多语言异语Pro集监控Storm治理控历史信息统计SLA关系分析追踪控制分析微服务架构要解决的问题:服务通信、路由寻址、服务监控、服务治理、多语言服务拆分之后(静态依赖关系)优势:p 解耦(模块化),易扩展p 效率(开发、测试、部署)p 高可用(多实例)p 弹性伸缩,灵活应对峰值流量(分布式、独立运行)p 多机房部署困境p 微服务的独立性使得系统具备弹性伸缩的能力,但仍需人为介入p 开发效率提高、交付速度有所提升,新业务上线仍受限于资源申请流程p 微服务架构导致模块数

3、量快速增长,服务粒度与资源粒度的矛盾p 一台服务器部署多个微服务,产生资源竞争p 运行环境差异性引发错误p 部署海外机房周期太长(每个应用一一分配资源、配置、部署)p 降低物力资源成本的需求p Dockerppppppp标准化:集装箱式的交付方式,快速部署,并避免运行环境差异化轻量:资源占用小、启动速度快,在一个服务器上可以部署很多容器便捷:直接部署应用、无需申请资源隔离:一定的资源隔离性灵活:可以快速回滚和更新变更开源:生态系统发展迅速成本:搭建成本低、学习成本低三、基于Docker的私有容器云平台设计设计原则兼容已有软件架构混合部署,历史资产无缝迁移减少对已有业务开发流程的影响整体架构容器

4、管理平台自定义调度策略容器统一配置中心(Etcd)统一监控Docker Registry(Harbor)Swarm服务集群虚机容器监控(shell + influxdb)服务ServiceDocker 主机Docker服务Docker 主机Docker服务apsarasapsaras服务监控物理机(zk+日志分析)监控监控服务Service主机监控zabbixSwarm AgentSwarm AgentDocker DaemonDocker DaemonInfrastructure物理机虚拟机AWS*云开发运维流程变化DEVOPS主机 维护Cluster1CommitDockerDaemon

5、Container ContainerGitBuildJenkins发布DockerDaemon ContainerContainerPullDhDocker Controllerdocker runMonitor管理平台Cluster2MonitorDockerDaemon ContainerContainerDockerDaemon Container ContainerDocker pullElastic computingRegistry镜像 维护p DEV:代码提交、构建、申请机器资源、发版p OPS:集群、主机维护(一键初始化),镜像维护,线上监控四、Docker实践中遇到的问题及

6、解决方案遇到的问题镜像容器状态不一致混合部署监控混合网段排障浮动IPProblem1- 镜像的制作和维护VS+p 优点: 镜像不用重新构建p 缺点: 所有宿主机维护应用副本 违背了Docker集装箱原则p 优点: 避免mount,应用和镜像一体p 缺点:频繁构建镜像数量猛增改造工作量大不同环境配置文件不同APP/BINBaseImageBaseImageAPP/BINSolution1-基础镜像+应用下载Build RepositoryDEVContainerAPP/BINContainerAPP/BINConf RepositoryDeployDEVContainerAPP/BINDocke

7、r DaemonRegistryOPSDockerfilep 开发时,镜像和应用分离, OPS维护Dockerfile, DEV维护代码p 部署时,镜像和应用合体p 多环境不同配置, 分布式配置管理中心+配置文件中心Problem2-混合部署的网段互通网络连通要求:DockerDaemonContainerVmware集群同一宿主机内的容器互通不同宿主机之间的容器互通容器与其他虚机、物理机互通-混合部署的必要条件Container其他物理机ContainerContainerDockerDaemonDocker集群Legacy资产Docker的网络方案p bridge模式:与外界通讯用端口映射

8、,NAT增加通讯复杂性p container模式:单机的多个容器之间共享网络p host模式:共享主机网络,端口无法重用,容易冲突p 自定义 Bridge network is useful in cases where you want to run a relatively small network on a single host. Overlay network multi-host connection, need swarm or a key store. MACVLAN network multi-host connection Customized network plugi

9、nSolution2-桥接网络DockerDaemonDocker集群DockerDaemonContainerEth0ContainerEth0ContainerEth0ContainerEth0打通容器与局域网网络Br0Br0Eth0Eth0 Docker Deamon -iptables=false -ip-forward=false物理交换机物理机其他Vmware集群Legacy资产 docker network create -driver=bridge -o =br0-gateway=4 -aux-a

10、ddress DefaultGatewayIPv4=54-subnet=/24 dockernet docker run -d -net=dockernet tomcat:7.0MacVlanp 优点:性能较好;可以在一台物理机上部署多个不同网段的容器p 限制:Docker 1.11 版本的MacVlan仍然是experimental; 在1.12版本已标注为: MacVlan driver is out of experimental #23524Problem3-混合网段的容器部署p Problem:网段过大导致广播风暴,混合网段如何权衡资源调度

11、和IP分配Solution3-自定义IP资源调度策略DhDockerControllerSwarm+自定义调度策略-label=?Cluster-label subnet=/24-label subnet=/24-label subnet=/24DockerDaemonContainer ContainerDockerDaemonContainer ContainerDockerDaemonContainer ContainerProblem4-浮动ipp Problem: 浮动ip 重启一下docker daemon/容器,i

12、p就变了 Ip混乱,不利于定位问题Solution4-使用固定ipp 使用固定ip docker run d -ip=3 -net=dockernet tomcatp 引入IPAM模块,负责IP池的创建和维护,IP资源的占用和释放Problem5-排障p 持久化日志 将日志mount到主机,主机上运行轻量级Agent进行日志采集, 集中分析p 实时查看:检查日志,调整配置,重启应用,查看资源使用率 装一个SSH Server vs Docker Exec别把容器当虚机使!Solution5-Docker Web ShellDocker Web Shell实现从Web浏览

13、器以类似SSH的方式登录并操作Docker容器ContainerDhDockerController DockerWeb BrowserWeb SocketDocker ExecDaemonContaineru Web浏览器负责界面呈现。运行JS脚本,通过Web Socket与Docker Controller建立通信链路。u DhDocker Controller是Docker容器应用的控制中心,作为桥梁,负责消息的转发。通过Docker HTTP API与Docker Daemon建立通信链路,利用Exec Start返回的数据流承载Docker Controller和Docker Dae

14、mon之间的交互数据。u Docker Daemon提供HTTP API接口给外部系统调用以访问容器内部。 这里用到的API包括:Exec Create、Exec Start、Exec ResizeDocker Web ShellProblem6-监控方案选择p docker stats, docker原生 memory计算争议 性能较差p cAdvisor,Google开发,容器和主机级别监控 一定的学习成本 与已有监控报警系统集成有难度Solution6-自研Shell实现p 容器级别数据收集p 应用级别数据统计p 主机级别-容器总数及状态(性能由zabbix监控)ShellonDocke

15、r Host数据采集ShellonDocker Host 报警系统InfluxDB策略和报警汇总分析数据采集ShellonDocker Host数据采集Problem7-容器状态的同步 异常退出 命令行创建ClusterDhDockerControllerDBDockerDaemon ContainerContainerContainerDocker机制deleteddocker importuntaggeddocker pushtagged镜像docker pull容器pushpulltagdocker tagimportdeleteuntagdocker deleteSolution7-容器import (osdockerApi /fsouza/go-dockerclient)func main() docker, err := dockerApi.NewClient(*dockerHost) if err != nil /Add logging here os.Exit(0)events := make(chan *dockerApi.APIEvents)docker.AddEventListener(eve

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论