国投瑞银微服务平台升级ServiceMesh实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 国投瑞银微服务平台升 级Service Mesh实践 国投瑞银基金信息技术部 马学宁
2. 目录 CONTENTS 01 引入背景 02 构建选择 03 升级服务网格 04 开发中关联技术 05 第三方软件应用接入
3. 升级现有微服务架构 微服务运行 Service A Container Istio-proxy Container Pod(Service A)
4. 容器 微服务 容器 编排 容器 微服务 云原生 服务 网格 不可变 基础设施 声明式 API 云原生 CNCF 2015云原生定义 • 容器:服务能从底层架构中分离出来,实现完 全的可移植性 CNCF最新云原生定义 • 服务网格(Service Mesh):下一代微服务框架,它实现了服务间通信的 基础设施层,通过该层可以服务进行最精细的管控,解决微服务架构的痛 • Docker Swarm:只能对Docker进行编排 • 命令式部署 点需求 • 声明式API:将部署的定义和具体操作拆分开来,声明定义了期望的状态 • 不可变基础设施:自包含、自描述可以完全在不同环境中迁移的实例,容 器镜像 • 敏捷开发,提升研发效率 • 不中断业务持续更新,持续交付、加速新技术落地应用 • 自动化运维,动态资源管理,能够让集群资源得到最高效的利用,降低运维成本 • 高可靠,弹性伸缩,易扩展,故障隔离保护,故障自动转移 • 异构语言/框架的统一治理
5. 第三方业务系统接入部署的统一规划与管理 微务运行 服务治理 服务发现 Project A 服务编排 服务监控 Project B Project C Istio + Kubernets cluster 熔断限流 安全控制
6. 目录 CONTENTS 01 引入背景 02 构建选择 03 升级服务网格 04 开发中关联技术 05 第三方软件应用接入
7. 集群构建方式选择 微服务运行 托管 只解决了集群部署问题,可以任意添加工作节点,保障托管 集群扩展性,可用性。 缺乏灵活性和自由,技术锁定 PaaS平台产品 内置Kubernets,提供应用开发工具和运行环境,能够快速的 构建、测试和部署应用,集成了gitlab,jenkins,监控,容器 管理 第三方服务商 如果Kubernets对你来说学习比较艰难,服务商提供的功能所 带来的限制可以接受,同时能及时响应你的需求 自建 有大量的功能可以配置,这种配置使它非常灵活和强大,可 以完全控制应用平台
8. 目录 CONTENTS 01 引入背景 02 构建选择 03 升级服务网格 04 开发中关联技术 05 第三方软件应用接入
9. 升 Overlay
10. CI/CD 微服务运行
11. CI/CD
12. 代理,服务发现和网格
13. 平台升级功能对比 微服务运行 服务编排 Docker Swarm Kubernetes Docker CRI(Containerd,CRI-O) 配置与秘密 Config, secrets Configmap, secrets 容器网络 Bridge,Overlay CNI(Calico,Cilium) 存储集成 NFS,CIFS/Volume CSI(CSI-SMB) 容器运行载体 服务发现/流量控制/安全 Traefik 持续集成/部署 监控/告警/ istio Jenkins pipeline Jenkins pipeline,ArgoCD、 FluxCD Prometheus,AlertManager,Grafana Prometheus,AlertManager,Grafana
14. 平台升级小结 • Containerd沿袭使用 • 为每个服务建Helm脚本 • 周边服务如Prometheus,Grafana迁入Kubernetes • 业务无侵入,所以代码层面基本没有改动
15. 目录 CONTENTS 01 引入背景 02 构建选择 03 升级服务网格 04 开发中关联技术 05 第三方软件应用接入
16. 服务容器化 • 基础镜像(Java版本) • docker-maven-plugin
17. 指标(Metrics) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
18. 日志(Logging) <?xml version="1.0" encoding="UTF-8"?> <included> <appender name="LOGSTASH-PROD" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>elk.company.com:5678</destination> <encoder class="net.logstash.logback.encoder.LogstashEncoder"> <shortenedLoggerNameLength>36</shortenedLoggerNameLength> <customFields>{"service_name":"${hostname}"}</customFields> <fieldNames> <version>[ignore]</version> </fieldNames> </encoder> </appender> </included>
19. 目录 CONTENTS 01 引入背景 02 构建选择 03 升级服务网格 04 开发中关联技术 05 第三方软件应用接入
20. 第三方业务系统接入 • 规范:服务命名,服务端口,服务容器化 • 服务指标Micrometer • 日志中心配置对接 • 服务发现对接 • 多租户和安全控制
21.
22.

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-09 09:50
浙ICP备14020137号-1 $Carte des visiteurs$