用BOSH自动部署大规模 云平台Cloud Foundry

Slides:



Advertisements
Similar presentations
MMN Lab 未來教室與雲端化學習 Yueh-Min Huang Department of Engineering Science, National Cheng Kung University, Tainan, Taiwan
Advertisements

© 2014 VMware Inc. All rights reserved. VMware 大專院校軟體聯合採購方案 – Education Licensing Program Practical, cost-effective options for qualified educational institutions.
Web Role 的每台虚机运行有 IIS ,用于处理 Web 请求 Worker Role 用于运行后台进程 Cloud Service 是什么? 支持多层架构的应用容器 由多个 Windows 虚拟机集群构成 集群有两种类型: Web 和 Worker Cloud Service 做什么 进行应用的自动化部署.
云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
云计算及安全 ——Cloud Computing & Cloud Security
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
Bomgar Remote Support 最安全的遠端資訊服務系統平台
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
Big Data Ecosystem – Hadoop Distribution
教育雲端科技的現況與未來發展 臺北市政府教育局聘任督學 韓長澤.
基于CloudFoundry的私有云平台
VMWARE 大藍圖 SOFTWARE-DEFINED ENTERPRISE
思科Oracle RAC解决方案 Starry Wu UCS -GC.
share box user research finding
网格 及其应用的一些相关技术 高能所计算中心 于传松
浅谈SDN,NFV与NV 曙光信息产业股份有限公司 网络架构师 薛保平.
Network Storage and System Virtualization Technology
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
台灣雲端運算應用實驗中心研發計畫 計 畫 期 間:自98年7月1日至99年6月30日止 執行單位名稱 :財團法人資訊工業策進會 國立中山大學.
操作系统结构.
大專院校校園e 化 PKI、智慧卡應用與整合.
大数据在医疗行业的应用.
2012/11/12 Virtual Machine.
汉周云计算白皮书简版 汉周云计算 汉周云计算白皮书简版 汉周云计算
HDS 資料保護解決方案更新.
EMC VMware架构下的备份解决方案 中国解决方案中心.
Dave 云的未来: PaaS软件 Dave
| 台南市教育局資訊中心 教育雲 飛番雲端中心 儲存雲與平台發展
雲端運算虛擬主機技術的發展.
Microsoft OEM Windows Server
Review Question 安裝 or 管理過 Windows Server? 安裝 or 管理過 Unix-like Server?
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
作業系統 補充: 雲端運算.
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
伺服器虛擬化環境建置 報告人:林又新
从UNIX到Windows的 电信软件移植实践
中国式的云计算服务模式 中企开源信息技术有限公司 CE Open Source Software.
Linux 圖形操作介面 GUI -- X-window 與 Webmin
SOLUTIONACCELERATORS Windows Vista Hardware Assessment 1
Microsoft OEM Windows Server
Cloud Computing(雲端運算) 技術的現況與應用
斯巴達帶大家上雲端.
Special English for Industrial Robot
崑山科技大學 曾 龍 資訊工程系系主任 數位生活研究所所長 雲端運算與資通安全研發中心主任
Android 课程讲义 智能手机开发
物流管理的层次 战略 战术 运营 执行 .目标 .供货政策,服务标准 .物流网设计 作什么 制定目标,政策 .需求预测
國立屏東高級工業職業學校 雲端網路及 雲端開系統介紹
J&K STACK CMDB 产品介绍 Multi-Cloud Management Capabilities Service Provider.
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
顧武雄 Jovi Ku Microsoft特約資深講師
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
中国式的云计算服务模式 中企开源信息技术有限公司 CE Open Source Software.
微软云计算 --Windows Azure platform
SAP R/3架構及前端軟體安裝 Logical View of the R/3 System SAP Frontend 6.2安裝
Sensor Networks: Applications and Services
Real-Time System Software Group Lab 408 Wireless Networking and Embedded Systems Laboratory Virtualization, Parallelization, Service 實驗室主要是以系統軟體設計為主,
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
班級:四企四B 指導老師:李文瑞老師 組員: 莊煜麒4950L089 黃暉原4950L109
NASA雜談+電腦網路簡介 Prof. Michael Tsai 2015/03/02.
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Introduction to Service Science 课程概述
第 18 章 雲端計算.
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
虚拟化技术 VMware ESXI 南京市玄武中等专业学校 胡刚强.
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
ADX series Configuration
Requirements for SPN Information Modeling
Presentation transcript:

