中移动杭州研发中心 Å...

33
Å 中国移动杭州研发中心 异构私有云支撑架构演进及实践 演讲人:喻涵

Upload: others

Post on 01-Oct-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Å中国移动杭州研发中心

异构私有云支撑架构演进及实践

演讲人:喻涵

Page 2: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

1简述中国移动杭州研发中心采取云战略以来,基础架构的层层演进,云平台建设在各个阶段的服务能力表现。

中移杭研软件定义数据中心技术演进

2 中移杭研在处理“业务领域快速发散和用户群体高速增长”带来的集群扩展问题时的经验与教训。

海量业务支撑中的改造与变革

3因为涉及到集群扩容、新老环境迁移、硬件资源采购等多方面因素影响,整体云框架包含多种计算、存储资源架构,我们的运营体验。

OpenStack在异构环境中的运用体验

4 实践、创新、运营过程中的各种踩坑与定制化服务解决方案分享。

问题踩坑与定制化改造分享

Kubernetes

仅供技术论坛学习交流,请勿外传

Page 3: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

中移杭研软件定义数据中心技术演进

Page 4: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

企业信息化INFORMATION

物理机

生产系统、办公系统、测试环境全跑在物理机上,管理员进行逐台配置,测试阶段、上线阶段流程复杂,业务系统更新缓慢,应急能力弱。部门间技术栈差异严重,沟通成本太高。但人员少,业务少,

工作负载轻,勉强应对。节奏缓慢。

虚拟化转型VIRTUALIZATION

KVM时代

裸机成本过高,转向虚拟化方案,x86宿主机标准化,成本大幅度缩减。运维人员能力增长,开发环节和测试环节无变化。资源交付的速度得到了提升,但交付流程没有得到优化,同时产生了

资源抢占、调度顺序等新问题。

私有云框架PRIVATE CLOUD

OPENSTACK引入

虚拟化解决了资源成本的问题,但随之而来的是更多运维和开发的工作——一个个需要结合在一起保证整

体架构健壮性的模块:调度、监控、权限、计量……,是时候引入成体系的解决方案了。OpenStack的部署与二次开发,又一次优化了流程,同时为业务单元引入

了自服务与编排的概念。

仅供技术论坛学习交流,请勿外传

Page 5: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

容器化尝试CONTAINERIZATION

DOCKER引入

开发人员在交付测试团队进行维度丰富内容复杂的测试环节时,测试环境部署流程的不友好拖慢了迭代速度,继而不利于系统整体发展。容器的引入结合CI/CD等思想大大优化了这一过程。

统一管理MANAGERMENT

CMP一体化

随着部分生产应用也实现容器化后,力图体现企业综合能力的云管理平台开始了设计与实现。IT资源池化的场景里,各环节充分打通是实现内部精准调控,快速交付带动企业发展的必然趋势。

仅供技术论坛学习交流,请勿外传

Page 6: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

网络组成 存储类型 流程配置 服务治理基础单元

LinuxbridgeVLAN

OpenvSwitchVXLANflannelCalico

HostVirtual MachineDocker

ShellSaltStack

AnsibleDockerFile

k8s Deployment

Local DiskSAN NASCeph

ShellZabbix+SMS/We

ChatPrometheus

GrafanaELK

仅供技术论坛学习交流,请勿外传

Page 7: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

初代CMP

仅供技术论坛学习交流,请勿外传

Page 8: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

治理资源scale out和scale up和部分业务模板部署仍不够快

运维业务运维系统分散支撑精力损耗严重

发布多版本同时提供服务及灰度更新要求

测试既要快而准还

要稳而全

开发各项目组技术

栈差异明显

业务领域和规模爆发

式地增长

仅供技术论坛学习交流,请勿外传

Page 9: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

海量业务支撑中的改造与变革

Page 10: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

- 你们听说过…… - 没有,再问信不信……

……

docker进一步简化了业务部署,却给人员带来

了新的要求

已有的开发-测试-上线流程不能良好适配,VM级业务单元模式更得人心

