热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从IaaS、CaaS、PaaS和FaaS中,如何选择正确的平台?

图片来源:网络作者付辉译来源架构师技术联盟如需转载,请联系原作者授权探索各类云平台,帮您找到最适合您的那一款!无论您是购买、
640?wx_fmt=jpeg

图片来源:网络


作者

付辉 译


来源

架构师技术联盟


如需转载,请联系原作者授权

探索各类云平台,帮您找到最适合您的那一款!无论您是购买、从零开始搭建还是采用开源技术,您可能已经在使用某种软件平台来构建,部署和扩展应用程序。


一个平台的诞生必定是经年锤炼而来,即从应用程序中提取通用的功能到更底层的抽象中。如果完成了既定的设计意图,那么您将得到一个可用的平台,反之,您将得到一个“烫手山芋”,既而您将再次寻找合适的平台,这时候您会发现别人已经构建好的平台给您带来了一线希望的曙光。


正确的平台,您将在灵活性和简单性之间达到您所需要的平衡,从而使您能够更快速地构建而不受太多限制。本文将探讨云平台的范围,以帮助您找到最适合您的那一款。


对于什么样的平台才是完美的,每个人有每个人的看法,因为每个人的使用场景有所不同。但是几乎所有人都寻求以下两个特征:


  • 提高开发速度

  • 运维操作的最佳实践自动化


这两个要求推动了大多数软件平台的投资。真的,这两项可以作为自动化任何事情的检验标准。


所以,没有一个平台对于任何用户来说是完美的,那么是否意味着我们要自己写呢?如果自己写,是否建立在一个现有的平台之上?您想要一个从上到下的紧密集成的平台,还是想要使用强大的扩展点松散连接的多层平台?


这些都是一时间难以回答的问题,并没有一个真正适合每个人的单一答案。寻找合适平台的成就感是发现,比较和权衡之一。所以我们一起来吧!


▍平台之美


云平台的“彩虹”,总有您喜欢的色彩。


每个厂商都会告诉你,他们的软件是特别的,甚至是独一无二的。他们都在努力区分产品,以提供不可替代的价值。但是,如果您仔细观察,并容忍一些粗糙的边缘,您可以根据它们提供的接口类型对这些产品进行分组。


640?

云平台例子

软件平台


术语“软件即服务”一词最早可追溯到2000年左右,指的是将打包的软件产品和支持服务捆绑在托管解决方案中,以避免经常未知的执行和操作成本。一个SaaS产品本身就是一个基础上的平台。术语描述的一些原始用途取代了传统企业资源计划(ERP)和客户关系管理(CRM)平台。


像Salesforce和SAP这样的公司,对于那些没有大型工程师团队或IT部门来构建和管理这些复杂的系统客户,他们会在这些领域非常成功。即使是拥有这些资源的公司也可能认为这些事情不在其核心竞争力范围之内,不值得自己去建设或经营。如今几乎所有类别的软件都可以通过SaaS获得,从电子邮件到文字处理系统,再到内容管理系统比比皆是。


Spectrum的另一端是基础设施即服务。


640?

将应用程序配置到基础架构平台上


基础设施平台


基础设施平台在SaaS之后不久就出现了。VMware GSX Server(2006)和亚马逊弹性计算云(EC2,2006)提供了早期的虚拟化平台。然而,VMWare最初专注在企业内部部署,亚马逊web服务则将其托管的IaaS和SaaS产品结合,定位于更广阔的市场。后来,Rackspace和美国航天局开发了OpenStack (2010)作为VMware vSphere (2009年发布,取代GSX)和亚马逊EC2的开源竞争对手。


这些IaaS主要提供了一些具体的抽象:虚拟机计算节点,软件定义的网络和可挂载的存储。在有SaaS的情况下,托管的IaaS的主要卖点是外部资源容量配置操作的自动化,但与SaaS不同,托管的IaaS会给用户带来资源规模无限大的错觉。对于大多数对基础设施外包感兴趣的公司来说,AWS会提供比客户以往任何时候资源需求量大得多的资源,在您向AWS寻求更多节点之前,已经扩展了数据中心。对于无法或者不愿意外包的公司,像OpenStack和vSphere这样的基础设施平台可以在您选择的数据中心中托管自己的云。


然而,管理不仅仅只是涉及硬件,还包括管理一个基础设施平台,并且这需要更多的工作,这是企业公司已经在自己的平台上做过的。无论是手动管理没有虚拟化层的硬件,还是渴望使配置更加自助化。因此,X即服务模式是圆满的:托管的平台成为了打包的产品,此次增加的多租户功能,允许客户自己的内部用户群体进行操作。


随之而来的应用平台。


640?

基础设施平台上的应用平台

应用平台


