使用Windows DNA 设计、部署和管理一个可伸缩的电子商务网站(1)--来自M$

网络整理 - 08-30
  使用Windows DNA 设计、部署和管理一个可伸缩的电子商务网站

今天我们要学习的是关于伸缩性、可用性和可靠性的最好的一些练习。我们要讨论负载平衡和优化你的站点,怎样使用Security Manager去保护你的站点,以及怎样分析你的站点通信量。所以我们今天要涉及到很多的内容。

我们的课程安排是从50,000米的高空对Windows DNA进行总览。我们要讨论伸缩性和可用性;怎样优化一个电子商务站点;怎样保护这个电子商务站点;以及最后,是怎样分析电子商务站点的通信量。我们也要在这个部分中讨论UA Plus。

下一张幻灯片是Windows DNA展开模型。你会注意到我们有表达层、商务逻辑层以及数据层。我们在表达层中,有少量的用户,他们是你的标准Internet用户,以及大量的标准Visual Basic或其他程序语言客户级别上的用户。

注意我们要从大量的用户来到少量的用户,而这个动作实际上是由Windows DNA所推动的。在商务逻辑层中,我们放入了所有的商务问题。而我们在数据层中,我们有数据库、Legacy系统,以及外部应用程序。

那么为什么我们从2层系统来到3层系统呢?是的,第一,2层系统的缩放性不好,主要是因为它的脚本很大。并且它需要一个单独的服务器。它性能较低并且脚本不适于放入大量的代码。它没有压缩商务逻辑并且不容易被重新使用。

现在相反的让我们来到3层模型,这里是一个ASP商业应用程序。注意我们有3层,第一层是ASP和html页面。这是我们在最新的一张幻灯片中的表达层。它包括,通常,你的UI(即用户界面)、一些简单的数据确认,伴随着ASP及html代码。

在第二层,即中间层或商务逻辑层,我们有商务目标层。这包括你的商业规则并且它通过各种资源巩固你的数据。就是在这里发生的。

在最后一层,是数据服务层,那就数据完整性规则。重要的是要知道那不仅是数据库管理系统,而且兼有电子邮件系统和各种其他的外部系统的功能,这允许我们不被在2层系统中的各种限制条件所妨碍。

这里是一个对于商业的应用工具,依旧使用ASP。我们现在有Internet Information Server,在我们的活动活动服务器页面层中,我们现在将显示脚本语言,VB script或Java script以及我们的活动服务器页面层,然后直接连接商业组件层,它是VB语言、CC Plus或Java。

然后是我们的最后一层-数据层,在这个例子中,我们使用sequel服务器。随之而来的问题是,为什么我们要使用3层。我们已经讨论过2层系统的局限性。3层系统是最终可缩放的。它可以缩放到各种服务器,例如一个网络字型库。我们可以将商业组件移动到一个中间层服务器。我们也可以将数据层移动到一个数据服务器,这允许我们扩展地更大并最终允许我们以更完善的方式来保护我们的系统。

我们现在有可反复使用的系统因为所有系统都是基于组件的,我们可以一遍又一遍地使用。它现在可以由ASP调用也可以由传统客户,例如VB、C++、Office以及应用程序的VB来调用。
  
然后最重要的因素是它是完全可扩展的,这意味着我们可以使用现成的组件。我们可以使用第三部分组件并且我们可以最终建立常规组件去使用在这个站点或任何其他我们要遇到的站点。

我们讨论了很多关于可伸缩性、高可用性的问题,但实际上我们中只有很少的人知道这两个术语的含义。于是我们要定义它们,可伸缩性是一个应用程序按照用户要求的增长而在大小上进行增长的能力。高可用性是应用程序对于在损失一个组件的情况下继续操作的能力。

关于这个问题的比较有意思的是大多数人记不住伸缩性既可以是垂直的,又可以是水平的,你可以向上伸缩或向后伸缩,取决于特定站点的负载。

我们在讨论伸缩性和可用性的时候,我们实际上是讨论关于这两项的什么问题?是的,在可用性方面,我们讨论的是硬件问题、操作和服务问题,然后是数据和文件管理问题。
    