应用怎么迁监控中心和日志中心怎么联动

如何做计量

微服务必须吗

动态负载配置

仅供技术论坛学习交流,请勿外传

Page 11: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Development

k8s-master

k8s-master

Full-Testing pipeline

Production

hook

push

code

scan

Ceph RGW

create

config

OpenStack Regional Provider

cluster

cluster

仅供技术论坛学习交流,请勿外传

Page 12: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

数据驱动测试

请求分发

异常用例自动生成 模板导入

行为驱动产生数据

网络抓包生成接口文档 单元测试生成接口文档 页面导入标准接口文档

文档转化

数据加工用例联想

Http/Https WebService Mock接口TCP/UDP

平台调度

持续集成每日构建

打通外部平台数据

结果分析

AssertJ多种方式 趋势分析 自动化报告数据库校验

返回校验

仅供技术论坛学习交流,请勿外传

Page 13: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

CMP in progress

OVS

Glance Nova Cinder……

Neutron

RBD Driver

OpenStack SDK + HOOK DevOps

用户系统 配额审批 发布流程 成本计量 业务模板

自服务门户 运维API

x86 NodeHDD Pool

FabricSSD Pool

私有云管理平台

计算资源池Ceph Cluster 网络接口

Docker Registry

RGW

MgrZone

x86 + ppc

Pod

Kube-proxy

k8s API on HA master Cluster

流程跟踪 弹性策略 调度 监控

ETCD

管理员门户

Ku

b

e

let

c

ali

co

x86+ppc64le node

PodDPDKSR-IOV

NFV

仅供技术论坛学习交流,请勿外传

Page 14: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

OpenStack在异构环境中的运用体验

Page 15: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

稳定

维护 性能

Kolla 支持服务的检测

与自恢复,进程隔离与

资源限制,避免单服务

故障造成节点性死锁

组件容器化

Kolla-ansible 使用

ansible playbook 配置

及编排服务部署

方便扩容、更新及恢复、

回滚

部署及扩容流程

剥离DB,独立部属并优化

实现性能最大化

Galera cluster on PPC

部分组件及服务拆分(external)

仅供技术论坛学习交流,请勿外传

Page 16: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Backend-HDD

Rbd-highRbd-normal

x86 PPC x86

SSD

HDD

CRUSHMAP

- pool_SSD

- pool_hdd

Backend-SSD

Cinder-volume

multi backend with kolla- Ansible tasks

ceph.conf ceph-2.conf name1.keyring name2.keyring

- Kolla config cinder-volume.confenabled backends[ceph] [ceph2]

cinder type-create + type-key set

仅供技术论坛学习交流,请勿外传

Page 17: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Ceph-

Luminous

OpenStack

Ocata

OpenStack

Pike

Mitaka Hammer

OpenStack

release

Recommended

Ceph version

NewtonJewel

Pike

LuminousQueen

Ocata

√ √

Ceph-

hammer

×

bluestore

仅供技术论坛学习交流,请勿外传

Page 18: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Ceph-

Luminous

( On PPC64le,no docker image support )

3 mon + 3 mgr + x osd

mgr ( 1 active + x standbys )

module : [ restapi + prometheus ] run in docker , on any host accessible to cephcluster

管理区域-监控节点

ceph/daemon:tag-stable-3.0-luminous-centos-7

restapi

binds: [“ceph.conf:ceph.conf”,

“readonly.keyring:readonly.keyring”]

pool2 pool3pool1

exporter

prometheus

仅供技术论坛学习交流,请勿外传

Page 19: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Alerting

Notification

仅供技术论坛学习交流,请勿外传

Page 20: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

OpenStack API

readonly

Cloud cluster

searchlight

response more slowly with cluster scale-out

仅供技术论坛学习交流,请勿外传

Page 21: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

问题踩坑与定制化改造分享

Page 22: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Q. 部署添加多后端 cinder-volume

via kolla-ansible deploy

-. 新增或在已有的cinder-volume服务上添加backend:- roles/cinder/tasks/external_ceph.yml