Fotango的Zimki(2006)和Heroku(2007)率先使用平台即服务。后来的Google App Engine(2008),CloudFoundry(2011)和其他几个加入了战斗。在当时,很明显,这些是真正的应用平台(aPaaS),专门用于加快开发人员的速度并降低运营开销。使得开发人员自己配置和管理他们开发的应用,进一步压缩了从开始到发布到反馈到迭代的周转时间,与日益普及的敏捷软件开发思想相契合,并为刚刚起步的DevOps运动播下种子。


但进步永远不会停止。容器平台出现了。


640?

基础架构平台上的容器平台

容器平台


容器化已经比您想象得要深入(FreeBSD Jails自2000年以来一直在使用),但是可以肯定的是直到Docker(2013)将Linux操作系统级虚拟化与文件系统镜像结合起来,容器化才真正广泛流行起来。这使得构建和部署容器化应用更加容易,这是一种可以理解为通过构建磁盘镜像来加快基础设施平台配置的IaaS用户模式。但与VM相比,同时运行的几台驱动器足以让您的工作站超负荷运行,容器则允许您在本地部署完整的微服务堆栈,大大加快了开发周期。另外,由于降低了开销,每个微服务器都可以拥有自己的容器映像,自己的发布周期和自己的滚动升级,允许更小的团队并行开发它们。


从容器运行时到容器平台,这是一个明显的进步。像CloudFoundry这样的应用平台和像Apache Mesos这样的集群资源管理系统自成立以来就一直使用容器隔离。下一步是公开一个平台API,允许开发人员在一组机器上部署越来越受欢迎的Docker镜像。像基础设施平台一样,容器平台也是在内部开始的,后来提供托管服务。


Mesosphere的Marathon(2013)是通用容器编排的首个开源平台之一,但它早期是由内部努力推动的,比如Google的Borg(〜2004)和Twitter的Aurora(2010年写成,在2013年开放为Apache Aurora)。


容器编排是容器平台的核心。与应用平台一样,容器平台需要提供基于约束的声明性调度。与应用平台不同的是,容器不限于十二要素应用程序。比如,有状态服务需要的持久卷,隔离保证机制,特定域的迁移过程及并行的备份作业等等。由于这种灵活性,容器平台可以轻松地变得比应用程序平台更复杂,以支持更多种类的工作负载。


640?

基于计算机集群的容器平台

为了增加灵活性,并且在不迁移的情况下支持传统工作负载,许多人在基础设施平台之上运行容器平台,但这并不是绝对必要的。容器与单个机器已经十分接近,几乎所有的工作负载都是兼容的。所以并不是每个人都需要这种灵活性。许多开发人员将他们所有的时间都花在单层的堆栈中。他们寻找避免重复执行任务的办法,例如为他们构建的每个新应用程序手工制作容器镜像。对于这些人来说,功能平台(也称为无服务器)就出现了。


640?基础架构平台上的容器平台,容器平台上的功能平台


功能平台


亚马逊推出了AWS Lambda(2014),引领了无服务的“热潮”,在其虚拟基础设施平台之上提供轻量级的容器化事件处理。像其他Amazon Web Services一样,Lambda仅仅只是一种托管服务。


因此,由Iron.io(2014),Apache OpenWhisk(2016),Fission(2016),Galactic Fog的Gestalt(2016),OpenLambda(2016)填补了私有化部署替代品的市场。


除了他们各自基于特定语言的框架之外,功能平台的运行方式与应用平台相同。因此,开发人员只需要开发事件处理程序,并使用平台API将触发器映射到该处理程序即可,而不是使用多个端点编写应用程序。功能平台通常与API网关配合或集成,以处理代理,负载均衡和集中式服务发现。与应用平台不同,功能平台透明地集成了基于负载的自动缩放,因为它们控制所有入口点和复用。


像容器平台一样,功能平台不一定需要基础架构平台,但与容器平台提供的灵活性不同,功能平台不是设计用于支持各种各样的工作负载。所以仅仅只运行一个功能平台可能是不明智的或不可能的。您可能还需要一个较低级别的容器或基础架构平台。一些功能平台甚至被设计成与容器平台集成,利用中间层自动化来降低较高层的复杂性。


640?

云平台,其接口以及抽象的规模


▍平台抽象


这些平台中的每一层都提供了自己独特的抽象和API,某些层比其他层更抽象。一些更高层级的平台要么全部采用,要么就全不用。它们具有顶部到底部的集成,但只能支持您要运行的一小部分工作负载。您可能会尝试选择最高层的抽象化来最大限度地提高开发人员的速度,但是您也必须考虑到这些平台上构建的软件将与平台最紧密耦合,当您需要重新选择平台的时候, 这将增加您的风险。另一方面,较低级别的平台可以提供最大的灵活性,可以实现最广泛的工作负载,包括Web应用程序,微服务器,过时的整体架构应用,数据管道和数据存储服务。它们使得迁移更轻松和基础设施操作更容易,但是在上面实际开发或运维应用程序,服务或作业却更难。