在伸缩性中,我们最终讨论的是关于垂直性问题、放大或缩小;水平性问题,缩放到一个服务器地段;或者结构问题。也许我们将最终移动到一个更大的服务器。

一些最好的习惯是在你考虑伸缩性和可用性时,从一开始就考虑到伸缩性和高可用性。当你开始设计你的站点时,记住从刚开始就考虑这样你就不会遇到如此多的问题。

对开发者隐藏你的物理环境。使应用程序可移植。这极大的提高了伸缩性/可用性以及最终提高了安全性。确信将安全性和这些其他的问题都交给了管理员,而不是开发者,这样当你处理伸缩性和可用性问题时,他们不会损害到你的安全性。并且在最后,利用你平台服务的优势以使你可以使用建立在当前Win 2000系统的所有内容。

这个幻灯片显示了一个对于标准电子商务站点的好的开端。你将注意到我们有两个网络服务器和一个成员服务器。你不需要必须有两个。我们只是用在这个幻灯片里。所有的这些最后都存储在同一台计算机中但对于这个例子,我们说这是一个好的开端。

我们有LDAP、身份认证、活动用户目标、内容调度和所有在我们网络站点中的商业服务。相反我们现在要做的是用下一个,即成熟的应用程序。

现在,在我们的成熟应用程序中,我们将内容调度商业服务展开到一个网络地段中。这个网络地段允许我们按需要添加服务和服务器,这让我们不需要再忧虑改变程序的问题。我们现在为MTS部分中的活动用户目标得到身份认证。我们也在主机综合中的得到其他商业目标并且在我们的主机中,维持一个构架或一个Legacy系统。 我们要从篮或筐中得到sequel服务器。我们从产品中得到sequel服务器并由成员的一簇得到LDAP服务。

现在,关于它的有意思的事是如果你需要你可以最终添加进好的标准。你可以使用更多的LDAP或SNA服务的服务器以在你所关心方面的性能拥有冗余。你要在今后对性能方面进行注意。你也许要为了更深的理解而将这些目标打乱。这个设置允许你进行放大或甚至在你需要时,用一些重组而将其缩小。

于是,一些水平缩放的策略,实际上仅仅是重申我们以前所讨论过的,即IIS,你也需要移动到一个网络地段。NTS将是在IIS服务器中的一个网络地段。从你的网络地段和对于一些商业目标的负载平衡中分离MTS。sequel组件将划分你的数据库并且为你的成员组件,划分目录并使用专职的LDAP服务。

高可用性策略将再一次使用IIS,一个网络地段。注意NTS将与上一个幻灯片中相同但结果将把服务器使用的硬件、操作系统服务、并且最后、网络负载平衡集合起来。对于数据和成员关系拥有一些随时的备用,并将你的服务器组合以及使用多重LDAP服务器,这将使你拥有高的可用性。

当我们讨论高可用性时,我们将最终以某个方式谈到负载平衡。Microsoft Network load balancing现在允许我们对我们的系统进行负载平衡并许可我们所需要的可用性。

注意现在没有关于价值的单独的一点 。如果这些NOB主机失灵的话,我们将仍旧可以运行。没有性能上的瓶颈而且在这一点中不需要附加的硬件。

它可以,然而,按照需求的增长而逐渐的增长。我们可以在一个特定地段中上升到32个窗口服务器,并且最终,如果我们的两个服务器坏掉的话,我们能够处理计划的和未计划的服务器在不能使用时的透明度。对于它的伸缩性计划需要在我们的初始设计中。我们需要确定我们在其中有商业目标并且你可能记住当你在进行性能测试时,你需要检查你的垂直截面的原型,这意味着你需要从前端到早先的后端创建一个原型,在你的产品中尽快进行,这样你就可以向前并使用像web application 强度测试工具这样的强调工具进行测试。

你一定要定义你所期望的用途方案,向前看强调系统并察看你所期望的模式、不同种类的典型用户以及它们的用途模式。建立典型用户所期望使用的脚本。在你的数据级上遮蔽用户这样你就可以证明你的判断是正确的。从第二位到交叉检验来进行分析。

