⚙️ 第七章 程序在怎样的环境下运行
📄 一句话概括

云的实质是把【操作系统+硬件】这两层也租出去:按需付费让闲置成本回到服务商那边,代价是数据与厂商绑定。

📝 本节和前面几节的关系

7.5 在代码和机器之间垫了一层,这一节把这个思路放大:连机器本身都变成租来的。

一、思路:把运行环境也当成一项服务

前面几节讨论的都是【怎样让程序适应别人的机器】。 云的做法是换一个前提:机器也由别人提供。 你租到的仍然是一个【操作系统+硬件】——只不过那两层由服务商维护。 你连的那台机器可能根本不在你的城市,甚至你说的可能不是同一台。

二、好处一:不用为峰值买单

自建服务器最大的尴尬是:机器得按最高峰配,可大部分时间用不到那么多。 平时跑得动的配置,大促那天就撑不住;按大促配好的机器,一年里又闲上三百天。 云把这件事拆开了:平时一台,忙时临时开九台,忙完退掉。 省下来的不是单价,而是那部分闲置的时间。

三、好处二:环境也变成可复制的

既然运行环境由软件定义,那它就能被复制、被版本化、被一键重建。 于是有了镜像这类东西:一份配置好的环境存下来,随时开出成百上千份一模一样的。 这解决的正是 7.1 那个老问题:手工配出来的环境,两台机器总有些说不清的差别。 把环境本身当成程序来管理,是云带来的最大观念变化。

四、代价也很实在

数据放在别人那儿。 合规、隐私、迁移都要提前想清楚。 长期算下来单价更贵。 一直满负荷跑的应用,自建可能更省。 被绑定。 用惯了某家的独有服务,想搬家就没那么容易。 故障不再由自己掌控。 出问题时你只能等,而且上一次故障可能影响很多家。 所以【上不上云】从来不是技术问题,而是成本、风险与掌控力的权衡。

五、动手 Demo:云计算平台提供的虚拟运行环境

如果不是买机器,而是租别人的机器呢? 运行环境照样是【操作系统+硬件】,但这两层由别人维护。

# 一个 10 倍流量高峰的账
peak = 10
print("自建:再买 9 台,一次掏出 270000 元")
for name, per_day in (("云(按天)", 10),):
    print("%s:临时开 9 台跑 3 天 = %d 元" % (name, 9 * 3 * per_day))

实跑输出:

--------------------------------------------------------------------
云计算平台提供的虚拟运行环境
--------------------------------------------------------------------

如果不是买机器,而是**租别人的机器**呢?
这就是云服务器:**运行环境照样是【操作系统+硬件】,但这两层由别人维护。**

  对比项           自己买服务器             云服务器
  -------------------------------------------------------------
  首次投入         一台约 3 万元            0
  每年成本         约 6000 元(折旧)       约 3650 元
  扩容方式         再买一台,几天到几周     点几下,几分钟
  流量回落之后     机器闲置,**钱照烧**     退掉,**不再计费**

  拿一次【突然来 10 倍流量】算笔账:

    自建:再买 9 台,一次掏出 270000 元;流量退了这 9 台就闲着
    云:临时开 9 台,跑 3 天(每天 10 元一台)
        9 × 3 × 10 = 270 元

  **同一件事,一边是二十七万,一边是两百七十块。**
  差别不在机器本身,**在于【按需付费】把闲置的那部分成本还给了服务商。**

  代价也很清楚:**数据放在别人那儿、长期算下来单价更贵、**
  **而且被绑定在某一家的服务上,搬家就没那么方便了。**

同一件事:自建要一次掏出 27 万元,云上临时扩容只要 270 元。 差别不在机器本身,而在【闲置的那部分时间】由谁买单。

30 秒实验

  1. 算一算你常用的一个网站,如果一年只有一次大促,自建和云哪个划算。
  2. 想一想为什么【把环境做成镜像】能减少【在我机器上是好的】这类问题。

常见误区

  1. 以为云一定更便宜。满负荷长期跑的应用,自建可能更省钱。
  2. 以为云就是【别人的机房】。它更大的变化是环境可复制、可版本化。
自测三问(点开对答案) 1. 云服务器提供的【运行环境】是什么? —— 仍然是操作系统+硬件,只是这两层由服务商维护。 2. 云最直接省下的是哪部分成本? —— 闲置成本——不需要按峰值长期养着机器,忙时临时扩容、闲时退掉。 3. 上云的主要代价有哪些? —— 数据在别人手里、长期单价更贵、可能被厂商绑定、故障不受自己掌控。

相关笔记