IoT微服务容器化之旅

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. IoT微服务容器化之旅 黄川 2019-12-28
2. 目录 1 公司简介 2 K8S核心概念 3 业务迁移实践 4 未来
3. 1 公司简介
4. G7 & 大数据 全球最大 物流车队综合服务平台 G7基于行业独有的物联网技术平台,向大型 130 万+ 7 万+ 25 万+ 车辆 客户 日均运输线路 7.8 千万+ 1 .3亿公里+ 6.8T+ / 天 日均事件 日均里程 日均数据量 21 亿+ 40个百分点 1.2万+ 平台月结算金额 事故赔付率下降 油气站点数 物流企业和数以万计的车队提供车队综合管 理与服务解决方案,覆盖安全、结算、金融、 智能装备等车队运营全流程。 43 亿+ 累计发放贷款数
5. API 日调用量 6200 万 G7S 管车 APP 小雪平台
6.
7. 2 K8S核心概念
8. 物理机时代 虚拟机时代
9. Service对外服务网络模型 同一组pod,对外提供服务的流量入口,提供服务注册发现、负载均衡的能力 ClusterIP (ipvs) pod NodePort (kube-proxy) pod pod pod SLB NodePort (kube-proxy) pod pod NodePort (kube-proxy) pod pod
10. 网络模型 虚拟机、容器网络直接互通, 提升网络性能 解决非K8S微服务体系中的注册 机制中节点注册信息问题 Router 注册路由 VSwitch VSwitch calicoif vm1 vm2 RDS1 calicoif pod1 vm1 eth0 calicoif pod2 calicoif pod3
11. 3 业务迁移实践
12. 设备终端接入云平台 云平台 MQ MQ/HTTP/RPC 大多基于TCP/UDP协议,由设备厂商自定义 接入平台 终端到云平台协议进行解析 TCP/UDP 云平台下发消息
13. 分支模型 分支 自动部署 类型 develop 是 持久 release/x.x.x 是 临时 master 否 持久 hotfix/x.x.x 是 临时
14. Project
15. GitLab-CI示例 stages: - test - build - ship - deploy cache: untracked: true key: ${CI_BUILD_REF}_${CI_BUILD_REF_NAME} job_master_build: stage: build image: ${G7PAY_DOCKER_REGISTRY}/${BUILDER_GOLANG} environment: name: test script: - project run build only: - master job_master_deploy: stage: deploy image: ${G7PAY_DOCKER_REGISTRY}/${BUILDER_RANCHER} environment: name: test script: - project deploy --env ${CI_ENVIRONMENT_NAME} only: - master
16. 容器中的微服务 Spring Cloud Eureka Container Container sidecar ServiceB(PHP) ServiceA(Java)
17. 容器化JVM参数 内存实际大小 = 堆内存 + 线程数 * 线程栈大小 + 永久代 + 堆外内存 2G + 1000 * 256K + 256M + (~2G) = 2.5G~4.5G JVM 对容器的支持: JDK8 u131+/jdk9 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap JDK11 -XX:+UseContainerSupport
18. 开发规范
19. 单元测试规范
20. 日志 等级 说明 debug 程序开发调试 info 记录一些日志信息 统一日志采集 notice 需要注意(应用访问日志) 应用保障日志通过stdout、stderr输出 warning 警告(有可能出现程序故 障) 统一日志采集配置模板 error 致命错误(程序已经无法 正常运行) critical 危险的错误(影响关键业 务) alert 必须报警(报警) emergency 紧急处理 (报警必须及时 处理)
21. 监控 业务监控 日志监控 应用性能监控 Prometheus、 ELK 天枢(Cat) Pod Kubernetes Node(VM/物理机) Prometheus
22. 应用性能监控
23. 平台服务架构 油感设备 视频设备 协议解析中心 消息交互中心 升级部署中心 消息转发中心 里程数据 打卡数据 便携设备 ADAS G7盒子 Eaconn IOT容器化接入平台 油耗数据 EMS Rancher容器管理平台 FMS 天眼设备 TQ设备 清研设备 其他设备 轨迹数据 ....
24. 容器接入原则 • 基础镜像统一由运维提供,采用多阶段构建减少镜像大小 • 按照产品划分命名空间,命名空间指定配额限制 • 产品下具体应用放入对应命名空间 • 应用配置具体的request、limit进行资源限制,保障集群服务可用性 • 应用推荐配置liveness、readness用于保障服务流量可用性 • 每个产品使用独立 slb、独立ingress controller,保障产品流量之间隔离
25. 镜像多阶段构建
26. 避免混用SLB SLB 192.168.20.101 xxx.huoyunren.com/app2 xxx.huoyunren.com/app1 K8S APP2 APP1 POD POD ECS1 ECS2
27. 4 未来
28. 1、完成对Rancher容器平台到K8S的迁移 2、更完善的CI/CD工具 3、完善以应用维度的监控系统,应用健康状况 4、支持更多样化的日志采集、统一日志规范、及完善的链路跟踪体系
29. The End

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-23 02:35
浙ICP备14020137号-1 $Map of visitor$