Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template...

19
© 2013 IBM Corporation IBM微服务平台(MSCP)技术交流

Transcript of Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template...

Page 1: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

©2013IBMCorporation

IBM微服务平台(MSCP)技术交流

Page 2: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

IT服务能力快速上线

开箱即用的10+开源服务,并同时提供稳定的集群扩展服务

支持不同类型新服务的注册和上线,并可通过对平台基础服务的消费实现对服务的高级

能力进行支撑

上线速度按小时来计量

系统稳定性确保预定义的SLA

基础资源层的性能稳定性设计(存储,网络,K8s …)

多租户的支持可以隔离不同区域的高负载

管理节点无单节点设计,数据有多冗余备份,业务系统运行的监控和日志分析,服务自

动恢复

多维功能组合支撑平台端到端的管理和使用自动化部署模块,最大化的做到系统自动化部署

引入标准运维模型减少运维成本

统一的日志管理帮助问题后续定位提供数据基础

可以和现有IaaS管理平台进行混合编排

Microservice Cloud Platform 设计定位

Page 3: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

端到端云计算解决方案架构

云基础架构层

VMs (Windows, Linux)

虚拟化环境(VMware, PowerVM, KVM, HyperV...)API接口层(EC2, ...)

LDAP

计算 (X86, Unix Server) 存储(IBM, NetApp, EMC, Hitachi,..) 网络 (Cisco, Huawei, ...)

运维管理能力层

IaaS管理层

接入层 IaaS服务消费者访问 门户 云管理门户

虚拟机部署& 配置

存储部署& 配置

网络部署& 配置

物理机部署& 配置

服务编排管理层

服务运营层

资源生命周期流程管理

用户和租户管理

服务目录管理

容量管理

恢复管理

软件分发补丁管理

镜像管理wi

用户认证和授权

服务模型定义

配置管理数据库

权限管理

SLA 管理

订单管理

监控管理事件管理

备份管理

流程管理

数据治理管理

安全管理

服务接入模版 服务模版定义 服务管理

基础应用PaaS层

非关系型数据库 Docker服务 Log管理服务

服务生命周期管理业务应用PaaS层

SaaS层 已有行业应用合作伙伴SaaS应用

智慧水管理

智慧污水处理

智慧物流

智慧清洁能源

智慧旅游

智慧交通

风险预警服务

旅游站点评估服务 服务质量测评服务

旅游监管服务

基础业务服务 数据分析及访问服务

液体天然气管理 智慧农业

智慧医疗 智慧商务

SaaS服务消费者 访问 接入 PaaS服务消费者访 问门 户

移动服务

关系型数据库服务 运行时服务 弹性扩展服务

接口查询服务

交通地图服务 水质量管理服务

预定服务 数据访问

数据备份 数据分析

数据存储

Dev/Ops服务

API管理

Page 4: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 架构总览平台管理员 平台使用者

4

Microservice Platform平台

微服务管理门户

服务组件自动化管理平台

服务共享配置管理

容量管理

监控管理服务管理 服务升级容器访问管理

网络虚拟化管理 分布式存储管理

服务编排

节点扩展管理

部署开通

存储管理 镜像管理

服务编排服务交付目录

用户管理

用户配额管理

容量和性能管理

平台&节点化管理

SDN

服务暴露

分区扩展管理

镜像管理 DNS管理

平台升级

平台配置管理

事件管理

服务请求管理

监控和事件管理

服务发现

安全&合规管理

多租户分区管理

备份和恢复管理

REST

网络自动化部署

日志管理

平台内置服务

DevOpS 服务

Spark 服务

Tomcat 服务

Kafka 服务

MariaDB 服务

Redis 服务

Ngnix 服务

Blockchain 服务

MQTT 服务

ELK 服务

Mongo 服务

… 服务

V1.0

V2.0

Page 5: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

5

Microservice通过服务编排定义服务模板

Single-NodeWebserverTierTemplate

AppTemplate

ScalableWebserverTierTemplate

n..m

HADatabaseTierTemplate

Single-NodeDatabaseTierTemplate

ApplicationArchitect

MiddlewareExpert

MiddlewareExpert弹性的选择定义应用和应用之间的拓扑

逻辑可根据不同应用部署情况决定

让客户把更多的精力集中在他们觉得重要的部分

– 独立服务的部署和服务的有效性,SLAs

保证应用部署设计的一致性

Capabilities

Capabilities

Capabilities

Capabilities

Requirements

Built by:Datacenter 1

Built by:Datacenter 3

Built by:Datacenter 2

不同用户定义的Pattern可以共享

AppArch

ApplicationTopoloy

服务编排

Page 6: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 实现 - 核心组件架构基于Kubernetes核心组件:

POD:Kubernetes最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例

Service:是pod的路由代理抽象,用于解决pod之间的服务发现问题。

ReplicationController:是pod的复制抽象,用于解决pod的扩容缩容问题。

Master : 主要运行服务节点来分配任务

Slave : 主要负责任务执行节点

服务关联:

