• 1. 基于Cloud Foundry的大企业私有云方案用友软件 白小勇
  • 2. 用友软件 白小勇基于Cloud Foundry的大企业私有云方案
  • 3. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 4. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 5. Cloud Foundry解决了什么问题? Traditional ITStorageServersNetworkingO/SMiddlewareVirtualizationDataApplicationsRuntimeYou ManageO/S PaaSStorageServersNetworkingMiddlewareVirtualizationDataApplicationsRuntimeYou ManageManaged by PlatformAgility and Cost SavingsO/S IaaSStorageServersNetworkingMiddlewareVirtualizationDataApplicationsRuntimeYou ManageManaged by PlatformFrom Accelerating your Journey to Application Transformation, EMC World 20125
  • 6. Cloud Foundry逻辑视图PC –浏览器访问health manager VMC clientMobile – App访问STS Plugin Router 路由 (Nginx + Locator Service) NATS 消息总线service poolMySQLMongoDBRadisRabbitMQcc - dbuaa - dbuaa - AuthNcloud controllerStagerpackage cacheblobstore Warden container核心业务dea pool Warden containerCRM系统service gatewayCaldecottService nodeOracleservice brokerLegacy App6
  • 7. NATSCloud Foundry逻辑视图PC –浏览器访问health manager VMC clientMobile – App访问STS Plugin Router 路由 (Nginx + Locator Service) NATS 消息总线service poolMySQLMongoDBRadisRabbitMQcc - dbuaa - dbuaa - AuthNcloud controllerStagerpackage cacheblobstore Warden container核心业务dea pool Warden containerCRM系统service gatewayCaldecottService nodeOracleservice brokerLegacy App7 other
  • 8. 两个主题一. 为什么Cloud Foundry要这么设计? 二. 我们是怎样快速构建大企业私有云的?8
  • 9. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 10. 主题一的概述10
  • 11. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 12. PaaS问题1 – 弹性伸缩架构12
  • 13. PaaS问题1 – 弹性伸缩架构 – 分析13
  • 14. PaaS问题1 – 弹性伸缩架构 – 解决14
  • 15. dea实现了资源切分(应用层)15dea.rbcontainer apinat and firewallprivate networkappprivate fswarden container虚拟网络接口切分网络aufs 切分存储Warden切分cpu、内存
  • 16. router实现了资源聚合(应用层)16Nginx (+lua extension)upstream locator servicedea 10.0.0.1dea 10.0.0.2natshttp requestdea ip?10.0.0.2 NATS 首次访问 二次访问cookie: 10.0.0.2cookie: 10.0.0.2
  • 17. Cloud Foundry逻辑视图PC –浏览器访问Mobile – App访问 Router 路由 (Nginx + Locator Service) Warden container核心业务dea pool Warden containerCRM系统service poolMySQLMongoDBRadisRabbitMQService nodeOracleLegacy App17
  • 18. PaaS问题2 – 运维智能化18
  • 19. PaaS问题2 – 运维智能化 – 分析1/219
  • 20. PaaS问题2 – 运维智能化 – 分析2/220
  • 21. PaaS问题2 – 运维智能化 – 解决1/221
  • 22. PaaS问题2 – 运维智能化 – 解决2/222
  • 23. Cloud Foundry基于消息的架构uaaservicecloud controllerdeaappappccdbnatsrouterstagerhealth manager23
  • 24. nats解决了什么问题?高可用的 模块自发现 模块之间的松耦合 高性能的 非阻塞的 编程简化 基于事件和消息的模块通讯24发布者主题订阅者订阅者订阅者hellohellohellohello
  • 25. 带线程池的多路Reactor模式(nats背后的原理)25耗时IO操作不会阻塞线程 避免了多线程切换 降低了线程占用的内存
  • 26. Cloud Foundry逻辑视图PC –浏览器访问health manager VMC clientMobile – App访问STS Plugin Router 路由 (Nginx + Locator Service) NATS 消息总线service poolMySQLMongoDBRadisRabbitMQcc - dbcloud controllerStagerpackage cacheblobstore Warden container核心业务dea pool Warden containerCRM系统CaldecottService nodeOracleLegacy App26
  • 27. PaaS问题3 – 支持按需服务/付费27
  • 28. PaaS问题3 – 支持按需服务/付费 – 分析28
  • 29. PaaS问题3 – 支持按需服务/付费 – 解决29
  • 30. Cloud Foundry逻辑视图PC –浏览器访问health manager VMC clientMobile – App访问STS Plugin Router 路由 (Nginx + Locator Service) NATS 消息总线service poolMySQLMongoDBRadisRabbitMQcc - dbuaa - dbuaa - AuthNcloud controllerStagerpackage cacheblobstore Warden container核心业务dea pool Warden containerCRM系统CaldecottService nodeOracleLegacy App30
  • 31. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 32. 开发问题1 – 平台开放性32
  • 33. 开发问题1 – 平台开放性 – 分析33
  • 34. 开发问题1 – 平台开放性 – 解决1/334
  • 35. 开发问题1 – 平台开放性 – 解决2/335
  • 36. 开发问题1 – 平台开放性 – 解决3/336
  • 37. 通过Services Broker与现有企业服务的集成Appservice gateway创建绑定system service使用绑定使用service broker企业服务37
  • 38. system service接口能扩展哪些能力?38
  • 39. Cloud Foundry逻辑视图PC –浏览器访问health manager VMC clientMobile – App访问STS Plugin Router 路由 (Nginx + Locator Service) NATS 消息总线service poolMySQLMongoDBRadisRabbitMQcc - dbuaa - dbuaa - AuthNcloud controllerStagerpackage cacheblobstore Warden container核心业务dea pool Warden containerCRM系统service gatewayCaldecottService nodeOracleservice brokerLegacy App39
  • 40. 开发问题2 – 开发人员友好性40
  • 41. 开发问题2 – 开发人员友好性 – 分析41
  • 42. 开发问题2 – 开发人员友好性 – 解决 42
  • 43. Spring Tool Suite plugin 43
  • 44. Micro Cloud FoundryRuntimes & FrameworksServicesYour Laptop/PCMicro Cloud FoundrySingle VM instance of Cloud Foundry that runs on a developer’s MAC or PC44
  • 45. Cloud Foundry逻辑视图 – 回顾PC –浏览器访问health manager VMC clientMobile – App访问STS Plugin Router 路由 (Nginx + Locator Service) NATS 消息总线service poolMySQLMongoDBRadisRabbitMQcc - dbuaa - dbuaa - AuthNcloud controllerStagerpackage cacheblobstore Warden container核心业务dea pool Warden containerCRM系统service gatewayCaldecottService nodeOracleservice brokerLegacy App45 NATS other
  • 46. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 47. 主题二的概述47
  • 48. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 49. 概念1 – 大企业的范围49
  • 50. 概念2 – 大企业私有云50
  • 51. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 52. 现状描述52
  • 53. 传统企业IT存在的问题(内因)1/453
  • 54. 传统企业IT存在的问题(内因)2/454
  • 55. 传统企业IT存在的问题(内因)3/455
  • 56. 传统企业IT存在的问题(内因)4/456
  • 57. 大企业私有云的外部环境57
  • 58. Gartner‘s 2012技术成熟度曲线(云计算)58
  • 59. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 60. 大企业私有云 – 产品分析 60
  • 61. Apache 2.0是商业友好的开源协议61
  • 62. 大企业私有云整体结构图62
  • 63. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 64. 大企业私有云 – 还需要做哪些事情?64
  • 65. 弹性伸缩架构的扩展65
  • 66. read writereadwrite数据库层的资源聚合66App1App2database Proxydatabase ProxyApp3DaaS
  • 67. 运维智能化的扩展67
  • 68. 基于web的管理控制台 – 应用监控68
  • 69. 基于web的管理控制台 – 服务监控69
  • 70. 支持按需服务/付费的扩展70
  • 71. 开发方面的两个问题? – 概述71
  • 72. 服务扩展1/3 – 基础服务 72
  • 73. 服务扩展2/3 – 组件服务73
  • 74. 服务扩展3/3 – 业务服务74
  • 75. 现有软件的云迁移1/2 – 问题分析75
  • 76. 现有软件的云迁移2/2 – 案例分享76
  • 77. 在线应用开发工具 – 概述77
  • 78. 在线应用开发工具 – 问题分析78
  • 79. OMG Model Driven Architecture79
  • 80. 在线应用开发工具 – 标准的MDA80
  • 81. 在线应用开发工具 – 我们的思路81
  • 82. 在线应用开发工具 – 关键组件1/2 – PIM82
  • 83. 在线应用开发工具 – 关键组件2/2 – MVM83
  • 84. 在线应用开发工具 – 特征84
  • 85. 在线应用开发工具 – 案例分享85
  • 86. 针对主平台的工作86
  • 87. 目录引子 为什么Cloud Foundry要这么设计? PaaS平台要解决的三个问题? 开发方面的两个问题? 我们是怎样快速构建大企业私有云的? 概念界定 大企业为什么需要私有云? 基于CF的大企业私有云产品化之路 产品分析 开发任务 实施策略
  • 88. 大企业私有云实施策略1/2 – 新建系统88
  • 89. 大企业私有云实施策略2/2 – 迁移现有系统89
  • 90. Q & A用友软件 白小勇 新浪微博: @quickbundle Email: baixy@yonyou.com