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

Docker进入主流,PaaS大有可为(转)

addbyzhj:文章简单的说了PaaS所使用的传统容器的缺点,而docker这个容器在一定程度上解决了这些问题,越来越多的PaaS平台使用docker作容器,实现应用的隔离。不过,由于dock

add by zhj: 文章简单的说了PaaS所使用的传统容器的缺点,而docker这个容器在一定程度上解决了这些问题,越来越多的PaaS平台使用docker作容器,实现应用的隔离。不过,由于docker只支持linux,所以只能用于linux(docker使用了LXC,可以简单的认为是对LXC的封装)。对于PaaS提供商,目前的实现方案貌似是对于服务器,先用重量级虚拟机(重量级虚拟机是指自带OS的虚拟机)虚拟出几个虚拟机,然后在每个虚拟机上跑多个容器(传统容器或者docker),每个容器对应一个用户的应用。可参考百度的BAE3.0

 

 

【2014年6月10日 51CTO专稿】今天云计算界有两件大事,都跟轻量级虚拟机Docker相关,一个是Docker经过漫长的更新和改进之后,终于发布了1.0版,虽然在 这之前已经有很多云计算厂商将它用到生产环境;另一个是谷歌宣布拥抱Docker,GAE与GCE早已就Docker秘密研发多时,很快就将有重大发布, 连线将其称为“云计算的下一件大事”。

笔者认为,这意味着Docker技术将取代传统的PaaS容器技术,正式进入主流,Docker也将大幅拓宽PaaS的应用范围,隐隐有取代IaaS之势。

事实上,在Docker的支持上, 国内的云计算厂商并不落于人后,早在Docker发展处于早期的时候,百度BAE团队就研究了Docker技术,并在BAE3.0正式采用并推出了商用版,UCloud等也对Docker进行了支持。

为什么Docker如此受欢迎?

这要从PaaS说起。自从云计算被划分为IaaS、PaaS、SaaS开始,PaaS就陷入一个尴尬的境地,它既不如IaaS那样灵活而自由,又不 如SaaS那样可以直接推向消费者。有人说PaaS是未来的云计算,但是近几年IaaS和SaaS各自发展,反而是PaaS几乎裹足不前,虽然各种应用引 擎层出不穷,但是没有什么人专门为PaaS开发应用。这又是为什么呢?

这要归罪于传统的PaaS容器,传统的Container技术存在安全性问题,并不能对应用程序和系统、以及应用程序之间进行很好的隔离。一些应用 引擎为了解决这个问题,于是禁用了语言环境的很多功能,比如SAE就禁用了PHP中的exec等函数,而用SAE独自的函数来代替。

这样就带来了问题,即在其他环境中开发的应用无法无痛的移植到这些PaaS平台中,即使是为了PaaS重新开发一个应用,也无法利用别人开发好的类 库,这种自废武功的行为使得PaaS成为鸡肋。同时,传统PaaS容器还有性能问题,创建和销毁一个容器都需要很多的时间和资源。

为了解决这些问题,2013年3月PaaS厂商dotCloud发布了Docker.io,一个开源的全新linux轻量级虚拟机技术。它采用虚拟机技术来对资源进行隔离,显著提升了性能,并且大大改进了部署应用的便捷性。其中最重要的就是,它不再限制语言的功能了。

从BAE3.0的体验来看,Docker技术的确名不虚传,它采用了一种新的计价方式——执行单元,而非CPU时间、发起连接数等,这也是因为虚拟机技术带来的资源隔离,保证了自己的资源不被其他人所占用。

PaaS的未来

在传统的容器条件下,虽然PaaS受到种种掣肘,但也是有应用场景的。著名技术博主,曾主持淘宝聚石塔项目改版的陈皓对PaaS有自己的看法。他认 为,PaaS需与具体业务相结合,为打造行业应用服务。如聚石塔就是专为淘宝商家ERP服务的PaaS平台,商家可以在这个平台上开发和部署私有的ERP 系统。其他的一些开发工具和框架也纷纷研发PaaS平台服务,为使用该工具的应用提供托管,如国内的Hybrid App开发平台AppCan,以及跨平台开发框架Qt。

而现在有了Docker的加持,PaaS将有更大的发挥空间,其中一个就是在云计算的基础领域取代IaaS。目前的IaaS只是取代了传统的服务 器,其环境和应用的部署与传统相比差异很小,只是在运维上有很大的改变。PaaS这种开关式的环境搭建显然比IaaS要方便很多,符合技术发展的趋势。如 果只是为部署一般应用,PaaS足矣,但是IaaS大行其道的原因就是,每个公司都有不同的需求,而有些独特的需求在模板化的运行环境中无法支撑。比如目 前的BAE3.0的单个执行单元无法支撑混合语言环境,单个执行单元的资源有上限等等。

不过这些问题并不是不能解决的,用PaaS+Web API/IaaS的架构,将超出模板外的需求用Web API来实现,如果对资源有需求则用单独的IaaS来实现,可以覆盖多数需求。

因此,IaaS并不会消失,只是它的一部分使用场景被PaaS所占据而已。

曾有人将云计算比作水和电,我们不需要知道它们是从哪儿来的,只要一拧开关,水和电就有了。显然,PaaS符合这样的设想。虽然在以前可能不能实现,但是我们相信,在有了Docker之后,PaaS将在云计算家族里占据更重要的地位。

【责任编辑: 徐川 TEL:(010)68476606】

推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
叶葳蕤1095190287
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有