服务通过预定于好的Label Selector 进行关联通过Service可以把集群提供统一出口暴露给使用者同时通过ReplicationController来管理集群的生命周期

Page 7: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

服务组件自动化管理

KubernetesMinion资源管理

Flannel Ceph

网络设备 存储设备

Slave

微服务服务编排与集成管理平台

Kubernetes

4

2

3

1

API

自动化部署的组件调用关系:

微服务平台当服务编排完毕后,会把服务创建请求发给Kubernetes统一处理,其内部组件有ReplicationController,Service和Lable 等提供服务的创建统一生命周期管理,服务标签定义来帮助服务发现

当服务被Master节点处理后会发给Scheduler组件来统一规划服务部署和申请资源,服务请求得到批准后会转发给相应的Slave节点进行实际部署,Slave节点有Kubelet和kube-Proxy两个组件组成

Ceph的功能是提供分布式存储帮助服务实现数据持久化,其中主要用到的是Ceph的分布式块存储RBD

网络虚拟化的实现方式是通过Flannel基于Vxlan实现的,网络不同节点信息统一存储在共享配置库当中,便于查询

1

2

3

4

SAN/NetApp

自动化组件和接口:• 微服务平台通过对开源代码进行改造和相应组件的升级,提高整体运行稳定性和性能,并

提供新的高级功能如:根据不同的负载进行并驱动弹性扩展等功能。• 异步式的消息处理和不同类型的预先资源部署策略定义帮助最终的资源部署可以跨主机进

行处理。• 微服务平台可以支持多种分布式存储类型,如:Gluster,NFS等。• 支持基于Overlay的技术或其他网络虚拟化技术实现

Microservice Cloud Platform 实现 – 资源的自动化部署 分布式存储管理网络自动化部署

Page 8: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 实现 - 网络设计网络虚拟化实现路径:

S1: 数据从源容器中发出后,经由所在主机的docker0虚拟网卡转发到flannel0虚拟网卡,这是个P2P的虚拟网卡,flanneld服务监听在网卡的另外一端。

S2: Flannel通过Etcd服务维护了一张节点间的路由表,在稍后的配置部分我们会介绍其中的内容。

S3: 源主机的flanneld服务将原本的数据内容UDP封装后根据自己的路由表投递给目的节点的flanneld服务。

S4: 数据到达以后被解包,然后直接进入目的节点的flannel0虚拟网卡,然后被转发到目的主机的docker0虚拟网卡,最后就像本机容器通信一下的有docker0路由到达目标容 器。

网络虚拟化管理

Page 9: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 实现 - 底层分布式存储设计

Microservice持久化存储•可以支持数据持久化存储•保证数据多冗余•保证数据传输效率

提供分布式存储的实现•分布式块存储•分布式文件存储•分布式对象存储

分布式存储管理

Page 10: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

10

Microservice Docker镜像管理集成§ 提供Docker镜像管理的功能包括:镜像版本管理,镜像内容分析和比较,镜像索引 等§ 可以通过可视化的方式显示私有和公有镜像的状况§ 提供私有镜像导入功能,并纳入到统一管理的平台§ 不同版本间的镜像,可以通过共享DATA文件以保证数据的一致性

部署

管理创建

提供快速的镜像部署

可以通过可视化的方式管理镜像和不同镜像的版本

提供DevOps的内置服务帮助镜像自动化生成和部署

镜像管理

Page 11: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

11

SCM/ITMfVE架构

… Servers, storage, network

IBM (hybrid and non-hybrid) and non-IBM Platforms (distributed and z)

健康仪表盘

IT 系统管理员容量管理员操作维护人员

Platform mgmt tools (Virtual Center, IBM Systems Director, DFM, etc)

用户接口 (DOJO)

TCR/Cognos

TDW 数据交互统一处理平台

容量规划和管理平台

Data Mart

智能报表

仪表盘

OS Agents

KVM Agent

监控数据收集代理

LiC (drill-down)

事件管理平台转发事件 (EIF)

Federated

容量计划

数据展示平台/分析平台

数据服务器

配置, metrics, 事件

Power Agents

提供不同类型的仪表盘从

不同维度展示系统的健康程度

数据聚合平台提供数据分析和报表展示功能

监控数据统一汇聚平台

统一事件聚合分析平台

提供多种类型的监控代理,

并可远程监控多个目标应用

通过监控历史数据的分析,实现提前预测对系统未来将出现的风险

VMware Agents

Storage Network

Microservice Cloud Platform 运维服务 - 平台监控 监控管理

Page 12: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

日志分析平台– 逻辑视图

系统日志资源库/应用日志资源库

接入层

最终用户自服务门户管理UIs

网络日志

KeyStone日志存储管理日志

操作系统日志

云管理员云用户

ESXi系统日志

日志收集管理

日志清洗 日志存储

日志分析展示

日志结果展示

日志关联模型 日志分析报警

日志分析引擎

Vmware VC日志

用户认证和授权

日志收集

统一日志管理平台

配置管理数据库

权限管理

日志分析订阅

日志预分析模块

事件管理

历史数据管理

数据库日志

应用日志分布式文件系统日

Swift日志

