Cloud Foundry与阿里云结合技术的原理与实现

简介: 在2017年北京云栖大会的“开发者服务专场”上,阿里云高级技术专家高磊带来了《Cloud Foundry on Cloud——开源PaaS集成技术实现》的精彩分享。分享中,他重点介绍了Cloud Foundry技术与阿里云结合系统后的应用原理与安装程序。

以下内容根据演讲PPT及现场分享整理:

 

072fa1b2307683034887b2a2e0d60d74820fe15c

PaaS给开发者带来什么?开发者不再需要关注机器、存储、网络等的开通、管理和监控等细节事物;可以迅速实现应用原型;可以快捷地将服务组装成为应用;可以快速地部署代码的新版本;依靠多启动几个实例,快速地实现应用的弹性伸缩;不再需要实现日志与度量的监控系统。

ddd6e4f396754cfebb3997ae242aa673ccb560b6

Cloud Foundry最早是由VMware推出的业界第一个开源PaaS云平台,具有开发框架的选择性、应用服务的选择性、部署云环境的选择性等优点。

9164093536dc9b0130afde4a7aafe05434eecff5

Cloud Foundry已经得到了一大批知名厂商的鼎力支持

 

Cloud Foundry工作原理简介

3e6e2684e7716e14990a54bb241f431c8eff4c70

Router负责请求的分发;Router通过Diego BBS获取所有应用的运行状态,并维护动态的路由表;一般在Router前增加SLB,并绑定域名。

123e22e7fb73e7b1f961afd684809e99c966c78c

Authentication中UAA组件作为Cloud Foundry的几种用户管理中心,对平台中的用户信息进行统一管理、认证和授权。

8337adb1095c9ec41b16c7f992c5cc487320d430

APP Lifecycle中Cloud Controller负责管理APP的发布,当用户Push一个APP的时候,Cloud Controller将请求转交给Diego Cell完成应用的Stage操作;应用的状态通过Diego BBS来进行监控和消息通知。

c8fbda45c67ab53414ace54f4f465924ea81a1cb

App Storage and Execution中的Blobstore用于存储二进制文件,包括代码包、Buildpacks和Droplets;应用的运行和Stage都有Diego Cell来分配资源运行;Diego Cell管理应用的生命周期,并汇报应用的状态给BBS;Diego Cell负责将应用的Metrics和Log发送出去。

40cbef166b6871ef7578089f614bc23c57996120

Blob store中的Buildpacks负责将写好的程序,及其依赖的环境、配置、启动脚本等打包成droplet,这个过程称为stage;支持多种开发语言与框架;CF按照固定的顺序管理buildpacks;支持自定义扩展。

00c49645d60f3445f16fe98322079fae20d8b7d9

Blob store触发的工作流程图如上图。

1590d1e9917efe77bd9bd963cbac69c0360ef398


Service Broker中的CF通过Service Broker方式支持APP的数据库或者三方SaaS的访问需求;CF通过Service Broker构建第三方服务于CF组件之间的连接;采用的Open Service Broker API规范同时被Kubernates、Open Shift等项目支持。

8a53f1adf54bc2ec9e3ff82d4337e2a05fd590ed

Messaging中NATS是CF的内部通信系统,是一款基于事件驱动的、轻量级的消息发布-订阅系统,CF通过NATS来解决各个组件间的通讯问题;Consul是一款分布式服务发现与配置管理系统,用于同步APP及各组件的地址等信息;BBS是随Diego发布的消息同步组件,用于管理Cell及APP状态、任务和心跳管理等。

cfcfc6a443ccfed7249f3e8c385e28275808e6f8

Loggregrator将APP的日志通过流的方式输出给开发者;Metrics Collector用于收集组件的统计和度量,可提供给运维人员作为监控使用。


Cloud Foundry的运维理念

可以总结为:弹性伸缩、运维智能、LaaS隔离、自动化部署工具BOSH四个特点。

f2f311f189da10b7eed019b91d6f646e6f282aa5

BOSH是Bosh Outter Shell的缩写。与“Outter Shell”相对,被BOSH部署和管理的系统称为“Inner Shell”。其中部署和链接图谱如上图。

4063efaeeb02799ae0c54f29dadf5c0e1ae76700


Cloud访问接口和链接程序如上图。

Stemcell就是一个支持BOSH的虚拟机镜像模板;Stemcell中包括一个BOSH Agent组件,并随机启动运行,这个进程被用于监听虚拟机上BOSH组件的运行状态并负责与BOSH Director进行通信交互,当BOSH Agent接收到BOSH Director发布的任务指令后,会根据此任务指令的要求在虚拟机上进行一系列的动作;BOSH会使用指定的Stemcell创建虚拟机,并通过Agent进行管理;包括Light-stemcell与Heavy-Stemell。

6018dc253209f5d213e316f785b6fab36a3dc096

Stemcell运行图如上图。


在阿里云上安装BOSH

获取工程网址:http://github.com/aliyun/bosh-deployment;安装BOSH CLI网址:http://bosh.io/docs/cli-v2.html#install。选一个Region;创建一个专有网络VPC;创建安全组SecurityGroup;选择一个Zone,创建一个专有网络技术交换机Vswitch;如果需要公网访问,创建ElasticIP;获取AccessKeyID/AccessKeySecret;使用bosh create-env命令安装bosh,将相关的参数填进去;使用bosh login命令完成登录;更详细的部分请参阅云栖社区文章:https://yq.aliyun.com/articles/292815


准备Cloud Foundry运行环境

66104bece6208936c0d36a8931fc96ca500e99d2

首先确定域名;创建一个SLB;选择可用区;创建交换机、SNAT、DNAT、选好实例规格。