用BOSH自动部署大规模 云平台Cloud Foundry Henry Zhang, VMWare, China @张轩宁的围脖 Jacky Li, VMWare, China

演讲内容 Cloud Foundry云平台简介 Cloud Foundry架构 Cloud Foundry部署模型 BOSH工作原理 用BOSH自动化部署Cloud Foundry 用BOSH实现Cloud Foundry弹性 BOSH应用实例

Cloud Foundry 云平台简介

应用的复杂度: 开发 Sound architecture: future proofing without overdoing Unit and integration tests Responding to changing business needs Confusing technology landscape

应用的复杂度:部署和运维 Choosing the right hardware, operating system, web server Monitoring applications Responding to scalability needs Dealing with hardware- and system-level failures Upgrading without substantial down time

Implementation overhead 内在的和实际的复杂度 怎么办? Implementation overhead Implementation 实际的 复杂度 Functional logic 内在的 复杂度

云计算的三个层次 SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure as a Service Cloud computing as most vendors describe it breaks down into three fundamental layers. You’ve probably seen this before, so we’ll be brief. At the top, we have SaaS, or Software as a Service. This is layer that faces consumers and has been around the longest. The .com buzz in the 90s was an early form of SaaS. Instead of installing software onto a computer, we interact with a server via a web browser. Instead of Outlook on a desktop, we use GMail in a browser. At the bottom, we have Infrastructure as a Service. This is about moving away from physical machines in a data center to virtualized compute resources. Need a new server? Avoid the P.O. and just buy access to someone else’s compute resources. Amazon’s EC2 is king in the public space, VMware’s vSphere is dominate in the enterprise and Open Stack is the new incumbent. So if SaaS targets consumers and MBAs, IaaS targets sysadmins, what about developers? That’s where PaaS or Platform as a Service fits in. PaaS is the youngest of these layers and makes it easy to deploy applications without installing an operating system, application server or database servers. PaaS is what this talk is about.

Cloud Foundry 开放 PaaS Private Clouds Cloud Provider Interface Data Services Private Clouds Msg Services Cloud Provider Interface Public Clouds Application Service Interface Other Services Micro Clouds

Cloud Foundry 开放 PaaS Private Clouds Cloud Provider Interface Data Services Private Clouds Partners Msg Services Cloud Provider Interface Public Clouds Application Service Interface Other Services Micro Clouds Apache2 license

Cloud Foundry 的架构

Cloud Foundry 层次 Clients Inner Shell (CF) Outer Shell (BOSH) Infrastructure as a Service Hardware (CPU, Memory, Storage, Network)

Cloud Foundry 内壳(Inner Shell) Developers Users Routers CloudControllers Stagers App App HealthManager Services Execution Agents (DEA) Pool Messaging

Cloud Foundry内部架构 cloud stager controller health manager cc - db App meta data staging jobs redis cc - db cloud controller stager package cache blobstore uaa - db dea health manager staging logs uaa - AuthN dea dea dea dea dea Staging: creating a runnable application, bundler, modify a DB cofig. Like bookstore We stick the user/pass connection, you don’t this. Works for Java Packaged cache – “foo packaged in rails” Blobstore – where the app is ready to run with all of it’s depndecies, it’s packaged up in the blob store and DEA fetch it for execution App meta data – CC tells the DEA tells this is a java app

设计原则 可动态发现组件 组件之间无依赖性 启动顺序无关 各组件独立的扩展

Cloud Foundry部署模型

Cloud Foundry 组件模型 ccdb cloud controller stager uaa nats router health manager dea app service Multiple node types Multiple instances of most node type

Cloud Foundry 部署模型(1)- 单结点 OS Single node deployment model 单虚拟机或物理机

Cloud Foundry 部署模型(2)- 多结点 VM ccdb VM cloud controller VM stager VM stager VM cloud controller VM stager VM uaa VM nats VM router VM router VM health manager VM dea VM service VM dea VM service VM dea VM service VM service VM dea Multi node deployment model 每台虚拟机(或物理机)部署一个或数个组件

CloudFoundry.com生产系统部署的实例 500 – 5,000 VMs 40+ unique node types 75+ unique software packages 75+ unique environments Small team

Cloud Foundry两种部署方法(1) dev_setup 手工部署 直接在操作系统(ubuntu 10.04)中用脚本部署 可部署单结点或多结点 适合小规模实验的环境 支持虚拟机和物理机 每台机器需要手工安装和修改配置文件 系统扩容能力和弹性计算较差