ceph1.conf → ceph1.conf

ceph2.conf → ceph2.conf

keyring → keyring

- templates/cinder-volume.json.j2

ceph1.conf ceph2.conf keyring

- kolla/config/cinder-volume.conf

enabled_backends = ceph1,ceph2

[ceph1] [ceph2]

kolla-ansible deploy

not via kolla-ansible deploy

-. 在已有的部署cinder-volume节点添加backend:- kolla/cinder-volume/ceph2.conf

- kolla/cinder-volume/keyring

- kolla/cinder-volume/config.json

ceph1.conf ceph2.conf keyring

- kolla/cinder-volume/cinder.conf

enabled_backends = ceph1,ceph2

[ceph1] [ceph2]

docker restart cinder-volume

怕把原来的配置改错/漏了,还可以手动

仅供技术论坛学习交流,请勿外传

Page 23: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

images

volumes

Q.多后端 cinder-volume 的秒级启动

ceph_1

volumesceph_2

glance image-upload

(define only one rbd store)

upload

[uuid]@snap

clone

boot from volume

×

cinder create --image [uuid]

cinder create --image [uuid]

cinder snapshot-create

(once)

downloadnot clone

[uuid]@snapclone

cinder create --snapshot-id

boot from volume

同样的api流程/方法在其它后端开启云主机怎么会这么慢

仅供技术论坛学习交流,请勿外传

Page 24: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Q.live-migration failed

same CPU flags

enough resources

all service enable

live-migration failed

VM

×

https://bugs.launchpad.net/kolla-

ansible/+bug/1729566

https://bugs.launchpad.net/kolla-

ansible/+bug/1745557

No update for /etc/hosts after adding a new compute

live migration failed because of host_uuid missing

restart nova_libvirtd

docker

manual define a

random uuid in

libvirtd.conf仅供技术论坛学习交流,请勿外传

Page 25: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Q. Gnocchi overload

ceilometer

×

gnocchi pool

IO blocked

仅供技术论坛学习交流,请勿外传

Page 26: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Q. Gnocchi overload

libvirt_exporter libvirt_exporter libvirt_exporter libvirt_exporter

prometheus

HTTP REST API

仅供技术论坛学习交流,请勿外传

Page 27: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Q. 应用/产品维度的计费及资源使用

dep1

dep2

dep3

dep4

OpenStack Project

……

通过API/SDK及一些数据处理,很容易获得openstack project维度的计费及云资源用量

API / SDK

+ data processing

app1

app2

app3

app4

app5

app6

app7

app8

app9

app10

app11

app12

app13

what for app dimension ?

仅供技术论坛学习交流,请勿外传

Page 28: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

Q. 应用/产品维度的计费及资源使用

dep1

dep2

dep3

dep4

OpenStack Project

app1

app2

app3

app4

app5

app6

app7

app8

app9

app10

app11

app12

app13

with nova tag:

-. 通过nova api 2.1以后引入的tag 功能,能统计云主机的数据,无法计入云硬盘的数据

with predefined display name:

-. 通过前端平台接口预定义资源的display name,可以对虚拟机、云硬盘同时进行计费及资源统计-. 计费及云资源占用的服务接口只包含对OpenStack resources的读操作,无写操作,故用前一章中的方法,用 searchlight接口提高实时效率。

仅供技术论坛学习交流,请勿外传

Page 29: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

基于私有云技术框架及服务水平之上的中国移动家庭能力开放平台

仅供技术论坛学习交流,请勿外传

Page 30: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

仅供技术论坛学习交流,请勿外传

Page 31: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

研发

QA

运维

仅供技术论坛学习交流,请勿外传

Page 32: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

开源云数据中心

Page 33: 中移动杭州研发中心 Å 异构私有云支撑架构演进及实践oss.komect.com/yuhan/2018sakura.pdf · docker引入 开发人员在交付测试团队进行维度丰富 内容复的测试环节时,测试环境部署

THANK YOU