Joyent SmartMachines

面向交付实时 web应用的优化虚拟环境,与复制硬件的传统虚拟计算机相比,提供了应用率和性能。
在传统的网络中,开发人员管理整个服务器环境,包括硬件(例如内存、 CPU、存储器)和操作系统。对于可水平扩展的系统,运营商可采购额外的硬件。通过超量供给实现垂直扩展的网络(即运营商安装了充足的硬件来应对最差的情况,在正常通信量期间会出现大量硬件资源闲置): 结果造成设备冗余、资源浪费,管理复杂。
相反,虚拟计算机能够将硬件抽象化,并共享其资源。如果管理得当,则虚拟计算机可确保提高硬件资源的应用率。但是,由于仍然以固定规格来提高硬件资源,因此虚拟计算机无法提高即时的垂直扩展,因此开发人员仍然必须进行超量供给以管理多个设备事例,从而实现水平扩展。虚拟计算机水平扩展的一个复杂因素是引导操作系统所需的时间有可能需要几分钟-这需要提供先期的超量供给,以保持意外负载下的性能。虚拟机管理的另一个缺点是开发人员也必须管理操作系统,在应用制作和稳定性方面造成另一层复杂性。
Joyent SmartMachine与传统虚拟机架构的主要差别在于,它让托管程序访问资源池而不去控制固定资源,从而加深了硬件的抽象化。SmartMachine设计用于极为透明的底层操作系统 Joyent SmartKernel。SmartKernel将这种透明度用在 SmartMachine中,为所有 SmartMachines提供对大型可用资源池的按需访问,同时仍然让各个 SmartMachine能够最低限度地保证性访问基于预确立公平调度进程的资源。这种透明性能够让 SmartKernel识别应用不足的资源,并利用这些资源来增强性能。在正常操作条件下,所有 CPU和内存资源均由应用程序直接使用,或者由 SmartKernel使用,以便优化磁盘 I/O并为SmartMachines提供其它性能增强。
SmartMachine的轻便虚拟化降低了开发人员管理多种操作系统映射的需求。在使用 SmartMachine时,开发人员为应用程序编码,并且只需管理应用逻辑,以便启用水平扩展。这就简化了基于传统硬件或虚拟机的架构,同时开发人员也必须创建并管理加载了操作系统及其它软件的多个抽象化物理服务器。集中控制的硬件也能够实现方便而动态的垂直扩展。因此,开发人员只需专注于应用制作而无需关注抽象层、操作系统或虚拟机资源。
由于 SmartMachine基于 SmartKernel,因此它拥有下列核心特征:
资源突发
SmartMachines能够在整个 SmartKernel上选择已扩张的 CPU、内存和网络带宽,在动作或使用突发期间提供所需的容量。与其它虚拟化操作系统相比,SmartKernel可支持更多的 CPU内核以及更大的内存占用。因此,当改进了底层硬件时,资源池也会变大。
灵活的配置
SmartMachines可预加载各种流行的软件环境,包括vanilla Unix安装(利润 SmartKernel)、开发平台(例如Java、PHP、Python、Java、Ruby)、数据库(例如MySQL、Riak)、负载均衡(例如Zeus)等 由于数据中心有可能需要各种不同的硬件配置,因此 SmartKernel支持 XVM虚拟计算机,以应对本地 SmartMachine之外的任何历史操作系统。
增强的应用性能
Joyent Unix为所有磁盘 I/O提供全系统范围的 RAM高速缓存,极大地改进了应用程序的读写性能。在资源池内,任何为直接用于应用业务逻辑的 CPU和内存均致力于改进性能。这种吸收闲置资源并将其直接提供给应用的方法是 Joyent所独有的。
完整的安全性
SmartKernel也为 SmartMachine应用环境增添了额外的安全性和稳定性。当root用户不具备管控 操作系统内核的能力时,执行按设备管理。SmartKernel会隔离内存、网络以及处理器,同时阻止网络重新配置及通信量嗅探,从而均衡地保持彼此完全分离的公有云。
综合
SmartMachines能够让运营商实现最高的自省及部署灵活性。服务提供商及其客户可以访问超过 4,000个自省遥测点,包括 I/O、网络、 PHP性能、MySQL查询等待时间-即任何有可能对客户满意度造成不利影响的因素。服务提供商可利用 Joyent的预防及预测技术来最大化交付在 SmartMachines上的每平方英尺服务利益率。