Cloud Foundry介绍
Cloud Foundry介绍
1 概述
本文介绍了Cloud Foundry及其工作原理。
云平台让任何人在几分钟内就可以部署网络应用或服务,并让它们向世界开放,当一个应用变得流行起来时,云就可以轻松地扩展它来处理更多的流量。用几个按键代替几个月的构建和迁移,云平台代表了IT演进的下一步,让你专注于自己的应用和数据,而不担心底层的基础设施。
并不是所有的云平台都是一样的,有些语言和框架支持有限,缺少关键的应用服务,或者限制部署到一个云上,Cloud Foundry成了业界的标准,它是一个开源的平台,可以在自己的计算基础设施上运行应用。或者部署在IaaS上,如vSphere、AWS、Au r e、GCP、OpenStack等,也可以使用商用Cloud Foundry云提供商部署的PaaS。一个广泛的社区对云基础的贡献和支持,平台的开放性和可扩展性使其用户不会被锁定在一个单一的框架、一套应用服务或云中。
Cloud Foundry可以消除成本和复杂性的配置基础设施,为应用程序开发人员可以部署他们的应用程序到Cloud Foundry使用他们现有的工具和零修改他们的代码。
相关链接:
2 Cloud Foundry如何运作
为了灵活地服务和规模应用在线,Cloud Foundry有各子系统进行专门的功能。下面的章节描述了这些主要子系统的工作方式。
逻辑架构:
2.1 Cloud Foundry如何平衡负载
介绍如何处理负载均衡。
云将它们的处理负载平衡在多台机器上,以优化效率和抗点故障的弹性。Cloud Foundry使用下列组件完成这项工作:
l BOSH:在物理计算基础设施之上创建和部署虚拟机,并在云上部署和运行Cloud Foundry。BOSH documentation.
l Cloud Controller:运行云上虚拟机上的应用和其他进程,均衡需求,管理应用生命周期。Cloud Controller.
l Gorouter:将来自世界的流入的流量路由到运行流量所需的应用程序的虚拟机上,通常与客户提供的负载均衡器一起工作。Gorouter.
2.2 应用如何在任何地方运行
本节介绍在Cloud Foundry中运行您的应用程序的虚拟机,以及平台如何将您的应用程序打包到这些虚拟机上运行。
Cloud Foundry中的 虚拟机:
Cloud Foundry定义了以下类型的虚拟机:
· 组件虚拟机(Components VMs):搭建平台基础设施。
· 主机虚拟机(Host VMs):将您的应用托管到外部世界。
在Cloud Foundry中,Diego系统将托管的应用程序负载分发到所有主机虚拟机上,并通过需求浪涌、中断或其他变化来保持它的运行和平衡。迭戈通过拍卖算法实现了这一点。
有关更多信息,请参见Diego架构。
2.3 Cloud Foundry如何分发应用
为了满足需求,多个主机虚拟机运行同一个应用的重复实例,这意味着应用必须是可移植的,Cloud Foundry将应用源码分发到虚拟机上,所有虚拟机需要编译和运行的应用都在本地。
Cloud Foundry包括以下与您的应用程序的源代码:
l Stack:应用运行的操作系统。
l BuildPack:包含应用程序使用的所有语言、库和服务。
在向虚拟机发送应用程序之前,Cloud Controller将堆栈、构建包和源代码合并为一个droplet,虚拟机可以进行解包、编译和运行。对于简单的、没有动态指针的独立应用程序,该droplet可以包含一个预编译的可执行文件,而不是源代码,语言和Libraries。
有关更多信息,请参见以下主题:
·
2.4 Cloud Foundry者如何组织用户和工作空间
介绍Cloud Foundry中的认证。
Cloud Foundation通过两台用户认证和授权(UAA)服务器管理用户账号,该服务器支持作为OAuth2服务的访问控制,可以内部存储用户信息,也可以通过LDAP或SAML连接外部用户存储。
有关详细信息,用户帐户和身份验证(UAA)服务器。
两台UAA服务器的主要作用如下:
服务器 | 目的 |
第一台UAA服务器 | · 授予BOSH访问权限 · 为Cloud Foundry运营商提供账户,这些运营商直接将运行时间、服务和其他软件部署到BOSH层。 |
第二台UAA服务器 | · 控制对云控制器的访问 · 定义用户角色,如管理员、开发人员或审计员,并授予它们不同的权限来运行Cloud Foundry命令 · 作用域在安装中分离、分隔的组织和空间的角色,以管理和跟踪使用 |
2.5 Cloud Foundry如何存储资源
介绍Cloud Foundry资源的存储方式。
Cloud Foundry使用了github 系统版本控制源代码、构建包、文档和其他资源系统,平台开发人员也使用GitHub作为自己的应用、自定义配置和其他资源,用于存储大的二进制文件。Cloud Foundry维护一个内部或外部的broadcast,Cloud Foundry使用MySQL存储和共享临时信息,如内部组件状态。
2.6 Cloud Foundry组件如何通信
介绍Cloud Foundry组件之间的通信方式。
Cloud Foundry组件通过两的方式进行通信,主要有以下几种方式:
l 通过HTTP和HTTPS协议内部发送消息
l 直接向对方发送NATS消息
有关详细信息,请参阅消息(NATS)。
BOSH Director在每个部署的虚拟机上共同定位一个BOSH的DNS服务器。所有虚拟机都为同一个基础上的所有其他虚拟机保留最新的DNS记录。这样就可以在虚拟机之间发现服务。
BOSH DNS支持在虚拟机的IP地址发生变化的情况下,继续与虚拟机进行通信,同时提供客户端负载均衡功能,在有多个虚拟机的情况下,随机选择一个健康的虚拟机。
2.7 如何监控和分析Cloud Foundry部署
本节主要介绍Cloud Foundry中的日志记录。
Cloud Foundry从Cloud Foundry组件中生成系统日志,从托管应用中生成应用日志。
随着Cloud Foundry机的运行,其组件和主机虚拟机产生日志和计量。Cloud Foundry应用程序也通常生成日志。对数系统将组件度量和应用程序日志聚合成一个结构化、可用的形式,即可使用的所有输出,或直接将输出指向特定用途。例如监控系统内部,触发警报,或分析用户行为,通过使用nozzles。
有关详细信息,Loggregator架构。
组件日志遵循不同的路径。它们从Syslog代理流中流,云操作员可以将它们配置为向syslog drain。
3 使用Cloud Foundry业务
本节介绍如何在Cloud Foundry上使用您的应用服务。
典型应用依赖于免费或计量的服务,如数据库或第三方API等,为了将这些应用集成到应用中,开发者编写服务代理,向云控制器发布API,提供服务商品列表、服务开通、应用调用等功能。
有关更多信息,请参见服务。
- 点赞
- 收藏
- 关注作者
评论(0)