![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
在 Palantir 工作期间,我花了大量时间在云环境中部署我们的软件,也花了大量时间在本地 (on-prem) 环境中部署我们的软件(包括组建一个专门做这件事的团队)。我注意到,尽管人们普遍倾向于云部署,但本地部署仍然有其优点。
从本地到云计算的转变
近年来,IT 领域越来越青睐云计算,这得益于基础设施即服务 (IaaS) 和平台即服务 (PaaS) 产品的灵活性。全球云计算市场规模从 2010 年的 246.3 亿美元增长到 2020 年的 1564 亿美元,这一趋势仍在继续,预计到 2028 年将超过 1 万亿美元。这一迅猛增长既得益于全球对计算的新需求,也得益于本地工作流程向云端的迁移。
这种转变有充分的理由,云可以实现快速资源配置、地理冗余以及从资本支出 (CapEx) 向运营支出 (OpEx) 的转变。但是,我认为在某些情况下,使用本地基础设施是至关重要的,特别是在特定技术要求(例如确定性延迟、硬件级控制和严格的安全措施)的情况下。
在我们深入比较云设置与本地设置之前,让我们花一点时间来探索每个部署通常是如何设置的。
Canonical 本地设置
典型的本地设置涉及完全受控的环境,企业可在此环境中管理技术堆栈的所有层。这包括:
物理层:硬件,如服务器、存储阵列(SAN/NAS)和网络设备(路由器、交换机、防火墙)。您还需要一个数据中心来运行您的服务器。
虚拟化层:通常使用 VMware vSphere、Microsoft Hyper-V 等虚拟机管理程序或 KVM 等开源替代方案实现,提供虚拟化资源和隔离。
存储和计算:直接管理,通常针对具有自定义配置(例如,RAID 级别、缓存机制)的特定工作负载进行优化。
网络:完全控制网络协议、路由和安全策略,实现微调的 QoS(服务质量)并最大限度地减少延迟。
Canonical Cloud 设置
在典型的云设置中,基础设施由云提供商抽象和管理,它提供:
虚拟化基础设施:计算实例、虚拟网络和存储通过 API 进行配置。利用 Kubernetes 和无服务器架构等云原生技术进行编排和扩展。
托管服务:数据库(例如 Amazon RDS、Google Cloud SQL)、数据湖、AI/ML 服务和其他高级分析工具作为托管服务提供,从而降低了运营开销。
多租户架构:资源通常在多个租户之间共享,通过虚拟化和容器化提供隔离。
比较
规模和速度:云在弹性扩展方面表现出色,这得益于自动扩展组和无服务器功能等水平扩展机制。本地基础设施需要仔细的容量规划和对物理硬件的投资,通常涉及垂直扩展。如果您是一家无法等待 9 个月才能获得新计算的初创公司,那么云是您的最佳选择。但是,如果您是一家能够预测未来一年计算负载的大型企业,那么本地部署可能是一个可行的选择。
延迟:由于服务器距离较近且可直接控制网络路径,本地设置可以实现确定性低延迟。对于延迟敏感的应用程序(例如高频交易、实时分析),这可能至关重要。云环境虽然通过 AWS Direct Connect 或 Google Cloud Interconnect 等功能针对低延迟进行了优化,但由于网络拥塞(嘈杂邻居问题)和虚拟化开销等因素,可能会引入可变延迟。因此,如果可预测的延迟和低延迟工作流程对您的业务至关重要,那么本地设置可能不是一个坏主意!
成本:云定价模式(即用即付、预留实例)提供了灵活性,但对于持续、大量工作负载,尤其是数据流出成本高的情况下,成本可能会变得昂贵。本地解决方案虽然需要大量的初始资本支出来购买硬件,但可以随着时间的推移降低总拥有成本 (TCO),尤其是对于可预测、高利用率的工作负载。云模式可能会很昂贵,Dropbox 在 2016 年将大部分存储从 AWS 转移到自己的数据中心时节省了 1680 万美元。这里有一篇文章深入介绍了本地解决方案如何为您节省资金。
专业知识:本地环境需要硬件维护、网络工程和系统管理方面的深厚专业知识。相反,云环境将大部分基础设施管理工作转移给提供商,使团队能够专注于应用程序开发和部署,通常使用 DevOps 实践和基础设施即代码 (IaC) 工具,如 Terraform 或 CloudFormation。如今,SRE 和系统管理员是稀缺人才,您可能需要大量的计算资源才能证明雇用这些人组成的团队来维护和运营本地设置是合理的(并且不要忘记您需要可持续的轮班值班!)
安全性:本地设置提供对安全配置的完全控制,从物理安全措施到细粒度的网络分段和加密协议。此控制对于满足特定的合规性标准(例如 PCI-DSS、HIPAA)至关重要。相比之下,云环境需要信任提供商的安全措施,尽管虚拟私有云 (VPC)、专用硬件(例如 AWS Outposts)和客户管理的加密密钥等功能可以缓解一些担忧。如果您正在运行需要这些安全控制和协议的工作流程,那么本地部署可能是唯一的选择。如果不是,可能需要考虑更严格的安全性!但是,我确实认为当前的云提供商正在适应并提供符合其中一些标准的产品(例如AWS GovCloud )。
结论
虽然云计算提供了无与伦比的灵活性、可扩展性和对高级托管服务的访问,但在需要低延迟、高安全性以及对硬件和软件配置的完全控制的场景中,本地解决方案仍然不可或缺。随着 IT 格局的发展,在云和本地之间的决策应以特定的技术和业务需求为指导,确保所选基础设施符合组织的战略目标,并且您可以使用上述因素和比较来做出更明智的选择,确定哪种设置更适合您!祝你好运!