你要确定,在向前进行的时候,你实际上将你的系统设置为接受的内容比你所最重要强调的内容要多。这样当你着手去强调你的网站时,你要重新用web application 强度测试工具去编排,这叫做Homer。你要设置断点和行为。计划你的伸缩路径并记住计划空出3到6个月的时间,这样你可以设置任何未来的扩展。

确定性能测试是在小组里的分配任务,而不仅仅是某人在有机会的情况下随便看一下。你如果能遵从以上这些要点你就不会遇到如此多的问题。

现在我们来到第一个演示,这是告诉我们怎样使用web application 强度测试工具来为伸缩性、可用性和可靠性测试你的站点。好的,现在我们将移动到演示机器。在我们的第一个演示中,我们将学会怎样使用

我们将第一次打开WAS,在开始菜单中、程序、Microsoft web application 强度测试工具。然后现在,我们在这里关闭创建新脚本的对话框。我们现在要做的第一件事情是在安装WAL工具时必须移动创建好的sample文件夹。

当你安装web application 强度测试工具时,你必须将其从一个文件夹中移出来,这个文件夹就是web application 强度测试工具被安装入的文件夹,在WWw根目录中。我们浏览并拷贝然后移回到我的InetPub/wwwroot目录,然后粘贴到虚拟的根目录中。关闭窗口,现在我们回到web application 强度测试工具中。

我们现在看一下对于WAS工具的用户界面,我们可以看一下系统。在左边,你会注意到我们有一个默认的节点和一个示例的脚本节点,这将显示我们当前已经安装入WAS数据库中的所有脚本。这些是我们在以前建立的并将在以后用的脚本。我们今天为演示所用的是示例脚本。我们将重新创建示例脚本中的一些情形。

这些是脚本,再说一遍,在你安装WAS工具的时候尽快地安装。为示例脚本打开这个节点你可以看见下面的第二注释。当你点击示例脚本,你将注意到它在右边打开了细节部分,这为我们显示了在示例脚本自身中的特定的编排,由web application 强度测试工具使用的特定的特征。

这里的每一个脚本强调网站的一个特征,cookie特征、浏览器特征、ab测试、标识符特征,所有的这些被这个系统所强调。但是在我们开始以前,我们将为这个示例脚本做一个拷贝以使我们不会弄乱原始脚本。然后我们将重新命名测试脚本。那样,我们就不会更改这些原始脚本。我建议向前作为一个实践,这样你总可以至少重新回到示例。大多数的示例脚本是可使用的基础。

接着,我们将继续向前,我们可以按需要进行更改,这里的服务器名称是,在这种情况下我们进行强调时,我们将使用一个区域主机因为web application 强度测试工具现在位于相同的一个系统中。
现在,在现实世界中这不是一个好主意因为它可能带给你一些不规范的阅读。这可能在你向前的时候搞乱你的强调步骤。所以你只在用户端得到。记住setup.exe必须在每个你要用来强调你的服务器的用户中。但是,再说一次,不是在你的服务器中。

这7个脚本项中的每一个现在使用一个关于WAS的特定特征。例如,注意一个脚本项是post,这为我们显示了特定的要被强调的post意我们有路径,将要使用的http版本。我们有一个询问字符串、post数据,报头、安全插口层信息和RDS信息。

在这个例子中,我们回到查询字符串。注意,在这里,我们有一个用户名称部分和一个密钥部分,以及在其两侧都有百分号的用户名称,这意味着它不是一个文字值。有一些特定的不同点让WAS通过下一个可用的用户以及下一个从这个清单中可用的密钥。WAS自动进入通过清单的循环并将下一个信息由每一个邮寄所传递。这就是怎样进入并强调它。

我们继续并关闭这个脚本项。这里的最后两个细节是在脚本项中的添加组和默认组。你将注意到我们在这里的默认组中的添加组。这些是页面组。除非你更改,页面组将按默认显示。

页面组用来重新组织脚本项的调用次序。它也可以用来更改当脚本运行时每个脚本项的调用数量。你可以通过选择页面组节点看见所有的页面组的清单,并且这将为你显示所有正在使用的页面组;在这个例子中,只有默认和添加组。

