服务器 Servers

服务器是运行web应用的实体基础设施。

为什么服务器必须?

服务器必须一周7天,一天24小时可访问。托管你的web应用的服务器被生成生产服务器。生产服务器保存真实的数据(而不是测试数据),并通过安全措施禁止非授权访问。

裸机服务器 Bare metal servers

购买硬件,通过ISP把服务器连上网。裸机服务器能让你最大程度的控制服务器的配置。成本包括支付托管的费用、电费、机器后续的维修费用。比如从Dell或HP买服务器(小型刀片式)。

虚拟服务器

虚拟服务器是在裸机服务器上分割虚拟出来的。虚拟化软件比如XenVMWare允许供应商比如Linodeprgmr提供一台真实服务器的部分做虚拟服务器。比如,一个真实服务器,8核Xeon处理器,16G内存,能被分割成8块,每块1核,2G内存。

虚拟服务器的主要缺点是虚拟化过程中的资源虚耗。此外,物理限制比如一个虚拟实例的高I/O操作会导致该物理服务器上其他虚拟服务器的性能瓶颈。

虚拟服务器资源

基础设施即服务Infrastructure-as-a-service

基础设施即服务Infrastructure-as-a-service (IaaS) 跟虚拟服务器有类似之处。计算资源能以类似的方式提供给用户。Iaas与虚拟服务器的区别是付款方式,Iaas可以按天、按小时、按流量付费,而虚拟服务器通常要按月、按年付费。

IaaS能跟虚拟服务器结合起来应对可伸缩的流量。当流量小的时候,只使用虚拟服务器。

最常用的Iaas是亚马逊云服务Amazon Web ServicesRackspace Cloud

Iaas平台的缺点是如果你需要自己写定制化的代码去部署、动态伸缩、了解你自己的平台。每一个平台都有自己的问题,比如亚马逊的标准Elastic Block Store存储基础设施比你本地的磁盘存储慢了一阶。你的应用在你本地查询数据库可能很好,当你部署到亚马逊上,性能就不如意。亚马逊有吞吐性能更好的higher throughput EBS instances但是你得多花钱。EBS只是你把应用部署到Iaas上之前需要了解的一个情况,其他缺陷还有很多。

IaaS资源

服务器学习清单

  1. Sign up for a hosting provider. I recommend getting a Linode VPS to set up your initial infrastructure and deploy your web application there. Digital Ocean and prgrmr are other VPS options. You can change hosting providers later after the deployment process is automated.
  2. Provision your first server. It will be ready but in a shutdown state while awaiting your instructions.
  3. Move to the operating systems section to learn how to load Ubuntu 14.04 LTS as a base OS for Python web applications.