|
@@ -219,7 +219,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
|
|
|
</ul></li>
|
|
|
<li><a href="#上线">上线</a><ul>
|
|
|
<li><a href="#运行环境">运行环境</a><ul>
|
|
|
-<li><a href="#虚拟机">虚拟机</a></li>
|
|
|
+<li><a href="#硬件抽象层虚拟机">硬件抽象层:虚拟机</a></li>
|
|
|
<li><a href="#容器">容器</a></li>
|
|
|
<li><a href="#语言虚拟机">语言虚拟机</a></li>
|
|
|
<li><a href="#语言运行环境">语言运行环境</a></li>
|
|
@@ -2542,17 +2542,23 @@ System.<span class="fu">out</span>.<span class="fu">println</span>(<span class="
|
|
|
<p>而代码尽管还在,但是却会随着人员流动而出现更多的问题。这时如果代码是有有效的测试,那么则可以帮助系统更好地被理解。</p>
|
|
|
<h2 id="运行环境">运行环境</h2>
|
|
|
<p>为了将我们的应用部署到服务器上,我们需要为其配置一个运行环境。从底层到顶层有这样的运行环境及容器:</p>
|
|
|
-<ol type="1">
|
|
|
+<ol start="2" type="1">
|
|
|
<li>虚拟机</li>
|
|
|
<li>容器</li>
|
|
|
<li>语言虚拟机</li>
|
|
|
<li>语言运行环境</li>
|
|
|
</ol>
|
|
|
-<p>不同的环境有不同的选择,当然也可以结合在一起。</p>
|
|
|
-<h3 id="虚拟机">虚拟机</h3>
|
|
|
+<p>不同的环境有不同的选择,当然也可以结合在一起。不过,从理论上来说在最外层还是应该有一个真机的,但是我想大家都有这个明确的概念,就不多解释了。</p>
|
|
|
+<h3 id="硬件抽象层虚拟机">硬件抽象层:虚拟机</h3>
|
|
|
+<p>在虚拟机技术出现之前,为了运行不同用户的应用程序,人们需要不同的物理机才能实现这样的需求。对于Web应用程序来说,有的用户的网站访问量少消耗的系统资源也少,有的用户的网站访问量大消耗的系统资源也多。虽然有不同的服务器类型可以选择,然而对于多数的访问少的用户来说他们需要支付同样的费用。这听上去相当的不合理,并且也浪费了大量的资源。并且对于系统管理员来说,管理这些系统也不是一件容易的事。在过去硬件技术革新特别快,让操作系统运行在不同的机器上也不是一件容易的事。</p>
|
|
|
<blockquote>
|
|
|
<p>虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。</p>
|
|
|
</blockquote>
|
|
|
+<p>这是一个很有意思的技术,它可以让我们在一个主机上同时运行几个不同的操作系统。我们可以为这几个操作系统使用不同的硬件,在这之上的应用可以使用不同的技术栈来运行,并且从理论上互相不影响。其架构如下图所示:</p>
|
|
|
+<figure>
|
|
|
+<img src="chapters/chapter4/virtual_machine.png" alt="虚拟机" /><figcaption>虚拟机</figcaption>
|
|
|
+</figure>
|
|
|
+<p>借助于拟机技术,当我们需要更多的资源的时候,创建一个新的虚拟机就行了。同时,由于这些虚拟机上运行的是同样的操作系统,并且可以使用相同的配置,我们只需要编写一些脚本就可以实现其自动化。当我们的物联机发生问题时,我们也可以很快将虚拟机迁移或恢复到另外的宿主机。</p>
|
|
|
<h3 id="容器">容器</h3>
|
|
|
<blockquote>
|
|
|
<p>容器是应用服务器中位于组件和平台之间的接口集合。容器一般位于应用服务器之内,由应用服务器负责加载和维护。一个容器只能存在于一个应用服务器之内,一个应用服务器可以建立和维护多个容器。</p>
|