云技术驱动的架构演进与变迁
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用与推广
Docker OpenStack平台稳定性测试:
OpenStack平台本身是一个SOA的项目,具体服务的参数设置需要依据 集群规模,服务搭建架构等进行相关测试和调优。Fake是OpenStack Nova Compute下的一个Driver,绝大多数Compute API走到这里简单处 理后返回成功。 通过使用Docker来封装Nova Compute,并在Nova配置中使用fake。这 样每个Docker Container便成为一个虚拟的Nova Hypervisor Node, 便可 以模拟Controller 集群管理超大量Compute节点的状况;同时fake driver 收到请求直接返回成功的特性,让我们可以测试超大量的VM同时创建 和同时销毁时给控制节点和MQ带来的压力状况。
OpenStack Core Services(Juno) 计算 存储
Swift
HDFS(HBase)
数据库管理平台 自服务平台
网络
多数据中心
开发、测试、压测、预生产、生产环境
云技术与架构演进之路
单体应用 紧耦合、RPC
分层、纵向切割
Gartner对运行在云端的三大类应用工作负载进行了定义: ▪ 云托管系统被认为是摆脱基于硬件的昂贵解决方案的“初级阶 段”。云托管系统从专用的手动管理硬件转移到了云配置的裸 机和虚拟服务器。 ▪ 云优化服务通过云能力支持系统的可用性和性能,例如允许软 件修复和扩展其资源。云优化后的工作负载仍然运行在服务器 上,不过它们可能会通过编排系统实现虚拟化和自动配置。 ▪ 云原生系统通常会有其他的抽象层作为应用架构(例如PaaS或 容器框架)的一部分。例如,云原生应用不会有专用的服务器 、存储设备,它们完全嵌入到了隐匿的传统基础设施资源的云 框架中。
Kubernetes & CI/CD:
• Kubernetes内部负载均衡器实现及其访问模式 - kubeproxy内部负载均衡器实现原理 - kubeproxy NodePort - Kubeproxy ServicePort • 外部访问k8s Service - 直接访问POD - 外部负载均衡器 - 通过NodePort访问内部负载均衡器 - 内外结合 • Kubernetes对接ELK
应用架构
Restful、消息队列 异步化
微服务化
OpenStack 的两个发展阶段: ▪ 第一阶段 OpenStack as IaaS ▪ 第二阶段 Solutions on OpenStack • 用户体验 • 可管理性 • 性能 • 稳定性 • 扩展性 大数据、NFV、物联网、区块链、金 融企业的核心交易系统、电商企业的核心网 站
• 系统环境定制化 • 应用配置
综合ansible + Heat搭建复杂的完整环境 • 高可用数据库集群自动化 • 中间件、缓存集群自动化 • 应用批量部署自动化 • 完整的“压测”、“预生产”环境自动化 • 中间件、缓存的Kerbernete适配 • 系统架构“微服务”化
“环境”自动化
Kerbernetes
Docker Nova项目:
Docker容器技术的
服务云化这是第一步。需要其他开发团队逐步熟悉面向容器的开发以及我们 对Docker本身逐步的摸索,才敢真正把环境切换到Kubernetes/Mesos上来, 进而推进Magnum。 通过Nova API调度Nova Compute生产 Nova instance,而Nova instance的类型 由具体配置的hypervisor Driver来决定,这里我们设置Docker作为Driver就可 以让Nova Compute节点生产Docker。NovaDocker项目来自于社区,我们结合 社区代码进行了一定量的修改,并且在镜像定制,具体使用上有一些自己不 同的方式.
云技术的演进
物理化运行环境
• 众多数据库、中间件、缓存、应 用“精巧”地运行同一物理服务器 • 批量应用部署 • 高可用中间件部署 • 批量应用部署 • 高可用中间件部署 • Tomcat、Apache应用Docker化
OpenStack+KVM
ansible自动化
“Docker”化
heat + Cloud-init
云技术驱动的架构演进与变迁
组件化、系统化、微服务化
云平台和服务模型
社交/服务 主机入侵检测系统 KVM/Docker安全组 网络流量监测系统 应用防火墙 数据库审计系统 边界防火墙 堡垒机 安全扫描引擎
KVM Docker
企业解决方案 即时通讯 Jetty Neo4j
NodeJS
地产/物业 解决方案 图像/图片处理 与检索
部署架构 Docker
OpenStack + KVM
Kubernetes
CI/CD
物理机运维
软件设计与架构痛点:
没有治理的应用架构
• 大量开源组件的使用: - 多种数据库: Mysql、MongoDB - 多种中间件:Zookeeper、Kafka、dubbo、Redis、 Disconf… • 中间件使用: - 高可用缺失 - 共享与非共享缺规则 - 聚合组件的泛用 • 架构设计: - 紧耦合 - 缺乏子系统边界 - 调用关系复杂 • 应用配置与管理 - pom vs. Disconf - Jekins 传统-应 S 用 V N 部 v署 s. 的 git 痛点 • 运维人员参与的人工或者半自动化方式,错误率高 • 多环境部署,需要大量时间,效率低下 • 部署过程中,相关数据无法保存,难展现,难追溯 • 需要较多运维人员参与,人力资源成本高 • 重复性劳动,对人员成长及团队稳定不利
RabbitMQ
Zookeeper
政务解决方案
数据管理与分析
开发/测试
To来自百度文库cat Apache
MongoDB
Spark
Redis
Storm
Memcache
自动化部署 监控告警平台 日志分析平台 配置管理数据库
Mysql
Kafka
OpenStacK Trove(Liberty)
OpenStacK Sahara(Liberty)
OpenStack 自动打包:
私有云平台压力通常没有公有云高,但是个性化定制更强。我 们内部的定制化需求也很高(例如集群中计算资源的主机级别 和机架级别的反亲和等等)。内部维护了两个OpenStack的版本 ,大量编译的依赖和依赖的冲突以及编译后的脏数据成为我们 的痛点。 将OpenStack所涉及的包括Nova、Nueturn、Glance、Cinder、 Trove、Sahara等项目的编译依赖环境统统放进一个Docker Image 中。通过参数来指定要编译的OpenStack的版本和组件。 这样便不需要再维护一个编译环境了,只需要维护编译镜像和 GIT库内部源码。可以任意生成打包环境