Cloud Foundry两种部署方法(2) BOSH 自动部署 自动化大规模部署多结点系统 集中式的配置文件 支持自动化系统扩容 仅支持虚拟机 对各类IaaS平台集成 (CPI) 在Cloudfoundry.com生产系统中使用

BOSH工作原理

BOSH is a recursive definition of BOSH Outter SHell

BOSH是大规模自动化管理工具 来自Cloud Foundry的开源项目 通用的自动化部署工具链 可以部署多种软件 Gerrit, Jenkins, Wordpress, MySQL, … http://boshdb.com

BOSH在Cloud Foundry中的作用 部署系统 更新配置 版本管理 监控运行

BOSH的内部结构

BOSH部署原理(1) BOSH BOSH是部署系统的总指挥 管理员通过BOSH CLI工具发送 指令给BOSH BOSH CLI Operation Staff BOSH是部署系统的总指挥 管理员通过BOSH CLI工具发送 指令给BOSH

BOSH部署原理(2) IaaS BOSH CPI ( Cloud Provider Interface)支持多种 IaaS BOSH通过CPI管理IaaS层资源(虚拟机、虚拟 存储、虚拟网络等) BOSH CLI BOSH Operation Staff CPI IaaS 创建虚拟机 CPI ( Cloud Provider Interface)支持多种 IaaS BOSH通过CPI管理IaaS层资源(虚拟机、虚拟存 储、虚拟网络等)

BOSH部署原理(3) VM VM VM VM IaaS BOSH BOSH调用CPI动态生成虚拟机 BOSH CLI BOSH Operation Staff CPI Inner Shell VM VM VM VM BOSH调用CPI动态生成虚拟机 Inner Shell – 被管理的部分 . . . IaaS 创建虚拟机 BOSH调用CPI动态生成虚拟机 Inner Shell – 被管理的部分

BOSH部署原理(4) VM VM VM VM IaaS BOSH Stemcell提供虚拟机模板 BOSH CLI BOSH Operation Staff Deployment Stemcell CPI Inner Shell VM VM VM VM Stemcell提供虚拟机模板 Deployment manifest定义部署细 节: IP地址、用户名/密码等 . . . IaaS 创建虚拟机 Stemcell提供虚拟机模板 Deployment manifest定义部署细节: IP地址、用 户名/密码等

BOSH部署原理(5) VM VM VM VM IaaS BOSH CLI BOSH 每个虚拟机内嵌一个Agent Operation Staff Stemcell CPI Deployment Inner Shell VM Agent VM Agent VM Agent VM Agent 每个虚拟机内嵌一个Agent 负责管理、控制、监控虚拟机 . . . IaaS 创建虚拟机 每个虚拟机内嵌一个Agent 负责管理、控制、监控虚拟机

BOSH部署原理(6) VM VM VM VM IaaS BOSH CLI BOSH Agent接收BOSH的指令 Operation Staff Stemcell CPI Deployment Inner Shell VM Agent VM Agent VM Agent VM Agent Agent接收BOSH的指令 完成软件部署安装、应用起停、 系统监控等任务 . . . IaaS 创建虚拟机 Agent接收BOSH的指令 完成软件部署安装、应用起停、系统监控等任务

BOSH部署原理(7) VM VM VM VM IaaS BOSH CLI BOSH Operation Staff Stemcell CPI Deployment Inner Shell Release VM Agent VM Agent VM Agent VM Agent . . . Release包含软件的源代码、 目标码、版本、配置等信息 IaaS 创建虚拟机 Release包含软件的源代码、目标码、版本、配置等信息

Cloud Foundry平台的升级过程

滚动式升级:无状态(Stateless)组件 Message Bus Cloud Controller v1 Starting with v1 VMs Router Incoming HTTP Requests Message Bus Cloud Controller v1 Cloud Controller v2 Deploy a v2 VM (canary) Create Router Incoming HTTP Requests Message Bus Cloud Controller v1 Cloud Controller v2 If it works, add more v2 VMs... Create Router Incoming HTTP Requests

例子:Cloud Controller 结果: 从v1升级到v2, 创建了新的虚拟机,中间没有宕机时间。 Message Bus Cloud Controller v2 … until all VMs are v2 Router / LB Incoming HTTP Requests Incoming HTTP Requests Router / LB 结果: 从v1升级到v2, 创建了新的虚拟机,中间没有宕机时间。 Destroy Create Cloud Controller v1 Cloud Controller v2 Message Bus … while removing v1 VMs…

