`
jamie.wang
  • 浏览: 346943 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Cloudfoundry之Service

阅读更多

Cloudfoundry(CF)是VMware推出的开源的PaaS平台,提供给用户应用部署运行的环境,并支持多种第三方应用服务。

概述

Cloudfoundry目前支持的服务主要有:

RDS:mysql,postgresql

NoSQL:redis,mongodb,couchdb,neo4j

MQ:rabbitmq

Filesystem:local,nfs

Object Storage: vblob

Cache:memcached

其他应用服务:elasticsearch,oauth

并且用户可以方便的将自己的服务加入到CF中来。

服务模块

cf提供的服务按模块分可以分为:service gateway和 service node。类层次结构上分为两层:vcap-service-base提供了base的getway(vcap-service-base\lib\gateway.rb启动gateway,启动了一个thin服务器,vcap-services-base\lib\base\asynchronous_service_gateway.rb,提供服务的处理方法)和node,具体的服务则需重载或实现gateway和node的一些方法。

Service Gateway

service gateway提供REST接口。从cloud controller过来的请求会先到service gateway做初步的处理,接着查找对应的服务节点,将请求通过发消息的方式委托给具体服务的节点处理。

Service Node

Service Node负责具体的处理gateway的消息,管理service如创建(provision)删除(provision)绑定(bind)解绑(unbind),恢复服务(restore)等,并将具体请求发送到服务实例。

重要的概念

Service Instance

服务实例,具体的运行的服务进程,如运行着的mysqld。运行在Service Node中,由Service Node管理,为DEA中的app提供服务。

Credentials

凭据,服务的配置和认证信息。创建服务的时候,service node会创建credentials,绑定app时则加入到app的环境变量中,app拿到改信息则可以访问具体的服务。

关键工作流程

provision service

创建服务实例,生成credentials。这里的创建服务,对不同的服务类型处理方案是不同的,例如mysql则是创建一个数据库和一个用户,并没有新的服务实例启动。而对于redis则是启动了新的服务实例。
创建mysql的流程如下图:


 注意,vmc/STS到cloud controller的通信,到gateway的通信都是HTTP REST请求,gateway和node之间是NAT的消息。
注意:CF提供的服务是已经部署(可能没启动)的服务,服务节点是初始化CF的时候就准备好的。没有下载软件包,安装,部署的过程。

bind service

绑定服务到应用:查找服务实例,查找credentials并返回给cloud controller。创建的服务,应用还不知道,需要通过绑定将服务的credentials信息设置到应用的环境变量,应用才能访问到。

 绑定mysql服务的流程如下:


 核心代码

cloud controller

1. cloud_controller-master\cloud_controller\config\routes.rb:cloud controller URL到方法映射

2. cloud_controller-master\cloud_controller\app\controllers\services_controller.rb:针对service的controller

gateway

1. vcap-services-base-master\lib\base\asynchronous_service_gateway.rb:暴露接口的gateway

2. vcap-services-base-master\lib\base\provisioner.rb:gateway的服务方法

Service Node

1. vcap-services-base-master\lib\base\node.rb:node基类

2. cf-services-release-master\src\mysql_service\lib\mysql_service\node.rb:mysql node

参考

1. http://docs.cloudfoundry.com/docs/using/services/

2. http://cnblog.cloudfoundry.com/2012/06/30/69/

3. http://blog.sina.com.cn/s/blog_902f34a901014hw5.html

4. http://blog.csdn.net/shlazww/article/details/8112874

5. http://blog.csdn.net/minghe_uestc/article/details/8577856

6. 源码,日志

 

 

 

  • 大小: 38.1 KB
  • 大小: 51.2 KB
分享到:
评论

相关推荐

    Cloud Foundry:云时代的Linux/LAMP.pdf

    VMware鼓励第三方不仅在自己的CloudFoundry.com平台上部署应用,还可以创建私有云或公共云平台,提供更多的特性和服务。例如,AppFog基于Cloud Foundry并增加了PHP支持,AppState建立了支持Perl和Python的私有云,而...

    Cloud Foundry - The Definitive Guide

    Get started with Cloud Foundry, the leading Platform as a Service (PaaS) that’s dramatically changing how developers, operations practitioners, and especially DevOps teams deploy applications and ...

    Cloud Foundry Service Node源码分析

    - **类层次结构**:Node节点分为两层,一层是Cloud Foundry提供的Base模板,为Service开发者减轻了许多工作;另一层是自定义Service部分,开发者需要实现特定接口。 - **Base::Base**:提供了Service通信框架,...

    喻勇 2012-08-12 Cloud Foundry的弹性设计

    Cloud Foundry 被定位为 PaaS (Platform as a Service) 层次上的解决方案,介于 IaaS (Infrastructure as a Service) 和 SaaS (Software as a Service) 之间。具体来说: - **IaaS**:关注于硬件级别的自动化管理和...

    Cloud Foundry v2各组件功能原理详细分析

    详细阐述了cloud foundry v2中各组件的实现原理,功能,代码分析。其中包括cloud controller,dea,router,nats,service,loggregator,healthManager等

    CLOUD Lc08 Introduction to CloudFoundry

    2. **CloudFoundry架构**:深入理解CloudFoundry的组件,如Diego(执行环境)、BOSH(部署和管理工具)、CloudController(API接口)、Service Brokers(服务代理)等。 3. **部署应用程序**:介绍如何通过cf CLI...

    cloud_foundry上开发JAVA应用

    Cloud Foundry的架构设计围绕着几个关键组件展开,其中包括Cloud Controller、Routing Layer、Droplet Execution Agent (DEA)以及Service Brokers等。Cloud Controller负责处理应用的部署请求、存储应用元数据以及与...

    Cloud Foundry 体系结构

    6. **Service Broker**:服务经纪人是 Cloud Foundry 提供服务绑定功能的关键组件。它使得第三方服务提供商能够将他们的服务集成到 Cloud Foundry 平台中,方便开发者使用。 7. **User Account and Authentication ...

    Cloud Foundry中Ruby的应用

    3. **参与社区贡献**:对于高级开发者或对Cloud Foundry有深厚理解的专家,可访问<https://www.cloudfoundry.org>,参与项目开发,为平台发展贡献力量。 ### Ruby在Cloud Foundry中的应用 Ruby,作为一种优雅、...

    spring-cloud-cloudfoundry:Cloudfoundry与Spring Cloud API之间的集成

    1. Service Broker:Cloudfoundry的服务经纪人(Service Broker)接口,使得Spring Cloud应用可以发现和绑定Cloudfoundry提供的服务,如数据库、消息队列等。 2. Spring Cloud Service Connector:通过这个组件,...

    在cloud-foundry上开发JAVA应用.docx

    开发者可以根据需求选择合适的部署方案,如使用CloudFoundry.com提供的公共云服务,或者下载Micro Cloud Foundry在本地运行。Micro Cloud Foundry是一个轻量级的解决方案,可以在Mac、Linux或Windows的虚拟机上运行...

    cloudfoundry-service-broker:Spring Cloud的示例项目-Cloud Foundry Service Broker

    概述该示例项目使用Spring Cloud-Cloud Foundry Service Broker来实现MongoDB服务。 MongoDB服务还使用持久化服务实例和绑定。入门您需要在某处安装和运行MongoDB并在配置连接性。 建立它: ./gradlew build 构建...

    cloud foundry 大规模部署(bosh)及平台运营完整中文手册

    **Cloud Foundry** 是一款领先的开源PaaS(Platform as a Service,平台即服务)产品,旨在为企业提供一种高效的方式去构建、部署和运行应用程序。它支持多种编程语言、框架和服务,并且兼容不同的云基础设施平台。...

    Cloud Foundry对云原生应用架构的支撑.pdf

    9. **服务发现与管理**:通过Service Broker,Cloud Foundry能够便捷地发现和管理应用依赖的服务。 10. **灰度发布与回滚**:支持应用的灰度发布和发布回滚,允许在不影响整体服务的情况下进行版本迭代和问题修复。...

    CloudFoundry助力银行业务转型.pptx

    在这种背景下,CloudFoundry作为一款强大的PaaS(Platform as a Service)平台,成为了银行业务转型的重要工具。 一、企业PaaS的业务驱动力 企业PaaS的主要驱动力在于提高IT生产率、支持业务变革和技术自主可控。...

    Cloud Foundry架构及应用介绍.pptx

    Cloud Foundry是一个开源的平台即服务(PaaS)框架,专为加速应用程序的开发、部署和管理而设计。它提供了一种高度自动化和标准化的方法,使开发者能够专注于编写代码,而不必关心底层基础设施的运维。在本文中,...

Global site tag (gtag.js) - Google Analytics