陈斌彬的技术博客

Stay foolish,stay hungry

SinaAppEngine 关键概念

关键概念

开发者、客户、用户

  • 开发者 是云计算服务的使用者,因此在文档中提到的 客户 等同于 开发者 。
  • 用户 是开发者所推出产品的直接使用者,也是云计算服务的间接使用者。

img

负载均衡、Web服务池、Web服务器、运行环境、服务

  • 负载均衡是 SAE 云计算服务的最外层,负责接收应用的请求,并将请求转发到应用所在的 Web 服务池去由其做实际的请求处理。
  • 一个 Web服务池一般由一组 Web服务器 组成, 负载均衡使用 Round-Robin 算法在应用的 Web 服务池中选择一个健康的 Web 服务器来来处理该应用的请求。
  • Web 服务器负责解析负载均衡转发过来的请求,并调用对应开发者编写的应用代码来处理这个应用的请求,并将用户代码生成的回复返回给负载均衡 ,最终由负载均衡返回给请求者。
  • 目前各语言环境使用的 Web 服务器 分别是:Apache(PHP)、Jetty(Java)、Direwolf(Python) [1]
  • 运行环境 是用户代码执行的环境,譬如 Web服务器 的版本、本地IO权限、可用的扩展及其版本、SDK 等。本文档中一般会用 PHP 运行环境 、 Java 运行环境 、 Python 运行环境 来指代各语言代码的执行环境。
  • SAE 不需要开发者去部署和运维 MySQL、Memcached 等程序,而是将这些程序通过 服务 的形式以接口提供给开发者去使用。

img

[1] Direwolf 是 SAE 为 Python 语言环境开发的 Web 服务器,支持 WSGI 协议。

应用目录、应用版本目录、应用版本

在 SAE 中一个应用可以部署多个版本,每个版本在 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 作为版本管理系统,本身有个版本的概念,为了防止和 SAE 的 应用版本 相混淆,在本文档中我们使用 SVN 版本 来指代 SVN 的版本。

PV/UIP

PV 即 Page View,是指对 *.php 等动态脚本的请求计数,对于以下格式的静态资源的请求不计算在内:js|css|jpg|gif|png|swf|ico。

UIP 即 Unique IP,是指一个用户通过浏览器发出的请求,在十分钟内该用户 IP 只算一次。

注解

通过curl的请求因为是不带Cookie的header,因此同一IP来源的cURL多次请求会计算多次。