123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- // tag::main[]
- = 云环境架构
- == 能力
- image::cloud/cloud-function.png[cloud-function]
- 平台应有能力
- image::cloud/cloud-platform.png[cloud-platform]
- * SaaS
- ** 最上层专注于业务的系统
- * aPaaS
- ** 自建基础应用服务平台,如网关、用户中心、认证中心、支付中心等共性业务组成的平台
- * iPaaS
- 自建基础环境:中间件、Runtime、监控系统、日志系统等组成的基础设施平台
- * IaaS
- 依赖第三方:阿里云、华为云、腾讯云等,包含服务器、存储、网络、操作系统
- 另外数据达到一定量,考虑自建数据平台 DaaS
- == 云原生系统的设计理念 footnote:[云原生系统的设计理念, https://jimmysong.io/kubernetes-handbook/cloud-native/cloud-native-philosophy.html]
- * 面向分布式设计(Distribution)
- ** 容器、微服务、API 驱动的开发
- * 面向配置设计(Configuration)
- ** 一个镜像,多个环境配置
- * 面向韧性设计(Resistancy)
- ** 故障容忍和自愈
- * 面向弹性设计(Elasticity)
- ** 弹性扩展和对环境变化(负载)做出响应
- * 面向交付设计(Delivery)
- ** 自动拉起,缩短交付时间
- * 面向性能设计(Performance)
- ** 响应式,并发和资源高效利用
- * 面向自动化设计(Automation)
- ** 自动化的 DevOps
- * 面向诊断性设计(Diagnosability)
- ** 集群级别的日志、metric 和追踪
- * 面向安全性设计(Security)
- ** 安全端点、API Gateway、端到端加密
- 问题&解决方案
- |===
- | 问题 | 解决方案
- | Session | 分布式缓存
- | 缓存 | 分布式缓存 Redis
- | Queen | 消息中间件
- | 日志 | EFK方案,中心存储和查询
- | 配置文件 | 配置中间件:apollo、nacos、configServer
- | 本地持久化数据 | 第三方分布式存储
- | IP会变 | 服务寻址
- | 长连接中断 | 重连机制
- |===
- === 日志采集 footnote:[日志采集, https://blog.csdn.net/macalzheng/article/details/104778439]
- == 部署:k8s
- image::cloud/k8s/k8s.png[k8s]
- . *ControllerManage* 负责维护集群的状态,比如故障检测,扩缩容,滚动更新等等。
- . *Scheduler* 负责资源的调度,按照预定的策略把pod调度到指定的node节点
- . *ETCD* 用做已执行存储,pod, service的集群等信息,k8s需要持久化的数据都存储在这个上边。
- . *Kubele* 负责维护当前节点上的容器的生命和 volumes,网络
- . 每个 *Node* 上可以运行一个 *kube-proxy*,负责 service 提供内部的服务发现和负载均衡,为 service方法做个落地的功能。
- . *kube-dns* 负责整个集群的dns服务,这个组件不是必须的,一般通过名字访问比较方便。
- . *dashboard* 集群数据的GUI界面。
- == 监控 & 报警:Prometheus 体系
- Prometheus的基本原理是通过HTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虛拟化环境监控系统,比如 VM、 Docker、 Kubernetes等。
- === 监控数据可视化 Grafana
- == 运维等级
- === 阶段一
- * 中间件、容器实例运行状态监控,服务可用性监控,异常事件联动
- * 实现容器组件和中间件实例的监控指标采集
- * 能够调用 prometheus接口查询组件实例监控指标,并展示
- * 部署拨测服务,编写脚本,对组件服务可用性进行探测
- * 在prometheus配置事件联动短信、邮件
- === 阶段二
- * 服务业务指标监控
- * 高可用集群状态监控
- * 日志采集查询
- * 日志调用链
- * 用户行为分析
- === 阶段三
- 服务节点动态伸缩,服务补丁集升级、应用灰度发布
- === 阶段四
- 中间件不停机升级
- // end::main[]
|