应用平台和基础设施平台之间的冲突是容器平台受欢迎的重要原因之一。容器平台在这两方面作出了妥协。它们允许您根据每个容器来决定您的工作负载是否需要自己的环境,或者可以作为二进制运行,支持更多种类的工作负载。但它们还像应用程序平台一样提供声明式配置,生命周期管理,复制和调度。如果您还需要更高层次的抽象,您可以轻松地在容器平台之上部署更轻量级的应用程序或功能平台,共享具有较低级别工作负载的资源和机器。如果您还需要较低级别的抽象,您可以轻松地在基础设施平台之上部署容器平台,而不是直接使用裸机。


640?

DC/OS架构层


▍DC/OS——平台终极选择

在Mesosphere,我们的使命就是让它非常容易建立和扩展规模到足以改变世界的技术。这意味着我们不仅仅服务于开发人员,也不仅仅是运营商,而是二者皆有。帮助您实现真正的敏捷性,既需要开发人员的速度和也需要运维人员的灵活性。开发人员希望减少重复工作,自动化的弹性,并建立在强大的平台服务之上。运维人员希望可见性,避免供应商锁定,以及控制成本的能力。因此,我们构建了DC/OS,以提供基于云的服务和开放的合作伙伴生态系统,与基础设施无关的容器平台。通过DC/OS,您可以获得一个坚实的容器平台,加上更高级别服务的目录:数据库,队列,自动化测试,持续交付流水线,日志记录和指标堆栈,弹性扩容及功能平台等。


投稿啦!!!



精彩继续

CSDN作为国内专业的云计算服务平台,目前提供云计算、大数据、虚拟化、数据中心、OpenStack、CloudStack、机器学习、智能算法等相关云计算观点、技术、平台、实践、云产业咨询等服务。CSDN 公众号也一直坚持「与千万技术人共成长」的理念,深度解读行业内热门技术与场景应用,致力于让所有开发者保持敏锐的技术嗅觉、对行业趋势与技术获得更广阔的认知。

文章题材

  • 首先你需要关注我们的公众号“CSDN云计算”,这样你会更准确了解我们需要的文章风格;

  • 侧重于云计算领域相关的文章,可以是技术、运维、趋势等方面的务实内容;

  • 原创,要求文章有鲜明观点和看法。

投稿须知

  •  稿费:根据原创性、实用性和时效性等方面进行审核,通过的文章会发布在本微信平台。一经采用,我们将支付作者酬劳。酬劳可能不多,这代表的是一个心意,更多是因为爱好,是有识之士抒发胸怀的一种方式;

  • 字数要求:稿件字数以2K-8K为宜,少于2K或多于8K都会一定程度降低阅读愉悦感;

  • 投稿邮箱:lijy@csdn.net。或者添加微信表明来意,微信号:tangguoyemeng。请备注投稿+姓名+公司职位


如果咱们的合作稳定又愉快,还可以签订合同长期合作哦!



推荐阅读
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 无论你是刚毕业的大学生,还是想在职业中寻求进步的经验丰富的IT专家,这些提示都可以帮你成为DevOps工程师。DevOps工程是一个备受称赞的热门职业。不管你是刚毕业正在找第一份工 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 在Kubernetes上部署多个Mitmproxy代理服务器以实现高效流量管理 ... [详细]
  • 全新发布的自我修复与自我更新的Linux版本,专为云计算环境设计! ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 关于ScrumXPDevOps的学习
    最近听了ECUG大会上孙敬云老师的分享感觉受益匪浅,毕竟大学课本上只讲到瀑布模型就没有下文了,工作以后一直贯彻的都是Scrum路线,一直也没有时间好好的去学习整理这部分的知识,直到 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 特斯拉的盈利之谜:净利润未必源自汽车销售
    近日,特斯拉因客户投诉再度成为舆论焦点。一位车主反映其购买仅6天的Model 3在使用官方超级充电桩时突然断电,引发了对特斯拉产品质量和售后服务的质疑。然而,特斯拉的盈利模式并不仅限于汽车销售,其净利润可能更多地来自其他业务板块,如能源服务、自动驾驶技术和软件订阅等。这些多元化收入来源为特斯拉的财务表现提供了更多支撑。 ... [详细]
  • 云计算加速前行,行业迎来爆发式增长节点!
    云计算加速前行,行业迎来爆发式增长节点! ... [详细]
  • Spring Boot与Redis的高效集成方案
    本文探讨了Spring Boot与Redis的高效集成方法,详细介绍了如何在Spring Boot项目中配置和使用Redis,以提升应用性能和数据处理能力。同时,文章还涉及了Go语言社区的相关资源,为Golang开发者提供了宝贵的技术交流平台。 ... [详细]
author-avatar
落花飞雪277590089
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有