这里最重要的事情是(听起来像关键项)是哪些在整个页面组中同时是可用的。我们可以向前并在我们将使用的强调中,我们不要用它们。

我们将做的是添加一些性能计数器,或在这里对于我们系统的性能计数器。我们将点击添加计数器并且第一次调用它,系统将变得很慢因为它必须出去得到添加的计数器。

我们进入计数目标清单,那儿是我们的网络服务。然后我们要添加每秒的请求。然后点击add,现在去把它添加入清单。我们下来得到每妙的邮寄请求并将其添加到清单。然后我们将来到活动服务器页面目标,这在清单的顶端,得到每秒的请求,并将其添加到清单中。那就是所有我们要添加的性能监控计数器。然后我们点击okey。

而且,在这个例子中,我们要更改搜集间隔。原来是15秒,我们将其变更到5秒以使我们的性能监控器得到更多的信息。得到正确的性能监控器是在测试模板时得到正确信息以进行分析的关键。

有几个重要的性能监控计数器可供选择,基于哪一种应用是你要进行测试的。一系列最普遍的基于网络的计数器和对其中每一个的解释将被在这个特定对话的资源部分中被找到。

现在,我们将浏览并关闭它。我们要回到测试脚本和设置节点。现在在这个例子中,我们要更改我们的时间。默认是15而在这里我们是2。我们将其更改为1,这将我们的运行时间更改为1分钟,这将运行地足够快以使我们可以看见它。我们将现在离开所有的其他设置并继续向前。

这个工具允许我们改变其他的设置,包括调整你的带宽。如果你认为可以检查你的系统以确定较窄的带宽,例如14.4或者28.8,依旧可以命中你的网站并且不会带来问题,你就可以向前并在这里调节。

另一个方法是将对这些设置的设定是设定默认的设置,这在默认部分设置的下面。现在你会注意到我们可以设定测试运行时间,调节带宽,所有的这些。然后这将是在我们向前的默认设置。注意到很有趣的事是,这只选择从现在开始创建的脚本,而不包括已经被创建好的任何一个脚本。

在用户节点中,再一次在我们的测试脚本的下面,你会注意到我们有一个默认部分。双击它以调出我们的细节部分,现在我们浏览它,它为我们显示所有的要经过的用户和他们的密钥。我们可以在这里更改任何特征,并且这在应用与网络中的网络应用强调工具指南中被非常好的解释了。

我们现在回到脚本并点击这个脚本然后我们继续向前运行这个脚本,现在我们已经察看过了。一旦完成了一个脚本,我们将察看从中创建的报告。当这个脚本运行时,它所做的是通过所有的密钥和我们在清单上看到的用户而运行。它对于每个密钥和用户创建cookie。它对每一个密钥和用户进行邮寄。它进行浏览并对每个用户进行浏览器调用;一个html测试;移动一个logo.jpeg以便可以实际地模拟,在这个网络应用强调中,这些操作将发生在通常的环境中。

我们向前进行这个测试时,你将看见所有的这些已经被校准过并且移动到一个生成的报告中。每一个你创建的脚本可以做相同的事情并且你可以得到示例脚本中的特定部分,并且按你的需求做出更改。而且再一次,你可以将它们作为模板使用。


一旦我们的测试状态完成,这个报告也就完成了。现在我们所需要做的是察看输出结果。于是进入view菜单并选择报告。我们将看到,在这个测试脚本节点下面,是我们的报告而且这是我们今天运行的报告。点击它给我们一个综述。并且如果我们点击这个报告下的综述节点我们将看见同一个综述。    

在综述节点中,这是一个好的对于强调的50,000英尺的综述。你想要看见的一些事是命中的数量;报告名称和数据;然后运行及运行长度,以及那些事情。那些是你在进行时遇到的重要的事情。

我们可以看一下已经安装好的性能计数器。记住,我们在每一秒都有一个性能计数器去取得请求。它给出在百分之二十五,百分之七十五处的信息,告诉我们对于特定项已经完成的不同信息。然后我们可以看一下页面数据并且在页面数据中,我们向下可以看见对于每一个特定脚本项的信息。在这个例子中,我们将看见cookie的例子以及这里的信息是第一个字节的时间,以毫秒计,它计算从对页面的请求到WAS收到第一个字节的信息位置的时间,以毫秒计。这将基本地告诉你你的反应时间。        