部署要点 并行升级 金丝雀(Canaries) 最终一致性 (Eventual consistency)

有状态和无状态的VM 无状态(stateless)VM 有状态(stateful)的VM 没有持久化数据, 具有持久化的磁盘(如数据库数据) 升级时需要保留持久化的磁盘

代码升级(不涉及数据)

Stateful VM 升级

VM 更新

用BOSH自动化部署Cloud Foundry (vSphere)

BOSH的内部结构 BOSH由6个虚拟机组成

安装BOSH的步骤 安装BOSH CLI (Ubuntu 10.04) 部署Micro BOSH (单个VM) 部署多结点分布式BOSH (6个VMs) Micro BOSH VM BOSH VM BOSH CLI

准备工作 - 软件 64-bit Ubuntu 10.04 LTS, better in ISO format. vSphere V4.1 or V5.x, vSphere client vCenter (installed on a Win2008 R2 64bit or a Win2003 server, physical or virtual machine)

准备工作 – 硬件(1) * Cloud Foundry需要最少的结点数,实际中可能会更多。 # of nodes OS   # of nodes OS Can be physical machine? BOSH CLI 1 Ubuntu Y vCenter+vSphere Client Win2008 Y, can be split into two nodes micro BOSH N BOSH 6 Cloud Foundry 34* N, see notes Total: 43 * Cloud Foundry需要最少的结点数,实际中可能会更多。

准备工作 – 硬件(2) 物理服务器配置估算: 假定,每台虚拟机4GB内存,1 vCPU, 则大约需要 4 x 43 = 172 GB RAM, 1 x 43 = 43 vCPU,因此可以选用 6 台物理服务器:每台 8 核CPU,32GB RAM. 较小配置 (部署实验环境) 每台虚拟机256MB内存, 1台物理服务器: 8 核CPU,16GB RAM. 注:CPU在试验环境中不是最关键资源

准备工作 – 网络 建议分配4个VLAN 足够的IP地址 结点之间可以连通,没有防火墙 vSphere网络名称必须相同 必须直接连接 Internet (很重要!) VLAN Nodes Management VLAN Hypervisors and NFS storage CF VLAN BOSH VMs, and VMs of cloud foundry Service VLAN For LB, dual-home routers Public VLAN For LB, incoming requests

准备工作 – 网络 (2) 参考网络拓扑图

准备工作 – 网络 (3) vSphere 配置

准备工作 – 存储 vSphere vSphere vSphere vSphere 建议用NFS存储 所有的vSphere在vCenter中组成一个Cluster 所有vSphere挂接同样的NFS mount point 在vSphere中存储必须用同样的名字 Cluster vSphere vSphere vSphere vSphere NFS

准备工作 – 存储(2) vSphere 配置

安装 – BOSH CLI 创建一个干净的虚拟机 安装Ubuntu 10.04 安装Ruby环境 安装BOSH CLI工具 记住: 虚拟机要直接连接Internet

安装 – Micro BOSH 通过BOSH CLI里面的工具Bosh_deployer,安装Micro BOSH 完成后, vCenter中可以看到Micro BOSH虚拟机 记住: 虚拟机要直接连接Internet DEMO: Stemcell的下载 $ bosh public stemcells $ bosh download public stemcell micro-bosh-stemcell-0.1.0.tgz 输出大致如下 : +---------------------------------+-------------------------------------------------------+ | Name | Url | | bosh-stemcell-0.5.2.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... | | bosh-stemcell-aws-0.5.1.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca21e1... | | bosh-stemcell-vsphere-0.6.4.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca31e1... | | micro-bosh-stemcell-0.1.0.tgz | https://blob.cfblob.com/rest/objects/4e4e78bca51e1... | To download use 'bosh download public stemcell<stemcell_name>'.For full url use --full.

安装 – BOSH 通过Micro BOSH安装分布式 BOSH (6 VMs) 需要规划6台虚拟机的网络以及存储 规划Resource Pools Pool Name Size Configuration Jobs small 3 RAM:512MB, CPU:1, DISK:2GB nats, redis, health_monitor medium 2 RAM:1GB, CPU: 1, DISK: 8GB postgres, blobstore director 1 RAM:2GB, CPU: 2, DISK: 8GB

