• 1. Cloud Foundry 开源云计算平台简介喻 勇 Frank Yu 邮件 yuf@vmware.com 官方微博 @CloudFoundry VMware,威睿信息技术(中国)有限公司
  • 2. 演讲内容Cloud Foundry的概述 Cloud Foundry的架构 开始使用Cloud Foundry
  • 3. Cloud Foundry的概述
  • 4. 风起云涌的大时代来源:@Deepb1ue 的微博
  • 5. 云计算的三个层次SaaS Software as a ServicePaaS Platform as a ServiceIaaS Infrastructure as a Service
  • 6. AWS, Joyent, Rackspace,... 开源项目: OpenStack, DeltaCloud, Eucalyptus 自动化引擎: Chef, Juju 标准化? DMTF 企业虚拟化引擎: Virtualization: VMware, Microsoft, Xen, KVM 50%以上的服务器负载已经被虚拟化 易于部署、管理,但是 仍旧需要管理OS层面的备份、软件配置、监控和升级等 思考1:IaaS = 虚拟机 = OS自动化部署? 思考2:Do we really need a traditional OS for Cloud? 思考3:What is the gap between OS and App?IaaS的现状和挑战
  • 7. Raise the Unit of currency to be application & services instead of infrastructure Google App Engine, Cloud Foundry, Joyent, Heroku, Stax (Cloudbees), Amazon elastic beanstalk, Microsoft Azure, AppFog Single or a few languages, services Start of Multi language Polyglot platforms Enabler for Agile Developers -> Create Business value faster Lack of standards: risk, vendor lock-in Enterprise needs: Control, customizability Private/Hybrid Cloud Avoid lock-inPaaS的必要性
  • 8. Check-out any time you like
  • 9. 什么是Cloud FoundryApplication Service InterfaceData ServicesOther ServicesMsg ServicesPrivate Clouds Public CloudsMicro CloudsCloud Provider InterfaceOSS communityApache2 license
  • 10. 开源 Github上开放源码,并鼓励社区贡献和check-in 目前所有核心模块都已经开源 开放的开发平台和流程,VMware R&D与社区开发者采用相同的代码审核和签入流程 Apache 2开源许可协议 开放 支持多种语言、框架、服务和底层IaaS基础平台 自动化 应用和服务的自动化配置 Cloud Foundry的特点
  • 11. Cloud Foundry不会把应用锁定在固定的云平台Build your application Deploy it Move as neededDownloadable Micro CloudCloud FoundryvFabricService ProviderPrivate CloudvSphereHybrid CloudvSpherevCloud partnersCloud FoundryvFabricCloud FoundryvFabricRuby AppJava Appwww.cloudfoundry.com
  • 12. LinkedIn案例ISV Data APIsBuild your application as an extension to LinkedIn Deploy it AnywhereDownloadable Micro CloudCloud FoundryvFabricService ProviderPrivate CloudvSphereHybrid CloudvSpherevCloud partnersCloud FoundryvFabricCloud FoundryvFabricwww.cloudfoundry.comSFSF APIsGoogle APIsOther SaaS APIs
  • 13. 云计算时代的Linux 给PaaS为核心的生态系统带来价值 开发人员 云计算平台提供商/运营商 咨询、服务 研究机构 私有云、公有云的理想发展方向 非常合适中国国情,容易落地并发展Cloud Foundry的价值
  • 14. CloudFoundry.comRuntimes & FrameworksServicesvCenter / vSphereCloudFoundry.COM (beta)Infrastructure
  • 15. Las Vegas Data Center 500 – 5,000 VMs 40+ unique node types 75+ unique software packages 75+ unique environments 2x/week cf.com updates 24x7x365 non-stop operation No-downtime deployments Reliable, robust, repeatable deployments, updates, capacity adjustments Small teams manage many instancesCloudFoundry.com的细节
  • 16. CloudFoundry.orgCloudFoundry.ORGDownload CodeSetup EnvironmentDeploy Behind FirewallSetup ScriptsApache2 licenseYour Infrastructure
  • 17. CloudFoundry.org的最新改版
  • 18. Micro Cloud FoundryRuntimes & FrameworksServicesYour Laptop/PCMicro Cloud FoundrySingle VM instance of Cloud Foundry that runs on a developer’s MAC or PC
  • 19. Micro Cloud Foundry里面有什么?Open source Platform as a Service project App Instances Services10.04被打包成VMware Virtual Machine的云可以被用作开发者的sandbox 用来自JUnit integration tests的services 为了你的functional testing来部署应用 来自STS的远程调试
  • 20. 合作伙伴和开源社区的扩展Stackato, Python SupportPHP Supportnode.JS Support.net Support
  • 21. Cloud Foundry在国内的合作伙伴Public PaaS Ruby Cloud Foundry on SAE Public PaaS Cloud Foundry on Grand Cloud Public PaaS Cloud Foundry & Data Director on vSphere/vCloud Public/Private/Hybrid PaaS/IaaS Cloud Foundry on vSphere/vCloud
  • 22. 更多合作伙伴Choice of Cloud Infrastructure Bare metalChoice of Private Cloud DistributionsChoice of Public Cloud Providers.COM
  • 23. Cloud Foundry的架构
  • 24. dynamic discovery and binding no persistent configuration of components all components discover their surroundings automatically via messaging no prescribed boot order self healing applications and system components auto start and auto config on failure flap detection and prevention built in horizontal scaling each core component can run as 1-N instances components are peers, no explicit sharding Cloud Foundry架构的特点
  • 25. Cloud Foundry的逻辑结构VMC clientSTS pluginBrowser (user app access)RoutersCloudControllersAppServicesAppHealthManagerDEA PoolMessaging
  • 26. 应用的访问流程WebAppDBApp InstanceServiceRequestWeb InterfaceLoad Balancing and RoutingResponse“vmc push MyApp”
  • 27. 应用如何横向扩展WebAppDBApp InstancesServiceRequestResponse Load Balancing and RoutingWebAppWebApp“vmc instances MyApp 3”
  • 28. 应用如何更新WebAppDBServiceWebAppDBServiceWebAppWebAppPrevious VersionInstance StoppedUpdated CodeNew Version“vmc update MyApp”
  • 29. Cloud Foundry BOSH is an open source tool-chain for release engineering, deployment, and lifecycle management of large scale distributed services Prescriptive way of creating releases and managing systems and services It is not a collection of shell scripts, not a pile of Perl Built to deploy and manage production-class, large scale clusters Production grade Cloud Foundry clusters: 500+ VMs, 40+ jobs, 75+ packages Multi-node, multi-tier, complex clusters: e.g., our Gerrit/Jenkins Cluster Built for devops usage and scale by a crack team of veterans A project, not a product: command line interface, YAML, etc. Continuous improvement, iterative development, rough edges非常值得关注的BOSH模块
  • 30. BOSH的内部工作流程
  • 31. 通过BOSH扩展Cloud Foundry对IaaS的支持
  • 32. 开始使用Cloud Foundry
  • 33. www.cloudfoundry.com 针对CF的使用者,供开发人员上传应用 博客,文档和技术讨论区 www.cloudfoundry.org 针对开源社区开发人员贡献代码 Github源码,Gerrit,Jenkins,Jira等工具 Cloud Foundry网站
  • 34. 账户注册http://cloudfoundry.com/signupUse promo code CFOpenTour2012
  • 35. 欢迎邮件
  • 36. 使用Cloud Foundry的几种方法
  • 37. 在Windows中安装Ruby和vmc
  • 38. $ vmc target $ vmc login $ vmc push > bind services? Yes $ vmc update $ vmc instances +100 vmc命令
  • 39. 使用Cloud Foundry上的服务
  • 40. 建立服务实例$ vmc create-service mysql --name mysql1 Creating Service: OK $ vmc services ============== System Services ============== +------------+---------+---------------------------------------+ | Service | Version | Description | +------------+---------+---------------------------------------+ | mongodb | 1.8 | MongoDB NoSQL store | | mysql | 5.1 | MySQL database service | | postgresql | 9.0 | PostgreSQL database service (vFabric) | | rabbitmq | 2.4 | RabbitMQ messaging service | | redis | 2.2 | Redis key-value store service | +------------+---------+---------------------------------------+ =========== Provisioned Services ============ +-------------+---------+ | Name | Service | +-------------+---------+ | mysql1 | mysql | +-------------+---------+
  • 41. 将服务与应用绑定$ vmc push cer-spring --path web/target/ Application Deployed URL [cer-spring.cloudfoundry.com]: Detected a Java SpringSource Spring Application, is this correct? [Yn]: Memory Reservation (64M, 128M, 256M, 512M, 1G) [512M]: Creating Application: OK Would you like to bind any services to 'cer-spring'? [yN]: y Would you like to use an existing provisioned service? [yN]: y The following provisioned services are available 1: mysql1 2: mysql-135e0 Please select one you wish to use: 1 Binding Service [mysql1]: OK Uploading Application: Checking for available resources: OK Processing resources: OK Packing application: OK Uploading (12K): OK Push Status: OK Staging Application: OK Starting Application: OK Would you like to bind any services to 'cer-spring'? [yN]: y Would you like to use an existing provisioned service? [yN]: y The following provisioned services are available 1: mysql1 2: mysql-135e0 Please select one you wish to use: 1 Binding Service [mysql1]: OK
  • 42. 图形化的方式
  • 43. Cloud Foundry 演 示两个Instance节点,和一个消息服务的配置 https://github.com/SpringSource/cloudfoundry-samples
  • 44. 使用caldecott$ vmc tunnel 1: mysql-135e0 2: mysql1 Which service to tunnel to?: 2 Password: ******** Stopping Application: OK Redeploying tunnel application 'caldecott'. Uploading Application: Checking for available resources: OK Packing application: OK Uploading (1K): OK Push Status: OK Binding Service [mysql1]: OK Staging Application: OK Starting Application: OK Getting tunnel connection info: OK Service connection info: username : uMe6Apgw00AhS password : pKcD76PcZR7GZ name : d7cb8afb52f084f3d9bdc269e7d99ab50 Starting tunnel to mysql1 on port 10000. 1: none 2: mysql Which client would you like to start?: 2
  • 45. 使用caldecottLaunching 'mysql --protocol=TCP --host=localhost --port=10000 --user=uMe6Apgw00AhS --password=pKcD76PcZR7GZ d7cb8afb52f084f3d9bdc269e7d99ab50' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10944342 Server version: 5.1.54-rel12.5 Percona Server with XtraDB (GPL), Release 12.5, Revision 188 Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
  • 46. 使用caldecott$ vmc tunnel 1: mysql-135e0 2: mysql1 Which service to tunnel to?: 2 Password: ******** Stopping Application: OK Redeploying tunnel application 'caldecott'. Uploading Application: Checking for available resources: OK Packing application: OK Uploading (1K): OK Push Status: OK Binding Service [mysql1]: OK Staging Application: OK Starting Application: OK Getting tunnel connection info: OK Service connection info: username : uMe6Apgw00AhS password : pKcD76PcZR7GZ name : d7cb8afb52f084f3d9bdc269e7d99ab50 Starting tunnel to mysql1 on port 10000. 1: none 2: mysql Which client would you like to start?: 2
  • 47. 使用caldecottLaunching 'mysql --protocol=TCP --host=localhost --port=10000 --user=uMe6Apgw00AhS --password=pKcD76PcZR7GZ d7cb8afb52f084f3d9bdc269e7d99ab50' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10944342 Server version: 5.1.54-rel12.5 Percona Server with XtraDB (GPL), Release 12.5, Revision 188 Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
  • 48. 中文 微博:@CloudFoundry 网站:prchina.cloudfoundry.com 视频:http://u.youku.com/CloudFoundryCN 英文 主网站 : cloudfoundry.com 开源网站 : cloudfoundry.org Twitter : @cloudfoundry , hash tag #cfoundry Blog : blog.cloudfoundry.com FB : facebook.com/cloudfoundry Support : support.cloudfoundry.com Cloud Foundry的主要资源
  • 49. Q&A
  • 50. Introducing Cloud FoundryTM The Open Platform as a ServiceMarch 2012www.cloudfoundry.com
  • 51. Deploy and scale applications in seconds, without locking yourself into a single cloudSimple, Open, Flexible, ScalableThe Open Platform as a Service
  • 52. “I just want to deploy my code…”
  • 53. What if… $ vmc target $ vmc push > bind services? Yes $ vmc instances +100
  • 54. What’s happening with applications today?Frameworks are what really matter Developer productivity and innovation Reduce time to market New application types Mobile, Social, SaaS Apps released early and often Data intensive Emerging requirements: elasticity, multi-cloud Web orientation drives exponential data volumes Deployed on virtual and cloud infrastructures Virtualization, Cloud, PaaS
  • 55. Modernize application developmentRuntimePaaSDatavFabric Move to modern frameworks and cloud-ready runtimesvFabric New data fabric technologies and common deployment modelsMove to a cloud era application platform
  • 56. Cloud Foundry open Platform as a ServiceThe PaaS of choice for the Cloud era Simple Let’s developers focus on their code and not wiring middleware Open Avoid lock-in to specific cloud, frameworks or service Completely open source from day one Flexible and Scalable Self service, deploy and scale your applications in seconds Extensible architecture to “digest” future cloud innovation
  • 57. Cloud Foundry open PaaS - Choice of frameworksOSS community
  • 58. Application Service InterfaceData ServicesOther ServicesMsg ServicesCloud Foundry open PaaS - Choice of application services vFabric PostgresvFabric RabbitMQTMAdditional partners services …
  • 59. Application Service InterfaceData ServicesOther ServicesMsg ServicesCloud Foundry open PaaS - Choice of cloudsPrivate Clouds Public CloudsMicro Clouds.COMPartnersCloud Provider InterfaceAvoid Lock-in
  • 60. Multi-cloud flexibility is critical to your long-term successMake use of both public and private clouds without rewriting your applications Protect against vendor lock-in Meet different compliance and geographical needs Accommodate peak loads while optimizing costs Manage your growth and changing needs over time
  • 61. Cloud Foundry: Making multi-cloud a realityChoice of Cloud Infrastructure Bare metalChoice of Private Cloud DistributionsChoice of Public Cloud Providers.COM
  • 62. CloudFoundry.COM - Multi-tenant PaaS operated by VMwareRuntimes & FrameworksServicesvCenter / vSphereCloudFoundry.COM (beta)Infrastructure
  • 63. Micro Cloud FoundryTM – Industry first downloadable PaaSRuntimes & FrameworksServicesYour Laptop/PCMicro Cloud FoundrySingle VM instance of Cloud Foundry that runs on a developer’s MAC or PC
  • 64. CloudFoundry.ORG - Community open-source projectCloudFoundry.ORGDownload CodeSetup EnvironmentDeploy Behind FirewallSetup ScriptsApache2 licenseYour Infrastructure
  • 65. DescriptionBenefitsAllows organizations constrained by regulation or other concerns to benefit from PaaS technology Enables use of the same technology in public and private instances supporting various hybrid use cases, for example: Dev/test in public, production in private Tier 2/3 apps in public, Tier 1 in privateEnables dedicated instances of Cloud Foundry Provided by VMware with partners in a choice of datacenters Includes vFabric application servicesVirtual Private Cloud Foundry (aka “Project Bento”)CONFIDENTIAL, NDA ONLY
  • 66. Cloud Foundry – key use casesNew applicationsDev-test-trialSaaS extensibilityApp modernization
  • 67. Key takeaways PaaS is the application platform for the Cloud era Cloud Foundry is the simple, open and flexible PaaS of choice What’s next? Signup - www.cloudfoundry.com Get the source code - www.cloudfoundry.org Download your Micro Cloud Foundry – my.cloudfoundry.com/micro Learn more on the Cloud Foundry blog - blog.cloudfoundry.com Follow us - @cloudfoundry
  • 68. Annex
  • 69. What should partners be considering?Java based ISVs – move to Spring and Cloud Foundry Cloud Foundry provides the best Java developer experience in the industry SaaS ISVs – Cloud Foundry as the foundation for your SaaS version Elastic programmability and extensibility to your services High productivity frameworks and application services Deliver software to be used by Cloud Foundry developers Allow customers to build custom applications (integration, data analysis and processing, etc.) You can start today in your a private PaaS Environment Micro Cloud Foundry with multi-cloud portability
  • 70. What should partners be considering?A compelling choice of delivery mechanism Host your application on a public cloud PaaS Host your application on a privately hosted PaaS Provide a PaaS to your customers in the same datacenter as your data store Run as an application on Cloud Foundry Private cloud and multiple public cloud provider delivery Use a PaaS as part of packaged software delivery Enable simplified scaling, access to data stores, load balancing across instances, etc Interim step to cloud-ready middleware with vFabric Save licensing costs
  • 71. Cloud Foundry – key audiencesGrassroots Developers “No one between you and your application” Friction-free way to develop, test and deploy Open ecosystem of frameworks and services Use it your way – open source, micro clouds, choice of public clouds Self-service access to cloud-scale application resources SaaS ISVs “Cloudify your apps” Elastic programmability and extensibility to your SaaS service High productivity frameworks and application services
  • 72. Cloud Foundry – key audiences Friction-free deployment No machines or middleware to manage Latest high productivity frameworks Choice of application services Cloud portabilityMore responsive to developers Elastic and dynamically scalable Improved efficiency Digest future cloud advances Cloud portabilityIT Developers “Write code, not tickets”IT Operations “IT as a service provider”Boost application velocity
  • 73. The risk of an “Incomplete PaaS”PaaS solutions today are not complete Introduces significant inhibitors to mainstream/enterprise adoption Can’t move between clouds Limited to a single provider No on-premise solutions Limited to a single framework Require “special” frameworks