300 likes | 1.04k Views
CloudFoundry 介绍. 马云锋. Agenda. Cloud Cloud Foundry NG 架构 面向开发者的工具 Cloud Foundry NG API 最新进展 CF CLI 6 Loggregator V2 service broker SSO. 搭建单机 CloudFoundry. https://github.com/cloudfoundry/bosh-lite https://github.com/nttlabs/nise_bosh. CloudFoundry 中的一些概念. Org Space Domain Route
E N D
CloudFoundry介绍 马云锋
Agenda • Cloud • Cloud Foundry NG架构 • 面向开发者的工具 • Cloud Foundry NG API • 最新进展 • CF CLI 6 • Loggregator • V2 service broker • SSO
搭建单机CloudFoundry • https://github.com/cloudfoundry/bosh-lite • https://github.com/nttlabs/nise_bosh
CloudFoundry中的一些概念 • Org • Space • Domain • Route • BuildPack • Service • Application
GoRouter • Go Router 是CF入口点 • 为什么要GoRouter: • 支持应用程序的动态分配 • 负载均衡 http://hello.vcap.me/index.html
GoRouter工作机制 • DEA 注册应用程序的信息到GoRouter,并且DEA周期性的发送应用程序的信息 • HTTP 协议 hello.vcap.me 10.0.0.8:61001 , 10.0.0.18:61005 • GET /index.html HTTP/1.1 • Host:hello.vcap.me GoRouter使用Host信息,来找到注册的应用对应的DEA,并且把请求转发给给DEA
灰度发布 2 1 3 4
BuildPacks Buildpack的作用 编译应用程序 设置应用程序的运行变量 设置应用程序的启动命令 Buildpack只有三个接口 bin/detect bin/compile bin/release http://docs.cloudfoundry.org/buildpacks/
bin/detect #!/usr/bin/env ruby gemfile_path = File.joinARGV[0], "Gemfile" if File.exist?(gemfile_path) puts"Ruby" exit0 else exit1 end
bin/compile #!/usr/bin/env ruby #sync output $stdout.sync = true build_path = ARGV[0] cache_path = ARGV[1] install_ruby private def install_ruby puts"Installing Ruby" # !!! build tasks go here !!! # download ruby to cache_path # install ruby end
bin/release #!/usr/bin/env ruby #sync output $stdout.sync = true build_path = ARGV[0] cache_path = ARGV[1] #invoke a Ruby program here #the Ruby program returns: { "config_vars" => { "RACK_ENV" => "production" }, "default_process_types" => { "web" => "bundle exec rackup config.ru -p $PORT" } }.to_yaml
Agenda • Cloud • Cloud Foundry NG架构 • 面向开发者的工具 • Cloud Foundry NG API • 最新进展 • CF CLI 6 • Loggregator • V2 service broker • SSO
命令行工具:CF 下载地址:https://github.com/cloudfoundry/cli#installers
CF Eclipse Plugin http://docs.cloudfoundry.org/buildpacks/java/sts.html
构建工具 • Maven Plugin • 编译,单元测试,部署,管理应用程序 • GradlePlugin • 编写自己的CI/CD流程 • CC API ( REST API CALL, Java SDK etc.) • cf命令
Agenda • Cloud • Cloud Foundry NG架构 • 面向开发者的工具 • Cloud Foundry NG API • 最新进展 • CF CLI 6 • Loggregator • V2 service broker • SSO
CF CLI 6 • 用GoLang重写 • 安装容易 • 速度快 • 非交互时,更容易集成到CI/CD中
Loggregator • 应用程序Log的收集和转发
新的和重写的Component • ETCD • 和ZooKeeper类似的配置管理 • GNATS • 用GoLang重写 • 支持Cluster • HM9000 • 用GoLang重写 • 支持Cluster • 使用ETCD存储信息 • CloudController • Cloud Controller NG • API Worker • Clock Worker
Service Broker V2 例子:https://github.com/JimmyMa/cf-echo-service-v2
Dashboard Single Sign-On http://docs.cloudfoundry.org/services/dashboard-sso.html 为Service的Dashboard提供了一种 SSO的方式 例子:https://github.com/JimmyMa/cf-echo-service-v2