安装 – BOSH (2) 每个job占用一台虚拟机 把job分配到Resource Pool Job Resource_pool IP nats small 10.60.98.120 postgres medium 10.60.98.119 redis 10.60.98.118 director 10.60.98.117 blob_store 10.60.98.116 health_monitor 10.60.98.115

安装 – BOSH (3) 编写deployment manifest的yml文件 参考gitHub上面的样板 启动部署

安装 – Cloud Foundry 通过BOSH安装分布式 Cloud Foundry (34+ VMs) 需要规划所有虚拟机的网络以及存储 规划Resource Pools Pool Name Size Configuration Jobs small 32 RAM:1GB, CPU: 1, DISK: 8GB Nats, router, ccdb_postgres uaadb vcap_redis Uaa等30个jobs medium 4 RAM:2GB, CPU: 2, DISK: 16GB debian_nfs_server cloud_controller dea

安装 – Cloud Foundry (2) 规划每个job的配置:实例数、资源分配、网络等 必 要 的 可 选 的 . . . . . .

安装 – Cloud Foundry(3) 编写deployment manifest 参考gitHub上面的样板

DEMO 下载Cloud Foundry release开源代码 Create release Upload release Deploy CF

BOSH部署完成之后的Cloud Foundry (vCenter) vCenter view of Cloud Foundry

BOSH部署完成之后的Cloud Foundry (BOSH CLI) Command: bosh vms

BOSH的监控功能 虚拟机里的agent 发送心跳信息 采集系统数据 数据汇总

实现Cloud Foundry弹性计算

Cloud Foundry 云平台的弹性 包含整个Cloud Foundry云平台 大规模部署Cloud Foundry云平台 单虚拟机 Open source Platform as a Service project App Instances Services 包含整个Cloud Foundry云平台 单虚拟机 大规模部署Cloud Foundry云平台 多达数千个虚拟机结点

Cloud Foundry 云平台弹性的原理 BOSH动态增加DEA结点,可承载更多云应用 BOSH动态增加Service结点,可提供更多云服务 DEA IaaS DEA BOSH IaaS Svc If all DEAs are fully loaded, so we scale up with increasing number of DEA nodes IaaS

Cloud Foundry 云平台弹性的原理 BOSH动态增加DEA结点,可承载更多云应用 BOSH动态增加Service结点,可提供更多云服务 DEA DEA Svc IaaS DEA BOSH IaaS Svc If all DEAs are fully loaded, so we scale up with increasing number of DEA nodes IaaS

BOSH实现Cloud Foundry平台弹性 更新deployment manifest中dea和services实例数 更新Resource pool 大小 启动BOSH update 例子:在Cloud Foundry中增加2个dea结点的方法,修改yml文件: - name: dea template: dea instances: 2  4 resource_pool: medium networks: - name: default static_ips: - 10.60.98.65 - 10.60.98.66 - 10.60.98.67 - 10.60.98.68 resource_pools: - name: medium network: default size: 5  7 Update yml file to reflect the system changes, then do a command: $ bosh update

BOSH在Cloud Foundry项目开发中的应用

Bosh在测试平台上的应用 整个测试开发平台是由Bosh 部署的

测试平台的资源分配 节点 数量 资源池 CPU(核) 内存 系统盘 数据盘 2 小 1 2G 4G 128M 8G 中 4 16G 24G nginx 2 小 1 2G 4G 128M gerrit_mysql 8G gerrit_mysql_slave gerrit_replication gerrit 中 4 16G 24G jenkins 32G jenkins_slave 8 大 64G 72

端到端bosh自动部署测试用例 Micro Bosh Bosh Director Cloud Foundry CF BAT 73

端到端Bosh自动部署测试用例 74

总结 BOSH可以部署复杂的系统,如Cloud Foundry BOSH可以用来部署自身 BOSH可以部署、管理、扩展系统

用BOSH部署Cloud Foundry完全手册 http://cndocs.cloudfoundry.com/deploy/vSphere.html

Cloud Foundry中文资源 微博:@cloudfoundry 网站:http://www.cloudfoundry.cn/ 博客:http://cnblog.cloudfoundry.com/ 社区:http://cloudfoundry.csdn.net/ 文档:http://cndocs.cloudfoundry.com/ 视频:http://u.youku.com/CloudFoundryCN

http://cloudfoundry.com/si gnup 注册并使用Cloud Foundry http://cloudfoundry.com/si gnup 使用下面推广码 可马上获得批准: CFCN

Thank You!