当大多数人谈论服务器电源时,它与安装的处理器(或多个处理器)有关。但是,有一种不同类型的服务器可以显着提高性能,同时降低功耗:GPU 服务器。切换到使用显卡执行某些任务向您展示了 GPU 服务器如何使您的业务受益。,, 什么是 GPU 服务器?,CPU 专为通用计算而设计,能够处理扔给它们的任何东西。因此,对于运行一系列灵活的应用程序,例如电子邮件服务器、Web 客户端或文字处理应用程序,它们是理想的选择。然而,如果专注于特定任务,设计用于完成这项工作的定制硬件将比 CPU 更快。,一个很好的例子是图形处理单元 (GPU),它的构建方式与 CPU 不同。GPU 专为快速生成逼真的 3D 图形而设计,旨在处理快速准确的浮点数运算。GPU 的核心速度通常比 CPU 慢,但它们可以有数千个核心并行运行。结果是某些数学运算在 GPU 上的运行速度比在 CPU 上运行得更快。,GPU 服务器,顾名思义,就是装有显卡的服务器,旨在利用这种原始处理能力。使用卸载过程,CPU 可以将特定任务交给 GPU,从而提高性能。使用 TensorFlow 机器学习框架的基准测试表明Nvidia GeForce 1070 显卡比 Intel Core i7-7500U CPU 快约 16 倍。而且,除了速度更快,相对性能需要更少的能量,有助于减少热量和功耗。,选择合适的 GPU 服务器,如华硕 ESC8000 G3 服务器,可搭载 8 块全尺寸 PCI-E 显卡,可加速高性能计算,占用空间更小。华硕 ECS8000 G3 服务器,设计用于容纳多达 8 个双层 GPU 卡。,, GPU 服务器可以做什么?,GPU 是为高速图形而构建的,但它们的架构和高速数学处理使它们非常适合处理一些高性能计算任务。利用 GPU 意味着编写应用程序以将特定任务卸载到 CPU。它类似于游戏的运行方式:在 PC 上,处理图形渲染的过程被传递给 GPU,而 CPU 处理游戏的其他方面。,GPU 成功的关键在于它处理并行计算的方式。由于有数千个内核,更重要的任务可以分解为并行执行的更小的计算。结果是 GPU 可以比 CPU 快许多倍地完成某些任务。很多关于 GPU 的讨论都围绕着它们在超级计算机中的使用展开,类似的东西有助于预测天气或用于 DNA 测序。,然而,对于一般业务用途,GPU 服务器具有良好的跟踪记录,可用于加速兼容的数据库查询、大数据建模和统计分析。GPU 也在为下一波人工智能应用程序提供动力,并已被证明在加密货币挖掘中很受欢迎。除了使用为使用 GPU 而开发的应用程序外,Nvidia 还拥有其 CUDA 平台,可让您开发自己的 GPU 加速应用程序。,GPU 服务器并不是所有业务问题的解决方案,但使用正确的工具和应用程序,它们能够比 CPU 更快地加速您的业务并执行复杂的查询,同时使用更少的能源。并可用于加速兼容的数据库查询、大数据建模和统计分析。GPU 也在为下一波人工智能应用程序提供动力,并已被证明在加密货币挖掘中很受欢迎。,,除了使用为使用 GPU 而开发的应用程序外,Nvidia 还拥有其 CUDA 平台,可让您开发自己的 GPU 加速应用程序。GPU 服务器并不是所有业务问题的解决方案,但使用正确的工具和应用程序,它们能够比 CPU 更快地加速您的业务并执行复杂的查询,同时使用更少的能源。,并可用于加速兼容的数据库查询、大数据建模和统计分析。GPU 也在为下一波人工智能应用程序提供动力,并已被证明在加密货币挖掘中很受欢迎。除了使用为使用 GPU 而开发的应用程序外,Nvidia 还拥有其 CUDA 平台,可让您开发自己的 GPU 加速应用程序。,GPU 服务器并不是所有业务问题的解决方案,但使用正确的工具和应用程序,它们能够比 CPU 更快地加速您的业务并执行复杂的查询,同时使用更少的能源。除了使用为使用 GPU 而开发的应用程序外,Nvidia 还拥有其 CUDA 平台,可让您开发自己的 GPU 加速应用程序。,GPU 服务器并不是所有业务问题的解决方案,但使用正确的工具和应用程序,它们能够比 CPU 更快地加速您的业务并执行复杂的查询,同时使用更少的能源。除了使用为使用 GPU...
与专用服务器相比,虚拟服务器与其他操作系统 (OS) 共享软件和硬件资源。虚拟服务器很常见,因为它们可以提供更有效的资源控制,并且通过服务器虚拟化具有成本效益。传统上,物理服务器专用于具有全部处理能力的特定任务或应用程序。多个物理服务器需要空间、电力和资金来维护。, 常见问题, 什么是虚拟服务器?,虚拟服务器模仿物理专用服务器的功能。多个虚拟服务器可以在单个裸机服务器上实现,每个虚拟服务器都有自己的操作系统、独立的配置和软件。虚拟机服务器使用虚拟基础架构、虚拟化软件并抽象物理服务器的计算机资源来创建虚拟环境。,,虚拟服务器的好处包括更快地配置应用程序和资源、改进灾难恢复和业务连续性,以及最大限度地减少或消除停机时间。虚拟化还提高了 IT 生产力、敏捷性、效率和响应能力。虚拟服务器的其他好处包括降低运营成本和资本,以及简化数据中心管理。,虚拟服务器环境在维护密码和安全系统方面也模仿了专用服务器环境。虚拟服务器托管比数据中心维护成本更低,并且服务器软件安装配置可以进一步降低网络托管成本。,资源占用是虚拟服务器最常见的潜在问题。当物理机中的虚拟服务器溢出导致某些虚拟服务器过度使用资源,从而导致性能问题时,就会发生这种情况。但是,通过适当的实施可以避免此资源问题。,为了提高效率,管理员使用专门的服务器虚拟化软件将一台物理专用服务器划分为多台虚拟服务器。将一台物理服务器转换为多台虚拟服务器可以更好地利用电力和资源。这反过来又使每个物理服务器能够有效地运行多个操作系统和应用程序。, 物理服务器与虚拟服务器有什么区别?,从技术上讲,虚拟服务器仅作为物理服务器内的分区空间存在。对于用户来说,差别不大。但实际上,服务器虚拟化有一系列好处,如下所述。, 什么是服务器虚拟化?,服务器虚拟化是使用虚拟化软件对服务器进行分区或划分,使其外观和功能类似于多个虚拟服务器。然后,每个虚拟服务器都可以运行自己的操作系统,并根据需要使用。这样,整个服务器可以以多种方式使用并进行优化,而不仅仅是专用于一个应用程序或任务。,, 服务器虚拟化的好处和挑战是什么?,服务器虚拟化的好处包括:,资源占用是最常见的服务器虚拟化挑战。太多的虚拟服务器会挤满物理服务器并影响性能。, 什么是虚拟专用服务器?,虚拟专用服务器 (VPS) 是从用户的角度来看是专用/专用服务器的虚拟服务器,尽管运行多个操作系统的共享物理计算机正在运行每个虚拟服务器。VPS 有时也称为虚拟专用服务器 (VDS)。VPS 和 VDS 都是虚拟服务器的类型。, 虚拟服务器与云托管有什么区别?,虚拟服务器和云托管环境之间的主要区别在于,虚拟服务器是为一个用户创建的,而云托管是为多个用户设计的。, 虚拟桌面和虚拟服务器有什么区别?,虚拟服务器和虚拟桌面在实践中可以为您的计算机网络实现一些相同的服务器虚拟化目标,尽管它们不是一回事。虚拟桌面是一种技术,它允许不同的用户在一台计算机上运行不同的操作系统,在物理机之外工作,或者在丢失或被盗时切断连接的设备。虚拟服务器可能仍然允许远程用户工作和运行不同的操作系统,但它还具有额外的功能。例如,虚拟服务器可用于测试新软件或应用程序,而无需关闭整个服务器,而这不是虚拟桌面的作用。虚拟桌面服务器是虚拟桌面基础架构的一种形式。这种虚拟服务器用于创建虚拟桌面环境,以在为此目的设计的虚拟服务器上托管多个虚拟桌面。, ,与专用服务器相比,虚拟服务器与其他操作系统 (OS) 共享软件和硬件资源。虚拟服务器很常见,因为它们可以提供更有效的资源控制,并且通过服务器虚拟化具有成本效益。传统上,物理服务器专用于具有全部处理能力的特定任务或应用程序。多个物理服务器需要空间、电力和资金来维护。, 常见问题, 虚拟桌面和虚拟服务器有什么区别?
我们都经历过:网站拒绝加载,而是返回一般的“网站不可用”或“在此服务器上找不到 URL”错误。或者网站挂起,从不加载。或者,您可能在尝试访问本地应用程序服务器时感到沮丧,让您想知道问题可能出在哪里。那么问题就变成了问题出在计算机、网络、您无法访问的站点,还是您的互联网服务提供商。,, 解决连接问题和服务器停机问题,许多变量可能导致网络问题,通常难以找到问题的根本原因。但是有个好消息:您可以使用许多免费的网络故障排除工具来帮助您确定问题出在哪里,以及下一步应该采取什么措施。无论您是仅拥有几台设备的家庭用户,还是管理数百台 PC 的 IT 专业人员,您都可以从以下工具中受益:, 1) Ping:检查服务器、网站或设备是否“活动”并响应的工具,Ping 是一种简单、广泛使用的软件实用程序,可检查您是否可以访问网站或联网设备(无论是 PC、智能手机、服务器还是启用 Wi-Fi 的咖啡壶),并测量获得响应所需的时间。由于计算机网络并非 100% 可靠,而且数据传输并不总是得到保证,因此 ping 还可以测量在往返于您要联系的设备的过程中丢失了多少数据包。如果这听起来很熟悉,那是因为 ping 被诸如“现在就宕机了吗?”之类的网站使用。并通过高级网络监控软件(我们将在后面的部分中讨论)获取数据以显示在他们的仪表板中。,Windows 和 Linux 都带有 ping 实用程序 — 无需下载应用程序。要使用该工具,只需打开命令窗口,然后键入“ping”,然后输入您要访问的计算机名称、IP 地址或网站 URL(例如“ping google.com”)。由于该应用程序在您的计算机上运行,因此 ping 还可以用于检查本地网络上设备的可用性,这是它相对于诸如“它现在关闭了吗?”之类的网站的一大优势。有趣的事实:ping 工具以声纳发出的声音命名,因为它们都通过发送信号来工作,然后收听回声回复。, 2) Spiceworks 连接仪表板,另一个工具 Spiceworks Connectivity Dashboard 可以帮助您了解所有服务器、服务和网站的状态,以及您的客户端系统是否可以访问它们。,这个免费工具不仅可以帮助您确定关键服务器是否出现故障,还可以帮助您确定服务是否正在经历所有用户或少数用户的过度延迟或性能下降。该Spiceworks还在连接仪表板工程,并使用安装在客户端系统,偶尔ping通关键服务代理商。然后,这些代理将每个客户端的连接状态报告给基于云的服务器,该服务器反过来提供所有设备和应用程序的仪表板视图。,, 3) Traceroute:一种可以帮助您查明连接断开位置的工具,适当命名的 traceroute 实用程序可帮助您跟踪和映射数据包从 A 点传输到 B 点时所采用的路由。 Traceroute 可作为大多数主要操作系统(Windows、OSX、Linux)上的命令行实用程序使用。如果该工具成功运行,此命令将返回您的数据在到达其最终目的地的途中经过的路由器的有序列表。,如果您遇到连接问题,该工具可以帮助您定位链中存在问题的位置,并且您可以从那里进一步调试。虽然该工具的文本版本在 Linux 和 Windows (tracert) 上都可用,但该工具的图形版本可以提供更可靠的结果,直观地绘制出数据包所采用的路径,并持续监控路径随时间的变化。, 4) 网站宕机检查:如何查看网站是否宕机或响应缓慢,Spiceworks Website Down Checker 之类的工具 可以帮助您快速确定任何网页当前是否遇到问题,或者问题是否可能与您的网络有关。只需输入 URL 即可查看其他人是否无法访问该站点,或者该问题是否仅影响您。,如果您想深入了解 Web 服务器的响应速度,网站 Isitdownrightnow.com 会监控 Outlook.com、Gmail.com、Dropbox.com、YouTube、Facebook 等热门网站的当前状态。如果该工具尚未跟踪您要访问的站点,您还可以输入自定义 URL 以查看其状态。用户还可以报告他们在使用网站时遇到的网站问题,这样您就可以更好地了解您喜欢的服务的情况。, 5) 网络监控软件:密切关注您的所有关键设备、网站和服务,服务器可能因多种原因而关闭。可能是物理机断电,或者操作系统或网卡出现问题——许多变量都可能导致故障。如果您是一名 IT 专业人士,需要照顾许多服务器和网站,那么您有很多事情需要跟踪。,,不断地手动检查数十台设备和服务器是乏味的(还有偏头痛的东西)。如果一个失败,你可能不知道,直到有人疯狂地敲你的门。网络监控解决方案可为您的所有服务器提供实时洞察,无论它们位于内部还是您通过 Internet 访问它们,并且可以在出现问题的第一个迹象时提醒您。,网络监控软件还可以自动执行“ping 检查”,以查看服务器、VoIP 电话、安全摄像头或任何其他设备是否在线并做出响应。此外,您的网络监控工具可以在可自定义的仪表板中显示本地和外部设备的状态。Spiceworks Connectivity Dashboard就是一个例子,它还可以监控关键 Web 应用程序的可用性,并在最终用户无法使用它们时提醒您。,此外,网络监控软件利用 SNMP、SSH 和 WMI 等协议来测量(除其他外)服务器 CPU、磁盘和内存使用情况、网络交换机带宽利用率以及单个应用程序的性能。更重要的是,您可以配置网络监控软件,以便在出现问题时向许多人发送警报,这样您和您的 IT 团队就可以随时了解情况并快速响应问题。查看专家审查的网络监控工具, 使用工具和繁荣,简而言之,服务器、应用程序和网络故障是生活中的一个事实,但您可以采取一些措施来减轻痛苦。通过使用上述工具,您可以随时掌握任何中断情况,无论问题出在 Internet 上还是您自己的本地网络上……这样您就可以尽快响应并解决问题。, ,我们都经历过:网站拒绝加载,而是返回一般的“网站不可用”或“在此服务器上找不到 URL”错误。或者网站挂起,从不加载。或者,您可能在尝试访问本地应用程序服务器时感到沮丧,让您想知道问题可能出在哪里。那么问题就变成了问题出在计算机、网络、您无法访问的站点,还是您的互联网服务提供商。,,网络监控软件还可以自动执行“ping 检查”,以查看服务器、VoIP 电话、安全摄像头或任何其他设备是否在线并做出响应。此外,您的网络监控工具可以在可自定义的仪表板中显示本地和外部设备的状态。Spiceworks Connectivity Dashboard就是一个例子,它还可以监控关键 Web 应用程序的可用性,并在最终用户无法使用它们时提醒您。
功能即服务 (FaaS) 是一种在边缘执行模块化代码的无服务器方式。FaaS 让开发人员可以即时编写和更新一段代码,然后可以执行该代码以响应事件,例如用户单击 Web 应用程序中的元素。这使得扩展代码变得容易,并且是实现微服务的一种经济高效的方式。, 什么是微服务?,如果一个 Web 应用程序是一件视觉艺术作品,那么使用微服务架构就像用一组马赛克瓷砖制作艺术一样。艺术家可以轻松地一次添加、更换和修复一块瓷砖。单体建筑就像在一张画布上绘制整个作品。,,这种从一组模块化组件构建应用程序的方法称为微服务架构。将应用程序划分为微服务对开发人员很有吸引力,因为这意味着他们可以创建和修改可以轻松实现到他们的代码库中的小段代码。这与单体架构形成对比,在单体架构中,所有代码都交织在一个大型系统中。对于大型单体系统,即使是对应用程序的微小更改也需要大量的部署过程。FaaS 消除了这种部署复杂性。,使用 FaaS 等无服务器代码,Web 开发人员可以专注于编写应用程序代码,而无服务器提供商负责服务器分配和后端服务。, 提高开发者速度,借助 FaaS,开发人员可以花更多时间编写应用程序逻辑,而不必花时间担心服务器和部署。这通常意味着更快的开发周转。, 内置可扩展性,由于 FaaS 代码本质上是可扩展的,因此开发人员不必担心为高流量或大量使用创建意外事件。无服务器提供商将处理所有扩展问题。, 成本效益,与传统的云提供商不同,无服务器 FaaS 提供商不会向客户收取空闲计算时间的费用。正因为如此,客户只需为他们使用的计算时间付费,并且不需要浪费金钱过度配置云资源。, 更少的系统控制,让第三方管理部分基础设施使得理解整个系统变得很困难,并增加了调试挑战。, 测试需要更多复杂性,将 FaaS 代码合并到本地测试环境中可能非常困难,这使得对应用程序的彻底测试成为一项更加密集的任务。, 如何开始使用 FaaS,开发人员必须与无服务器提供商建立关系,才能为 Web 应用程序启用 FaaS 功能。由于 FaaS 集成意味着一些应用程序代码将从边缘交付,边缘服务器的可用性和地理分布是一个重要的考虑因素。意大利用户访问依赖于巴西超载数据中心提供的 FaaS 边缘代码的站点时,会遇到导致高跳出率的延迟。, ,功能即服务 (FaaS) 是一种在边缘执行模块化代码的无服务器方式。FaaS 让开发人员可以即时编写和更新一段代码,然后可以执行该代码以响应事件,例如用户单击 Web 应用程序中的元素。这使得扩展代码变得容易,并且是实现微服务的一种经济高效的方式。, 什么是微服务?,
与托管在传统服务器或虚拟机上的应用程序相比,无服务器计算和容器都使开发人员能够以更少的开销和更大的灵活性构建应用程序。开发人员应该使用哪种架构风格取决于应用程序的需求,但无服务器应用程序更具可扩展性并且通常更具成本效益。,, 什么是容器?,容器“包含”应用程序和应用程序正常运行所需的所有元素,包括系统库、系统设置和其他依赖项。就像“只需加水”的煎饼混合物一样,容器只需要一件事——托管和运行——就可以执行它们的功能。,任何类型的应用程序都可以在容器中运行。无论托管在哪里,容器化应用程序都将以相同的方式运行。集装箱可以很容易地在任何需要的地方移动和部署,就像物理运输集装箱一样,它是标准尺寸的,因此可以通过各种运输工具(轮船、卡车、火车等)运输到任何地方,无论其内容如何。,用技术术语来说,容器是一种将机器或服务器划分为单独的用户空间环境的方法,这样每个环境只运行一个应用程序,并且不与机器上的任何其他分区部分进行交互。每个容器与其他容器共享机器的内核(内核是操作系统的基础,它与计算机的硬件交互),但它就像机器上唯一的系统一样运行。, 容器与虚拟机,甲虚拟机是一个软件模仿一个完整的计算机系统。它与托管它的机器的其余部分隔离,并且表现得好像它是其上唯一的操作系统,包括拥有自己的内核。虚拟机是在一台服务器上托管多个环境的另一种常见方式,但它们比容器使用更多的处理能力。, 什么是无服务器计算?,无服务器应用程序被分解为功能,并由第三方供应商托管,该供应商仅根据每个功能运行的时间量向应用程序开发人员收费。有关无服务器计算的更多信息,请参阅什么是无服务器计算?,, 无服务器计算和容器之间的主要区别是什么?, 物理机器,“无服务器”计算实际上在服务器上运行,但由无服务器供应商根据应用程序的需要来提供服务器空间;没有为给定的功能或应用程序分配特定的机器。另一方面,每个容器一次都存在于一台机器上并使用该机器的操作系统,但如果需要,它们可以很容易地移动到不同的机器上。, 可扩展性,在基于容器的架构中,部署的容器数量是由开发人员预先确定的。相比之下,在无服务器架构中,后端会自动扩展以满足需求。,继续海运集装箱的比喻,一家航运公司可以尝试预测对某种产品的需求增加,然后将更多的集装箱运送到目的地以满足该需求,但如果有需求,它就无法打响指并生产更多装满货物的集装箱超出预期。,无服务器架构正是实现这一目标的一种方式。在计算能力方面,无服务器计算就像现代家庭的供水系统:通过打开水龙头,消费者可以随时获取和使用所需的水量,并且只需为所用的水量付费。这比尝试一次购买一个桶或一个集装箱的水更具可扩展性。, 成本,容器不断运行,因此即使当时没有人使用该应用程序,云提供商也必须对服务器空间收费。,无服务器架构中没有持续的费用,因为除非调用应用程序代码,否则它不会运行。相反,开发人员只需为其应用程序实际使用的服务器容量付费。,, 维护,容器托管在云中,但云提供商不会更新或维护它们。开发人员必须管理和更新他们部署的每个容器。,从开发人员的角度来看,无服务器架构无需管理后端。供应商负责运行代码的服务器的所有管理和软件更新。, 部署时间,与无服务器功能相比,容器的初始设置时间更长,因为需要配置系统设置、库等。配置完成后,容器只需几秒钟即可部署。但由于无服务器功能比容器微服务小,并且不捆绑系统依赖项,因此它们只需几毫秒即可部署。上传代码后,无服务器应用程序就可以上线。, 测试,很难测试无服务器 Web 应用程序,因为后端环境很难在本地环境中复制。相比之下,容器无论部署在哪里都运行相同,这使得在将基于容器的应用程序部署到生产环境之前对其进行测试相对简单。, 无服务器计算和容器有何相似之处?,两者都是基于云的,并且都大大降低了基础设施开销——无服务器计算比容器更重要。在这两种架构中,应用程序都被分解并部署为更小的组件。在基于容器的架构中,每个容器将运行一个微服务。, 什么是微服务?,微服务是应用程序的一部分。每个微服务执行一项服务,多个集成的微服务组合起来组成应用程序。虽然这个名字似乎暗示微服务很小,但它们不一定是。,,将应用程序构建为一组微服务的优点之一是开发人员可以一次更新一个微服务,而不是在需要进行更改时更新整个应用程序。将应用程序构建为功能的集合,就像在无服务器架构中一样,提供了相同的好处,但在更细粒度的级别上。, 开发人员应该如何在无服务器架构和容器之间做出选择?,选择无服务器架构的开发人员将能够快速发布和迭代新应用程序,而不必担心应用程序是否可以扩展。此外,如果应用程序没有看到一致的流量或使用情况,无服务器计算将比容器更具成本效益,因为代码不需要不断运行。,容器让开发人员可以更好地控制应用程序运行的环境(尽管这也需要更多的维护)以及使用的语言和库。正因为如此,容器对于将遗留应用程序迁移到云非常有用,因为它可以更接近地复制应用程序的原始运行环境。,最后,可以使用混合架构,其中一些无服务器功能和一些部署在容器中的功能。例如,如果一个应用程序功能需要的内存比无服务器供应商分配的更多,如果一个功能太大,或者如果某些功能而不是其他功能需要长时间运行,则混合架构使开发人员能够获得无服务器的好处,同时仍然使用容器来实现无服务器无法支持的功能。, ,与托管在传统服务器或虚拟机上的应用程序相比,无服务器计算和容器都使开发人员能够以更少的开销和更大的灵活性构建应用程序。开发人员应该使用哪种架构风格取决于应用程序的需求,但无服务器应用程序更具可扩展性并且通常更具成本效益。,,
无服务器 JavaScript 是包含应用程序的全部或部分的 JavaScript 代码,仅在请求时运行,并且不托管在专有服务器上。它使开发人员能够构建在网络上运行的高性能、低延迟的无服务器应用程序(例如JAMstack 应用程序),并避免与其他无服务器应用程序相关的许多问题,例如冷启动。,无服务器JavaScript 托管在边缘网络中或由 HTTP 缓存服务托管,该服务存储内容以快速响应 HTTP 请求。开发人员可以编写和部署 JavaScript 函数,在 HTTP 请求到达源服务器之前对其进行处理。,,使用无服务器 JavaScript,可以通过在边缘运行代码来扩展现有应用程序的功能并改善用户体验,或者创建一个新的、完全无服务器的、快速且高度可扩展的应用程序。, 什么是清漆?,Varnish 是一个 Web 加速器,旨在加速 Web 应用程序并提高网站性能。它是一个缓存 HTTP反向代理,这意味着它位于任何 Web 服务器的前面,并通过缓存或存储 Web 客户端经常请求的任何内容来加速进出该服务器的 HTTP 流量。Varnish 配置语言或 VCL 与 Varnish 结合使用,以允许开发人员自定义 Varnish 管理 Web 请求的方式。, 在无服务器架构中使用 JavaScript 而不是 VCL 有什么优势?,VCL 是一种配置语言,旨在使 Varnish 缓存易于配置;它不是一种成熟的编程语言。VCL 不够灵活,无法构建或扩展强大的应用程序。与 JavaScript 相比,它的功能有限。此外,VCL 没有在 Varnish 实现之外使用,因此大多数开发人员并不熟悉它。相比之下,JavaScript 无处不在,并且已经广泛用于构建应用程序。在无服务器架构中使用 JavaScript 允许开发人员以他们熟悉的语言构建完整的应用程序。无服务器 JavaScript 允许更广泛的开发人员在边缘利用无服务器计算,并允许这些开发人员构建更多种类的应用程序。, 使用无服务器 JavaScript 构建应用程序如何帮助减少延迟?,无服务器 JavaScript 在 HTTP 缓存网络中运行,与托管在源服务器上的代码相比,它更接近最终用户。因此,请求不必一路传送到源服务器并返回,应用程序对用户交互的响应速度更快。缓存网络在地理上分布的边缘位置越多,减少的延迟就越多。, 无服务器 JavaScript 何时运行?,在无服务器模型中,应用程序被分解为函数,函数代码运行以响应某些事件。否则它不会运行。触发无服务器 JavaScript 执行的事件是 HTTP 请求。开发人员可以自定义其 JavaScript 函数响应的 HTTP 请求类型,以及如何更改或满足 HTTP 请求。, 什么是 HTTP 请求?,这是通过HTTP(超文本传输协议)从客户端发送到服务器的请求。浏览器将用户操作(例如单击超链接或提交表单)转换为 HTTP 请求。然后将请求发送到服务器,服务器发送 HTTP 响应来满足请求。当应用程序进行 API 调用时,也会发生 HTTP 请求。, 什么是 HTTP 缓存?,HTTP 缓存是指服务器或浏览器保存对用户 HTTP 请求的响应的副本,以便更快地响应未来的请求。甲CDN服务器是HTTP缓存的一个例子。一些 HTTP 缓存服务使开发人员能够自定义 HTTP 缓存如何为他们的应用程序工作。, 什么是服务人员?,服务工作者是浏览器下载和运行的脚本,以便为用户创建定制的体验。Service Worker 可以在浏览器中实现推送通知、后台同步和离线功能等功能。它们用 JavaScript 编写,在请求到达 Internet 之前拦截、修改和响应 HTTP 请求。,Service Worker 处理 HTTP 流量的两种方式:,,Service Worker 可以在不联系 Web 服务器的情况下响应 HTTP 请求,,Service Worker 可以修改 HTTP...
与传统的基于云或以服务器为中心的基础架构相比,无服务器计算具有许多优势。对于许多开发人员而言,无服务器架构以更低的成本提供了更大的可扩展性、更大的灵活性和更快的发布时间。使用无服务器架构,开发人员无需担心购买、配置和管理后端服务器。然而,无服务器计算并不是所有 Web 应用程序开发人员的灵丹妙药。,, 无服务器计算如何工作?,无服务器计算是一种架构,其中供应商根据需要提供后端服务。要了解有关无服务器计算的更多信息,请参阅什么是无服务器计算?, 无需服务器管理,尽管“无服务器”计算确实发生在服务器上,但开发人员永远不必处理服务器。它们由供应商管理。这可以减少 DevOps 所需的投资,从而降低开支,还可以让开发人员腾出时间来创建和扩展他们的应用程序,而不受服务器容量的限制。, 开发人员只需为其使用的服务器空间付费,从而降低成本,与“即用即付”电话计划一样,开发人员只需为他们使用的内容付费。代码仅在无服务器应用程序需要后端功能时运行,并且代码会根据需要自动扩展。配置是动态的、精确的和实时的。有些服务非常精确,以至于它们将费用分解为 100 毫秒的增量。相比之下,在传统的“全服务器”架构中,开发人员必须提前预测他们需要多少服务器容量,然后购买该容量,无论他们最终是否使用它。,, 无服务器架构本质上是可扩展的,想象一下,如果邮局能够以某种方式神奇地随意添加和停用送货卡车,随着邮件数量的激增(例如,就在母亲节之前)增加其车队的规模,并在需要较少交付的时候减少其车队。这基本上是无服务器应用程序能够做到的。,使用无服务器基础架构构建的应用程序将随着用户群的增长或使用量的增加而自动扩展。如果一个功能需要在多个实例中运行,供应商的服务器将根据需要启动、运行和结束它们,通常使用容器。(如果最近运行该函数,它将更快地启动 – 请参阅下面的“性能可能会受到影响”。)因此,无服务器应用程序将能够处理异常大量的请求,就像它可以处理一样来自单个用户的单个请求。具有固定数量服务器空间的传统结构化应用程序可能会因使用量的突然增加而不堪重负。, 可以进行快速部署和更新,使用无服务器基础架构,无需将代码上传到服务器或进行任何后端配置即可发布应用程序的工作版本。开发人员可以非常快速地上传一些代码并发布新产品。他们可以一次上传全部代码或一次上传一个函数,因为应用程序不是一个单一的整体堆栈,而是供应商提供的一组函数。这也使得快速更新、修补、修复或向应用程序添加新功能成为可能。无需对整个应用程序进行更改;相反,开发人员可以一次更新应用程序一项功能。, 代码可以更靠近最终用户运行,从而减少延迟,因为应用程序不是托管在源服务器上,所以它的代码可以在任何地方运行。因此,根据所使用的供应商,可以在靠近最终用户的服务器上运行应用程序功能。这减少了延迟,因为来自用户的请求不再需要一路传送到源服务器。,, 测试和调试变得更具挑战性,很难复制无服务器环境以查看代码在部署后的实际执行情况。调试更加复杂,因为开发人员无法看到后端进程,并且因为应用程序被分解为单独的、更小的功能。, 无服务器计算引入了新的安全问题,当供应商运行整个后端时,可能无法完全检查他们的安全性,这对于处理个人或敏感数据的应用程序来说尤其是一个问题。由于公司没有分配到自己的离散物理服务器,因此无服务器提供商通常会在任何给定时间在单个服务器上运行来自多个客户的代码。这种与其他方共享机器的问题被称为“多租户”——想想几家公司试图同时在一个办公室租赁和工作。多租户会影响应用程序性能,如果多租户服务器配置不正确,可能会导致数据泄露。多租户对沙盒功能正常且基础设施足够强大的网络几乎没有影响。, 无服务器架构不是为长时间运行的进程构建的,这限制了可以在无服务器架构中经济高效地运行的应用程序种类。由于无服务器提供商对代码运行的时间量收费,因此与传统基础架构相比,在无服务器基础架构中运行具有长时间运行进程的应用程序的成本可能更高。,, 性能可能会受到影响,因为它不是持续运行的,所以无服务器代码在使用时可能需要“启动”。此启动时间可能会降低性能。但是,如果定期使用一段代码,无服务器提供程序将保持它准备好被激活——对这个现成代码的请求称为“热启动”。对一段时间未使用的代码的请求称为“冷启动”。Workers 通过使用 Chrome V8 引擎在很大程度上避免了冷启动问题,该引擎在大多数情况下能够在 5 毫秒内启动和运行 JavaScript 代码。如果代码已经在运行,则响应时间不到一毫秒。详细了解不同无服务器平台的性能。, 供应商锁定是一种风险,允许供应商为应用程序提供所有后端服务不可避免地会增加对该供应商的依赖。与一个供应商建立无服务器架构可能会使必要时难以切换供应商,特别是因为每个供应商提供的功能和工作流程略有不同。, 谁应该使用无服务器架构?,想要缩短上市时间并构建可快速扩展或更新的轻量级、灵活应用程序的开发人员可能会从无服务器计算中受益匪浅。无服务器架构将降低使用不一致的应用程序的成本,高峰期与几乎没有流量的时间交替出现。对于此类应用程序,购买持续运行且始终可用(即使未使用)的服务器或服务器块可能是对资源的浪费。无服务器设置将在需要时立即响应,并且在静止时不会产生成本。此外,想要将部分或全部应用程序功能推送到靠近最终用户以减少延迟的开发人员将需要至少部分无服务器架构,因为这样做需要将一些进程移出源服务器。,, 开发人员何时应避免使用无服务器架构?,在某些情况下,无论从成本角度还是从系统架构角度来看,使用自我管理或作为服务提供的专用服务器都更有意义。例如,具有相当稳定、可预测的工作负载的大型应用程序可能需要传统设置,在这种情况下,传统设置可能更便宜。此外,将遗留应用程序迁移到具有完全不同架构的新基础架构可能非常困难。, ,与传统的基于云或以服务器为中心的基础架构相比,无服务器计算具有许多优势。对于许多开发人员而言,无服务器架构以更低的成本提供了更大的可扩展性、更大的灵活性和更快的发布时间。使用无服务器架构,开发人员无需担心购买、配置和管理后端服务器。然而,无服务器计算并不是所有 Web 应用程序开发人员的灵丹妙药。,, 无服务器架构不是为长时间运行的进程构建的
客户端和服务器端是描述应用程序代码运行位置的 Web 开发术语。Web 开发人员还将这种区别称为前端与后端,尽管客户端/服务器端和前端/后端并不完全相同。在无服务器架构中,无服务器供应商将资源托管并分配给所有服务器端进程,并且这些进程会随着应用程序使用量的增加而扩展。, 什么是客户端-服务器模型?,大部分 Internet 都是基于客户端-服务器模型。在此模型中,用户设备通过网络与位于中心的服务器进行通信以获取所需的数据,而不是相互通信。膝上型电脑、智能手机和台式计算机等终端用户设备被视为服务器的“客户端”,就好像它们是从公司获得服务的客户一样。客户端设备向服务器发送网页或应用程序请求,服务器提供响应。,使用客户端-服务器模型是因为服务器通常比用户设备更强大、更可靠。它们还不断维护并保存在受控环境中,以确保它们始终处于开启状态和可用状态;尽管个别服务器可能会出现故障,但通常有其他服务器支持它们。同时,用户可以打开和关闭自己的设备,或者丢失或损坏自己的设备,不会影响其他用户的互联网服务。,服务器可以同时服务多个客户端设备,每个客户端设备在访问和浏览互联网的过程中向多个服务器发送请求。,多个客户端和服务器交互:,,每个客户端将与多个服务器通信,反之亦然。,假设用户正在浏览 Internet,并在他们的浏览器栏中键入“netflix.com”。这导致向DNS服务器请求netflix.com的IP 地址,DNS 服务器通过将 IP 地址提供给浏览器来响应此请求。接下来,用户的浏览器向 Netflix 服务器(使用 IP 地址)发出请求以获取页面上显示的内容,例如电影缩略图、Netflix 徽标和搜索栏。Netflix 服务器将其传递给浏览器,浏览器将页面加载到客户端设备上。, 客户端是什么意思?,在 Web 开发中,“客户端”是指 Web 应用程序中显示或发生在客户端(最终用户设备)上的所有内容。这包括用户看到的内容,例如文本、图像和 UI 的其余部分,以及应用程序在用户浏览器中执行的任何操作。,HTML 和 CSS 等标记语言由客户端的浏览器解释。此外,许多当代开发人员正在他们的应用程序架构中包含客户端进程,而不再在服务器端做所有事情。例如,动态网页的业务逻辑*通常在现代 Web 应用程序中运行客户端。客户端进程几乎总是用 JavaScript 编写的。,在上面的 netflix.com 示例中,指示 Netflix 主页如何呈现给用户的 HTML、CSS 和 JavaScript 由客户端的浏览器解释。该页面还可以响应“事件”:例如,如果用户的鼠标悬停在其中一个电影缩略图上,则图像会展开,并且相邻的缩略图会稍微向一侧移动,以便为更大的图像腾出空间。这是客户端进程的示例;网页中的代码本身会响应用户的鼠标并启动此操作,而无需与服务器通信。,客户端也称为前端,尽管这两个术语并不完全相同。客户端仅指进程运行的位置,而前端是指运行客户端的各种进程。,*动态网页是不会为所有用户显示相同内容并根据用户输入进行更改的网页。Facebook主页是动态页面;Facebook 登录页面大部分是静态的。, 服务器端是什么意思?,就像客户端一样,“服务器端”意味着发生在服务器上的所有事情,而不是客户端。过去,几乎所有的业务逻辑都运行在服务器端,包括渲染动态网页、与数据库交互、身份认证和推送通知。,在服务器端托管所有这些进程的问题在于,涉及其中一个的每个请求每次都必须从客户端一直传输到服务器。这引入了大量的延迟。出于这个原因,当代应用程序在客户端运行更多的代码;一个用例是通过在浏览器中运行脚本来实时呈现动态网页,这些脚本可以更改用户看到的内容。,与“前端”和“客户端”一样,后端也是发生在服务器上的进程的术语,尽管后端仅指进程的类型,而服务器端指的是进程运行的位置。, 什么是客户端脚本?什么是服务器端脚本?,客户端脚本仅仅意味着在客户端设备上运行脚本,例如 JavaScript,通常在浏览器中。用 JavaScript 编写的各种脚本都可以在客户端运行,因为 JavaScript 是普遍支持的。只有当用户的浏览器支持时,才能使用其他脚本语言。,服务器端脚本在服务器而不是客户端上运行,通常是为了向网页提供动态内容以响应用户操作。服务器端脚本不必用 JavaScript 编写,因为服务器可能支持多种语言。,脚本在客户端和服务器端运行:,,数据在客户端和服务器之间来回传递,脚本可以在双方运行。, 服务器端进程如何在无服务器架构中工作?,在无服务器计算中,所有服务器端或后端进程仍然在服务器而不是客户端设备上运行,但它们并未部署在任何特定的服务器或一组服务器上。后端进程被分解成的功能,这按需运行,并自动扩大。开发人员仍然可以在无服务器架构中构建通常在服务器端运行的所有功能。, ,客户端和服务器端是描述应用程序代码运行位置的 Web 开发术语。Web 开发人员还将这种区别称为前端与后端,尽管客户端/服务器端和前端/后端并不完全相同。在无服务器架构中,无服务器供应商将资源托管并分配给所有服务器端进程,并且这些进程会随着应用程序使用量的增加而扩展。, 什么是客户端-服务器模型?,服务器端脚本在服务器而不是客户端上运行,通常是为了向网页提供动态内容以响应用户操作。服务器端脚本不必用 JavaScript 编写,因为服务器可能支持多种语言。
网络服务器是一种功能强大的计算机,用于集中存储文件和运行程序。专用服务器可以帮助改善文件管理和安全性,并使员工更容易协作。为您的需求选择合适的服务器至关重要。您将需要专家帮助来设置服务器、确保其安全并定期维护和更新其软件。,, 1.使用服务器,服务器用于存储文件和运行集中式应用程序,例如您的客户数据库。过去,服务器是必不可少的。但是,大多数企业都使用云计算服务。网络服务器可以有很多角色,您可以使用网络服务器来:,拥有多台计算机的企业可能需要将负载分散到多台服务器上,如果您在服务器上运行某些应用程序,它们可能会显着降低您的网络速度。他们可能需要一个单独的服务器,仅用于他们。此类应用可以包括:, 使用云作为服务器,您可以使用云计算服务(有时称为托管应用程序或软件即服务 [SaaS])来执行许多传统上需要服务器的工作。云计算服务非常适合内部 IT 专业知识很少的小型或新公司。它们设置简单,操作便宜,如果您遇到服务问题,大多数都提供 24/7 支持。一些企业混合使用服务器和基于云的服务。,,借助云计算,您的数据保存在位于您业务之外的服务器上,与购买服务器相比,云计算提供了几个关键优势,在注册云服务之前仔细考虑, 2. 系统类型,大多数网络服务器都是高性能 PC, “瘦客户端”系统,服务器虚拟化可以让你用一台服务器做更多的事情,购买新服务器时需要考虑一些一般规则, 3.服务器硬件,您的服务器每天都会开着。这意味着硬件需要非常可靠。关键部件是处理器、RAM(随机存取存储器)、电源和硬盘。服务器有独立式和机架式两种形式。,选择具有强大处理器的网络服务器,确保您有足够的可用 RAM,将硬盘故障的风险降至最低,您可能需要一些额外的组件,服务器的成本会因规格而异,入门级服务器的成本至少为 500 英镑。更强大的服务器可能要花费数千美元。, 4.服务器软件,典型的网络服务器可能安装了几种不同类型的软件。两个主要的网络操作系统是微软的 Windows Server 和 Linux,您可能需要额外的软件来监控和控制您的网络,您可以使用服务器集中安装和管理软件,某些软件作为客户端-服务器应用程序提供,您可能需要其他软件,例如:, 5. 安全,服务器通常保存大量重要的公司数据,因此可能成为黑客或网络犯罪分子的目标。与任何计算机一样,服务器也可能会遇到软件崩溃或硬件问题。您可以做很多事情来最大程度地降低失败或灾难的风险,并在发生任何事件后轻松恢复和运行。,使用不间断电源 (UPS) 保护您的服务器,备份您的数据,您可以防止硬盘故障,使用安全软件保护您的服务器,使所有服务器软件保持最新,确保您的服务器在物理上是安全的, 6.升级,一台服务器应该至少可以使用四到五年。大多数设计易于升级,可以延长其使用寿命。您可能需要升级硬件,您可能需要升级您的软件,在没有其他人需要访问它的时候升级您的网络服务器, ,网络服务器是一种功能强大的计算机,用于集中存储文件和运行程序。专用服务器可以帮助改善文件管理和安全性,并使员工更容易协作。为您的需求选择合适的服务器至关重要。您将需要专家帮助来设置服务器、确保其安全并定期维护和更新其软件。,,将硬盘故障的风险降至最低
在过去的几年中,我们看到 Web 应用程序的安全性有了巨大的提高,即使在拥有高级安全软件之后,这种扩展使用的主要原因是 Web 攻击已成为数据泄露的最常见原因。顶级网络安全公司的许多报告都强调了这一点,因此它已成为用户考虑的重要组成部分。在大多数情况下,这些 Web 应用程序攻击使用一些常见的攻击(如 SQL 注入或跨站点脚本)来针对网站和服务器。,,为了防止此类攻击,人们必须寻找强大的 Web 应用程序防火墙来阻止网络黑客利用漏洞。在本文中,我们将了解一些围绕 WAF 的重要术语以及过滤威胁和提高最终用户 Web 安全所需的内容。, 什么是 Web 应用程序防火墙?,Web 应用程序防火墙负责在来自恶意网站的流量到达任何 Web 应用程序之前对其进行过滤。这些防火墙通过阻止SQL 注入和拒绝服务 (DoS) 攻击等针对性攻击来保护 HTTP 应用程序。为了保持安全软件的高标准,OWASP 不断推动为 Web 应用程序编写一个可靠的框架,以使其更能抵抗任何攻击。开源基金会拥有许多资源来帮助开发人员保护他们的 Web 服务器,但不能使用相同的准则构建每个 Web 应用程序。某些服务器必须遵循 IPS、IDS 和其他一些标准协议来保护其网络。,WAF 在防止黑客插入的恶意软件感染方面也有很大帮助。网络犯罪分子通常通过插入虚假链接重定向和偷渡式下载来利用网站。只有 WAF 可以保护 Web 内容和访问者免受此类利用。普通的防火墙无法监控和阻止流量,它只能保护在两个 Web 服务器之间运行的数据。, Web 应用防火墙的演进,在 Internet 的早期,许多 IT 专家坚信没有必要为计算机安装额外的防火墙。令人震惊的是,一些公共杂志甚至曾经鼓励文章标题为“您的计算机是否需要额外的安全防火墙?”。当时,没有人相信防火墙,因为端口系统可以很好地区分不同的流量类型。端口的概念基于过滤传入的数据包并执行 Web 浏览器发送的必要操作。,这些概念和传统的防火墙技术完美地支撑了堡垒长达十年。尽管如此,当公司开始通过在线运营成为主流时,对于大多数用户群来说,它立即变得不足。现代公司通过快速的应用程序开发和软件风靡全球。这对最终用户来说效果不佳,因为它比黑客简单地扫描端口造成了更多的漏洞。这些应用程序充满了人们无法轻易理解和修复的错误和错误。结果,犯罪分子开始利用每一个漏洞为自己谋利。,这就是 WAF 诞生的时候。在 WAF 开发的初始阶段,公司使用内部服务器来安装软件以从字面上消除数以千计的攻击。随着软件和防火墙的成熟,基于云的服务公司购买了一个订阅计划来消除所有网络威胁。在很短的时间内,每个大小 IT 公司都开始采用 Web 应用程序防火墙,因为它不仅仅是比较端口号和 IP 地址。, WAF 是如何工作的?,Web 应用程序防火墙可以设计用于软件、硬件设备或两者。WAF 接管 Web 应用程序的控制权并拒绝来自恶意站点的所有请求。WAF 与后端网络一起部署以防止 Web 服务器和用户数据,它们通常遵循称为反向代理的常见配置。在这种方法中,存在于客户端和后端网络之间的中间人或中间人是 WAF。因此,当客户端请求后端网络时,它必须首先通过 Web 应用程序防火墙。,WAF 接管对客户端请求以及传出服务器响应的控制。当这种情况发生在两个方向时,软件可以识别违反安全策略的流量。使用消极或积极的安全模型来阻止流量或过滤恶意站点。,在消极安全模型的情况下,防火墙预设了某些规则以跨服务器发送请求。大多数传统防火墙遵循否定模型,因为它们过去允许几乎所有传入请求都遵循一些预定义的安全规则。它在那些日子里可能奏效,但在当今技术为先的世界中,这种安全模型无法为用户提供全面保护。负面模型有很多黑客可以利用的漏洞,IT部门面临的一些主要问题是:,当我们谈论积极的安全模型时,我们需要了解它只是请求通过消极安全规则后的另一道防线。一旦 Web 请求遵循负面安全规则,它们将再次受到审查并与用户请求进行比较。如果在扫描过程中发现任何异常情况,防火墙会阻止流量。除了这两种模型之外,还有另一种连接到下一代 Web 应用程序防火墙的高级方法。它们遵循一种独特的方法来过滤流量,但它们也可以实现混合模型。, Web 应用程序防火墙的类型,随着技术的进步,人们得到了更好的工具和软件来构建应用程序。因此,选择正确的 WAF 以完美弥合应用程序界面和 Web 服务器之间的差距非常重要。现在,从各种各样的选项中进行选择的问题是您需要了解每个选项的优缺点。为了帮助您选择正确的 WAF 类型,我们列出了三个选项,涵盖了市场上几乎所有的安全防火墙。, 基于硬件的 Web 应用防火墙,通过硬件设备使用的 WAF 主要旨在为每天有数千访问者的组织提供服务。拥有硬件设备可提高客户端效率,并以高速和高性能照顾庞大的用户群。这种类型的Web应用防火墙需要安装在局域网内,这就是它每天可以高速运行的原因。与其他费用相比,硬件安装和定期维护成本要高得多,但对于规模庞大的企业来说,这些成本很容易负担得起。最著名的基于硬件的 WAF 之一是 WAPPLES,它带有负载均衡器并遵循基于规则的检测算法来提高交付速度和应用程序性能。, 基于软件的 Web 应用防火墙,这里的安装过程是虚拟完成的,而不是使用物理机。与硬件WAF不同的只是安装;其余组件具有相同的功能。使用基于软件的 WAF 的最终用户也需要拥有他们的虚拟机管理程序。简单来说,软件WAF就像通过得来速吃汉堡,而硬件WAF就像在店里吃汉堡。这种类型的 WAF 最好的部分是它为组织提供的灵活性。员工可以通过云连接并访问应用服务器。尽管可以在云系统上部署软件 WAF,但当虚拟机执行过滤过程时,它确实会遇到高延迟数字。, 下一代/基于云的 WAF,任何拥有基于云的系统的组织都不会受到任何限制,因为这种防火墙安全模型不需要额外的维护和物理存储成本。下一代应用防火墙也不需要管理员不断监控系统的差异。通过云集成,WAF 软件以最低订阅成本作为服务提供。一个很好的例子是 Cloudbric,这是一种 SECaaS 产品,提供DDoS保护和CDN等服务的组合。, WAF 解决方案的必备功能是什么?,WAF 需要某些功能来提高速度和整体性能,因此优先考虑功能集以完成 WAF 解决方案至关重要。我们列出了一些必须具备的功能,可以考虑扩展正常的 WAF 功能,因此请务必阅读每个功能并将它们与您的要求保持一致。, OWASP 十大威胁的解决方案,OWASP是收集有关 Web 服务器攻击的重要信息的基础,正如我们在前面的部分中已经提到的。社区成员包括行业专家和其他开发人员,他们寻找解决方案来减轻不安全的直接对象引用和缺少功能级访问控制等攻击。在他们的官网上有更多关于这些攻击的信息,所以每个WAF解决方案都必须涵盖OWASP提供的十大安全威胁。, PCI DSS...