Update cloud-config.yml中需要注意参数:azs、vm_types、disk_types、network、vm_extensions、compilation。

 

安装Cloud Foundry

工程登录网址:https://github.com/cloudfoundry/cf-deploymengt bosh upload-stemcell;修改cf-deployment.yml,做必要的增加或裁剪;安装CF:$bosh –e my-bosh –d cf deploy cf-deployment.yml\--vars-store cf-vars.yml\-v system_domain=cloudfoundry.cc;登录CF:$cf login –a http://api.cloudfoundry.cc --skip-ssl-validation –u admin –p `bosh int./cf-creds.yml –path/cf_admin_password`。

55e31466beac8e002ca670d1a8c857f3b3f40a80

国区ECS在线安装时,可能会遇到Release下载问题,请先本地下载后upload-release再安装。Buildpacks默认都是在线Buildpack,需要安装完成后替换为离线Buildpacks。为此,我们制作了常用buildpacks的缓存,提供了下载,地址见云栖社区文章。

 

关联文章:云栖社区:开源PaaS工具Cloud Foundry落地阿里云 https://yq.aliyun.com/articles/292815 

 

本文由云栖社区志愿者小组王晓慧整理,丁匀泰审校。编辑:郭雪梅。

目录
相关文章
|
Web App开发 IDE 前端开发
10款最好用的IDEA插件让我们在2022年生活更美好
我知道你在寻找最好的 Intellij 插件。 瞧,你已经来到了最好的地方了。 在 JAVA 开发人员中广泛使用 Intellij 代码开发工具,无论是 Android 还是原生 JAVA。 有这么多 IDE 进入竞争,但拥有如此庞大的插件市场使 Intellij IDEA 成为最牛逼的赢家。 因此,在这里您将了解到一些精选的最佳 Intellij IDEA 插件。
10款最好用的IDEA插件让我们在2022年生活更美好
|
Cloud Native Nacos 数据库
2024年最新版Nacos安装教程(史上最详细保姆级教程)
2024年最新版Nacos安装教程(史上最详细保姆级教程)
6166 3
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
2173 33
|
人工智能 JSON API
Nacos 发布 MCP Registry,实现存量应用接口“0改动”升级到 MCP 协议
MCP(Model Calling Protocol)生态快速发展,Nacos作为MCP Registry,通过与Higress网关结合,实现“0代码”将存量API转化为MCP协议接口。本文详细解析了Nacos如何快速构建MCP Server,包括工具列表暴露、协议转换原理及优势。同时,通过高德API实例演示“0改动”适配流程。Nacos 3.0正式发布,定位AI应用服务管理平台,支持动态服务发现与配置管理,助力MCP生态发展。欢迎参与社区共建!
2107 1
|
人工智能 Kubernetes 安全
Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态
Nacos 3.0正式发布,作为云原生时代的基础设施级产品,不仅提升了技术能力,还以更高效、安全的方式帮助用户构建云原生AI应用架构。此次更新重点包括:升级MCP Registry,支持多种类型注册与动态管理;增强安全架构,默认开启鉴权并支持零信任方案;扩展多语言生态,覆盖Python、GoLang、Rust等主流开发语言;提供Nacos-MCP-Router实现MCP动态发现与自动安装。此外,3.0版本改进了安全部署架构,加强K8S生态同步,并推出实验性功能如分布式锁和服务配置模糊订阅。Nacos致力于简化微服务管理和AI应用开发,欢迎加入社区共建!
1674 43
|
10月前
|
人工智能 Java Nacos
基于 Nacos + Higress 的 MCP 开发新范式,手把手教程来了!
本文介绍了如何使用 Nacos 3.0.1 与 Higress 配合,实现 HTTP 服务转化为 MCP 协议服务,并支持自动注册与代理。通过 Docker 部署环境,结合 Spring AI Alibaba 框架,可实现服务的自动暴露和动态配置管理,适用于零改造存量应用适配 MCP 协议的场景。
3634 24
|
11月前
|
SQL 人工智能 关系型数据库
GitHub 热门!MindsDB 破解 AI + 数据库瓶颈,究竟有什么惊艳亮点?只需 SQL 即可实现智能预测
MindsDB 是一款将 AI 能力直接注入数据库的开源工具,支持 MySQL、PostgreSQL 等多种数据库连接,通过 SQL 即可完成模型训练与预测。它提供 AutoML 引擎、LLM 集成、联邦查询等功能,简化 MLOps 流程,实现数据到智能的无缝衔接。项目在 GitHub 上已获 32.4k 星,社区活跃,适用于客户流失预警、推荐系统、情感分析等场景。开发者无需深入模型细节,即可快速构建智能解决方案。项目地址:https://github.com/mindsdb/mindsdb。
1606 0
|
11月前
|
人工智能 前端开发 数据可视化
天都塌了,17K+ Star 的AI开源神器!Onlook 如何颠覆前端开发与设计协作?怎么办
Onlook是一款开源的视觉优先代码编辑器,结合Figma直观操作与VS Code强大功能,支持浏览器中实时构建、编辑和部署React应用。项目已获17K+Star,提供快速创建Next.js应用、所见即所得的可视化编辑、AI驱动开发工具及一键部署协作等功能,是前端开发与设计协作的理想选择。
1356 0
|
SQL 存储 Oracle
SQL优化2020最全干货总结---MySQL
BATJTMD等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察。一提到数据库,先“说一说你对SQL优化的见解吧?”。
31329 2
|
人工智能 机器人 开发者
实现定制化 AutoGPT 实战
在前期学习基础上,本文指导如何运用AutoGPT完成如生成文件及查询信息并输出到文件等ChatGPT难以实现的任务。首先确保拥有稳定网络、已配置好的AutoGPT环境及可用token。