本文为《轻松部署 Laravel 应用》的预习补充篇。
简介
所谓「基础设施(Infrastructure)」,是云时代兴起后流行起来的一个名词。服务器、交换机、负载均衡等等,都可以称作是基础设施。
基础设施通常是软件项目的硬件载体。部署的过程,可理解为将软件安装到基础设施的过程。在实际项目部署前,通常首先要确定你的项目「需要哪些 基础设施」。
云服务器
云服务器(Elastic Compute Services)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。
更直白地说,你可以将一台云服务器理解为一台独立的「电脑」,只不过这台「电脑」的硬件咱们看不见摸不着,它托管于云服务厂商。在云服务厂商提供的管理页面,你可以给云服务器升级、降级配置,以及进行开关机、重装系统等常见的管理操作。
实际上,云服务厂商只是将硬件划分给云服务器,并出租给我们,而我们则 具备对该服务器软件与数据方面的完全、绝对控制权。
通常情况下,云服务器是一切服务的基础;后续的课程将会把 Laravel 项目部署到云服务器中。
为什么不应该使用虚拟主机
首先,我们需要明白什么是 虚拟主机。
虚拟主机(Virtual Hosts)是指在服务器上分配一定的磁盘空间,用户可以租用此部分空间,以供用户放置站点,并提供简易的存储和传输功能。
可以看出,虚拟主机是在服务器的基础上进行二次划分,将原本属于单台服务器的资源分配成一个个小块。如果将云服务厂商比作拥有硬件的房东,那么我们租用云服务器则可以看作是租房。而虚拟主机,则是租房后摆上多个床位再次出租,成为集体宿舍。
如同上文所说,我们可以完全控制一台云服务器的软件部分,但虚拟主机往往可控范围十分有限,很少有虚拟主机提供商支持安装 PHP 扩展、配置 FPM 参数,更别提执行 Composer 命令、指定系统版本,这 对项目的部署过程是非常不利的。
另外,虚拟主机数据隔离性差,很难保证其可靠性和安全性;一台服务器可能同时「超载」了成百上千个虚拟主机,不仅 速度慢,且容易 受到其它虚拟主机的影响。相比之下,多数云服务厂商目前技术已经比较成熟稳定,因此请使用云服务器,避免使用虚拟主机。
可选的独立服务
主流云服务厂商除了提供基本的云服务器之外,大多还有独立的 数据库服务(例如 MySQL)、缓存服务(例如 Redis)等。这些服务也是通过云服务器作为载体,将它们部署在云服务器上出租给我们。
你可能想问,那我为什么不自己部署呢,何必买独立的服务?其实,幕后的工程师们通常为这些服务进行了大量优化,是总结了许多实战经验后给出的更专业、更快捷的解决方案;并且服务内部的运维工作交给了云服务厂商,我们可以更加专注于如何实现具体的业务。
因此,在没有特殊要求的情况下,如果可以,我更推荐使用这些独立的服务,省心省力又省时。
主流云服务厂商
来自国内:
来自国外:
- Amazon Web Services(AWS):亚马逊出品,老牌云服务商之一。有 中国特供版,但功能大大缩水。
- Azure:微软出品,价格相对较高,带宽相对较好。有 中国特供版,功能同样大大缩水。
- Google Cloud Platform(GCP):谷歌出品,界面相对美观,对新技术的支持较好。但被墙,且无中国区。
包年包月还是按时长付费?
大多云服务提供两种租赁计费模式:包年或包月预付费 以及 按时长后付费。
包年、包月的计费方式比较简单,在购买时支付定量费用即可;在服务未过期前你可以任意使用,到期后将会自动销毁。
按时长的计费单位通常更加精确,例如 每小时 甚至 每分钟、每秒;你可以随时创建服务,也可以随时销毁。在服务被销毁之前,服务商将持续从你的账户内扣费。
按时长通常比包月略贵些,但更加「随心所欲」;而包月不必担心忘记销毁导致超额账单,但也不可避免地丧失了灵活性。
后续课程推荐使用按时长付费的云服务。在还不熟悉相关配置的情况下,你可以任意创建、修改、销毁它们,而不会被固定的付费模式禁锢。
按固定宽带还是按流量付费?
与上文类似,国内云服务器网络计费方式通常也分为两种:按固定带宽计费 以及 按流量计费。
按带宽计费将服务器的最高带宽限制在某个固定值;无论利用率高低,是否有数据传输,带宽越高,价格越贵。
按流量计费类似手机流量,只不过我们不需要预充值;服务商将实时统计云服务器数据传输量,按照 每 GB 一定价格持续从你的账户内扣费。
以实际经验来看,按带宽计费通常比按流量计费性价比低,因为绝大多数站点并不是每时每刻都保持稳定的访问量,在业务低谷时尽管带宽利用率很低,仍需支付同样的费用。不过要提醒大家,按流量付费的站点需要注意避免被心怀叵测的「小人」恶意刷流量,导致账单超额。