到最后一个字节的时间,从请求开始直到最后一个字节被用户收到的时间,以毫秒计。这个数包括你的TTFB时间以及所有需要收到最后一位数据的附加时间。

然后所有的请求被分类然后被按百分比划分,就像你们在这里看到的。这给你一个对于网页应用强调工具(web application 强度测试工具)所能做的工作有一个好的印象。记住,你可以很简单的创建你自己的网页应用强调脚本,只要拷贝作为默认而创建的网页应用脚本,并将它们更改或编码,以从它们开始使用脚本。

在这个演示中,你将看见怎样用网页应用强调工具去模拟在系统上的服务器下载并且分析性能。现在我们回到我们的幻灯屏幕。

现在我们已经完成了网页应用强调工具的说明,接下来将讨论性能测试。为了讨论它,你要记住在至少一个星期的基础上回顾你的用途报告。运行并用任何明显的变更来调整脚本。如果你改变网站的组成,或网站的构型或任何因素,继续向前并用那些更改来调整你的脚本并检查它们。显然你需要在它达成目标前对它进行检查。

向前测试你计划好的可伸缩型路径。记住网址的线要是强调、调整、测量、监控并且,显然,你可以按需要去更改。并且有一点要注意,记住这个操作的危险性等同于你可能遇到的任何问题的频率。

现在我们要做的是向前并使用注册和系统设置去实际地优化你的网站。在这个例子中,我们要记住WIN 2000的计算机,无论作为一个网络服务器或别的什么,将仍然是一个WIN 2000计算机。所以我们要讨论我们可以通过更改注册或系统设置来优化网站。

现在我们移动到演示机器,在这个演示中,你将看见几个不同的方法去对你的网站进行负载平衡和优化,通过系统设置,注册编辑器或其他的用于Windows 2000中的计算机管理的各种控制台。

我们的第一个设置是对IIS的可用资源数量的控制,或对Internet信息服务器的控制。因为IIS预计有较大的使用率,这对于大多数基准是非常普遍的,IIS将保留附加的资源,即使这些资源不在被使用中。

记住,这个设置只适用于大容量的网站。如果是一个小容量的网站,则要将它最小化。我们来到启动菜单、程序、管理工具然后是计算机管理。我们打开计算机管理控制台。

从那里,我们进入服务和应用,然后在这下面,我们有Internet信息服务(Internet Information Services)。然后我们有默认的网址或任何其他你要使用的特定网址。在这个例子中,我们使用默认网址。

我们右击它并选择properties。现在在properties中,我们向前来到performance标签。在performance标签中,我们将其设置为大于100,000。这适用于一个大的,高点击量的的网址,它让你的性能站点拥有其所需要的资源。并且请记住,如果你有的是一个较低性能的站点或一个中等容量的站点,你不需要将它设置的很高因为IIS实际上可以为你保留这些资源。

点击okey并作出更改。现在,由于高容量站点通常建立在专职服务器上,对网络服务器给出系统资源的最大量是非常重要的。所以我们的下一个设置是将对网络服务器过程可用的CPU cycles的数量进行最大化。

我们进入控制面板的系统小程序。现在是高级标签。然后是performance选项的performance按钮。我们现在要确定我们的设置是对于背景资源的,这样网络服务器可以得到信息并且运行所需要的非管理型应用程序。

这是Windows 2000 Advanced Server的默认设置并且可以不需要改变。但在这个例子中,我们将对其检查。这是需要检查的地方。Internet信息服务器的一个最有用的特征是记录各种关于你的用户和他们在各自的网站中的动作的信息和数据。

不过,记住如果这些事是由另一台服务器或另一个系统所完成,你不需要将其设置为打开。我们接下来要做的一件事是再一次右击默认的网址,选择属性,在这个例子,我们将停用记录因为这将由另一个软件或另一个服务器完成,不需要在这个网址中完成。