关键概念¶
负载均衡、Web服务池、Web服务器、运行环境、服务¶
- 负载均衡 是新浪云云计算服务的最外层,负责接收应用的请求,并将请求转发到应用所在的 Web服务池 去由其做实际的请求处理。
- 一个 Web服务池 一般由一组 Web服务器 组成, 负载均衡 使用Round-Robin算法在应用的 Web服务池 中选择一个健康的 Web服务器 来来处理该应用的请求。
- Web服务器 负责解析 负载均衡 转发过来的请求,并调用对应开发者编写的应用代码来处理这个应用的请求,并将用户代码生成的回复返回给 负载均衡 ,最终由 负载均衡 返回给请求者。
- 目前各语言环境使用的 Web服务器 分别是:Apache(PHP)、Jetty(Java)、Direwolf(Python) [1] 。
- 运行环境 是用户代码执行的环境,譬如 Web服务器 的版本、本地IO权限、可用的扩展及其版本、SDK等。本文档中一般会用 PHP运行环境 、 Java运行环境 、 Python运行环境 来指代各语言代码的执行环境。
- 新浪云不需要开发者去部署和运维MySQL、Memcached等程序,而是将这些程序通过 服务 的形式以接口提供给开发者去使用。
[1] | Direwolf是新浪云为Python语言环境开发的Web服务器,支持WSGI协议。 |
应用目录、应用版本目录、应用版本¶
在新浪云中一个应用可以部署多个版本。
在使用SVN部署代码时,每个版本在SVN中对应一个数字为名的目录。下面是一个应用的典型目录结构:
$ tree myapp
myapp
|-- 1
| |-- build-doc.sh
| |-- config.yaml
| |-- index.wsgi
| `-- README.md
`-- 2
|-- config.yaml
`-- index.wsgi
2 directories, 6 files
我们称顶级目录 myapp 目录为 应用目录 ,而 myapp/1 为 应用版本目录 。
应用版本 是指用户部署的同一个应用的多个版本的代码,对应 应用版本目录 。
因为SVN作为版本管理系统,本身有个版本的概念,为了防止和新浪云的 应用版本 相混淆,在本文档中我们使用 SVN版本 来指代SVN的版本。
在使用Git部署代码的时候,应用版本对应Git的远程分支。下面时一个典型的Git代码目录结构如下
$ tree myapp
myapp
|-- .git
|-- build-doc.sh
|-- config.yaml
|-- index.wsgi
`-- README.md
1 directories, 4 files
开发者在 git push
代码的时候指定远程的分支名,也就是要部署到的 应用版本 。
访问量/UV¶
访问量 也就是应用的请求数。
UV 即独立访客,同一个IP在十分钟内所有的访问都只算一次独立访问。
注解
通过curl的请求因为是不带Cookie的header,因此同一IP来源的cURL多次请求会计算多次。