QPID日志

中间价日志

vCenterNxLog

Redis LogstashIndex Spark&Elasticsearch

KibanavCenterNxLog

vCenterNxLog

vCenterNxLog

Rsysloglogstashagent

日志管理

Page 13: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 实现 – 集群服务基于Microservice的服务创建过程:

• 创建Docker image根据Docker File , 并注册到Docker镜像管理平台,如有新的版本可以对不同版本进行管理• 通过注册的Docker image可以实现对拓扑逻辑元素的提炼,并通过在docker file里提供的环境变量实现服务创建• 服务创建可以选择不同的参数根据实际情况• 服务创建后的每一个节点都有Microservice来保证节点提供服务的有效性

服务编排引擎服务内容服务部署引

擎驱动器

Kubernetes+ETCD

Minion(Node)

Network(Flannel)

Storage(CEPH)

Kubelet KubeProxy

Dcoker

POD POD POD

Docker image镜像管理

Docker镜像参数管理

Docker镜像版本管理

Docker File的DevOps流程管理

可以编排的元素库

服务编排流程和组件提供库

服务Gateway

Page 14: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 的DevOps能力

§ 平台Docker Image的DevOps

§ 平台APP的DevOps

DevOpsComponents

DevOpsConsole

DevOpsServer

DevOpsRegistry(Optional)

Jenkins

Nexus

Gogs

Nginx

Maven

Page 15: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 实现 – MariaDBGalera 集群服务

主要功能:

• 同步复制• 真正的multi-master,即所有节点可以同时读写数据

库• 自动的节点成员控制,失效节点自动被清除• 新节点加入数据自动复制• 真正的并行复制,行级• 用户可以直接连接集群,使用感受上与MySQL完全一

优势:

• 因为是多主,所以不存在Slave lag(延迟)• 不存在丢失交易的情况• 同时具有读和写的扩展能力• 更小的客户端延迟• 节点间数据是同步的,而Master/Slave模式是异步的,

不同slave上的binlog可能是不同的

Micro Service

MariaDB MariaDB MariaDB

Page 16: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

Microservice Cloud Platform 实现 – Tomcat 集群服务

MicroservicePlatform

Tomcat1 Tomcat2 Tomcat3

共享Session

Redis Master Redis Slave1 Redis Slave2

共享存储

设计特点 :

• 同时可以部署多个节点支撑服务,并可以根据工作负载手工增加新的节点进入到集群管理提供服务

• 所有节点的Session可以实现共享,并存放到Reids里,来保证所有session可以在单节点中断时新的节点可以恢复

• Redis集群是以master和slave结构部署的

• 根据数据量的不同也可以扩展slave节点来提供集群服务

• 所有的数据可以持久化到Redis数据库并由共享存储来存储

Page 17: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

容器集群的安全

§ 操作系统防火墙的设置

§K8S 各组件端口的开放

§Iptables的Forward rules,使得内部路由能够工作,比如apiserver proxy

§为全部服务开启SNAT, e.g. --masquerade-all=true,使得集群内部都可以通过Service ClusterIP进行通信

§ 开启K8S CA认证和Basic认证§Set subjectAltName for certificate

§DNS.x = kubernetes§DNS.x = kubernetes.default§DNS.x = kubernetes.default.svc§DNS.x = kubernetes.default.svc.cluster.local§DNS.x = localhost§IP.x = 10.254.0.1§IP.x = 127.0.0.1

§ To do:§平台的各种服务的安全与SSL§平台服务访问K8S的SSL通信§平台级别OAuth的支持§Docker本身的SSL

Page 18: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

应用程序WAR进行装载

选择已有服务设计拓扑结构

TomcatMariaDB

Nginx

服务

DevOps服务自动化更新镜

通过服务编排引擎实现拓扑

部署应用部署验证

用户场景1. 装载客户应用并通过编排功能对现有服务实现拓扑设计并对应用进行部署

用户场景描述:用户A通过DevOps服务装载自己的应用并实现新的Tomcat镜像创建,并通过服务编排功能把现有的服务和新

的创建的服务进行拓扑逻辑设计,最终验证应用是否装载成功

通过现有的自动化流程驱动

Nginx集群

MariaDB集群 Tomcat集群

服务注册

•创建Tomcat集群服务

•编排部署的服务架构

通过编排界面进行服务组合

Page 19: Micro-Service Platform Technical Communication V2 · Single-Node Webserver Tier Template AppTemplate Scalable Webserver Tier Template n..m HA Database Tier Template Single-Node Database

用户场景2. 创建新的服务满足客户应用部署需求

用户场景描述:用户A需要部署新的应用,用到的服务是平台内置服务不提供的,用户A可以根据需要自己在平台上创建新的服

以普通用户身份登录

通过Dockerfile制作镜像

注册到现有平台

tomcatmysql

暴露镜像的变量接口

镜像管理平台服务

image

Image变量

镜像仓库地址

服务编排

已有服务集群

已有服务集群

已有服务集群

服务注册

•创建新的集群服务

服务接口暴露用户通过域名访问

•编排部署的服务架构