云计算在国内发展的风生水起,上一点规模的企业不上云就Out了,在这样的大浪潮下,云计算中的PaaS市场前些年在国内依然不温不火,大家都抱着观望的态度,以至于国内一些PaaS创业公司“死的死、伤的伤”!庆幸的是2019开年,各大机构发布的云计算市场预测都对PaaS有了很高的预测,我想大概是因为IaaS趋于成熟、同质化太严重,企业想要创新在IaaS已经没什么文章可做,而SaaS体现的又是供应商的实力,在这样的大背景下在两者之间的PaaS让企业又重新提起了兴趣。天然的面向应用、灵活组装新业务、加速新业务应用开发等PaaS特性,让企业对自身信息化建设可以有很多遐想,所以2019让我们一起看PaaS崛起。
那么,作为一名优秀的IT技术从业者是否做好了准备?让我们一起回顾下云计算PaaS!!!为跪迎PaaS在中国云计算市场开花做好准备。
首先我们切记PaaS是一种云计算模式并非是单一的某一种技术,按照当前大家共性的认知PaaS主要为三层:资源层目前已经公认容器技术最为合适、调度与编排层技术也趋于成熟、至于面向企业用户的PaaS平台层业务形态与功能各家做法不一:
PaaS产品业务形态目前主要分为公有云形式提供PaaS服务,以及软件+服务的形式帮助企业构建私有PaaS平台;
PaaS中调度与编排技术的发展过程中资源调度与业务编排框架早些年Mesos被运营商青睐,近些年Kubernetes已经成为主流,大有一统天下的趋势,但还有部分大厂商采用自有框架;
PaaS中资源层本身有很多可选项,但容器技术天然的特性让容器技术成为PaaS最佳选型。因为容器承载业务运行时让资源粒度更精细,变得更灵活可控。Cgroup与Namespace的成熟造就了Docker成为容器技术主流;
2007年Salesforce发布force.com:支持用户在平台上开发和部署定制软件,它基本使用的元数据驱动的方式来开发和管理应用。
2008年Google发布GAppEngine:为独立开发者和创业企业提供容器来部署客户应用,简化用户体验。
2009年新浪发布SAE:与GAE极度相似 为国内独立开发者和创业企业提供容器来部署客户应用,简化用户体验。
2010年Heroku被Salesforce完成收购:提供免费空间,平台支撑语言、多类型应用部署。
2011年AWS发布Beanstalk:基于虚拟机完成应用的自动部署和运维;提供自动弹性伸缩的功能;非容器技术,容器和虚拟机主要是在资源利用率、安全性和隔离性上有所差别。
2011年RedHat发布OpenShift开源项目,属于PaaS发展史中的里程碑:
2011年VMWare发布CloudFoundry开源项目,PaaS发展史中的又一个里程碑
2012年CloudBees发布Java PaaS:开发人员不需操心底层的基础架构,不需绑定特殊厂商,只要用Java来编写程序。
2014年IBM发布Bluemix PaaS:投资10亿美元构建,开放的公有云平台,基于开源Cloud Foundry,使开发者能够快速创建、部署和管理云应用程序。还开放了诸多IBM私有的 API。可以让开发者使用诸如Watson人工智能API等高级功能构建应用。
2014年Oracle发布企业级PaaS平台:最全面的公有云PaaS,定位混合云平台,涵盖健壮的SaaS支撑平台,Java和Oracle负载的本地化支持,易于迁移和负载可移植,统一的IT管理。
2015年国内互联网巨头腾讯发布GaiaStack企业级容器云:基于docker和kubernetes打造一套完整的容器云平台,它提供了从code到cloud的一站式解决方案,覆盖了开发、测试、构建、部署、运维等所有环节,简化了环境的部署,改变了应用的交付模式。GaiaStack让应用开发者像使用一台超级计算机一样使用整个集群,极大地降低了资源管理门槛。自动化的作业调度、资源保证和隔离,让多业务共享集群,提升资源使用率的同时,具备很高的伸缩性和可靠性。
2016年华为发布FusionStage新一代商用版本:分业务无关PaaS内核以及领域相关PaaS服务两层;内核层对接各种领域PaaS平台和应用;领域层与各ISV合作孵化;。
2016年阿里上线EDAS新一代应用发布系统:源自淘宝中间件整套成熟的分布式计算框架,以应用为中心的大型分布式应用服务平台。
看过PaaS厂商与产品的发展历史,是不是感觉PaaS原来这么悠久、这么多大厂商玩家,总之我希望大家看过PaaS厂商与产品发展史之后,记住“PaaS 不等于 Kubernetes;PaaS 更不等于 Docker”!!!
一体式调度(Monolithic scheduling)
两级调度(Two-level scheduling)
共享状态调度(Shared-state scheduling)
2004年Google发布Borg
Google的Borg系统是一个集群管理工具,支持成千上万的job运行,job来自不同的应用,并且跨越多个集群,而每个集群又由大量的机器构成;Borg通过组合准入控制,高效的任务打包,超额负载以及基于进程级别性能隔离的机器共享,从而实现高利用率;支持高可用的应用,运行时特性能够最小化错误恢复时间,调度策略降低相关错误发生的可能性;简化用户的使用,Borg提供一套声明工作规范语言,名称服务一体化机制,实时job监控以及一系列用于分析和模拟系统行为的工具;
2011年Apache开源项目Mesos
Mesos分布式操作系统内核,可以像用一台电脑(一个资源池)一样使用整个数据中心;Mesos是以与Linux同样的原则而创建的,不同点仅仅是在于抽象的层面;Mesos内核运行在每一个机器上,同时通过API为各种应用提供跨数据中心和云的资源管理调度能力。这些应用包括Hadoop、Spark、Kafka、Elastic Search。还可配合框架Marathon 来管理大规模的Docker等容器化应用;
2013年Yarn出现,Apache Hadoop YARN资源管理系统,其核心思想:
2014年Docker发布官方管理工具Swarm
Swarm是Docker官方提供的一款集群管理与容器编排工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源
2014年Google开源Kubernetes
谷歌公司的Kubernetes当前得到开源社区的全力支持,IBM、惠普、微软、RedHat等业界巨头纷纷加入,Kubernetes已经成为GitHub上的明星开源项目;它定位容器控制平台,可以抽象所有的底层基础设施(容器运行用到的基础设施) ;也是一个庞大的工具体系,在这个工具体系下,拥有众多平时需要花费不少精力来实现的,诸如一些运维保障的功能以及弹性调度,故障自愈等等功能;
1979年诞生的UNIX-chroot:UNIX 操作系统的系统调用;将一个进程及其子进程的根目录改变到文件系统中的一个新位置;进程组只能访问到这个新的位置,从而达到了进程隔离的目的。
2000年FreeBSD发布Jails:“监狱”(沙盒)提供文件系统、用户、网络、进程等的隔离;早期功能最多的容器技术
2001年Linux发布LinuxVServer:将资源进行划分,形成每一个zones/虚拟服务器。
2003年Solaris发布Solaris Containers:将资源进行划分,形成每一个zones/虚拟服务器。
2005年OpenVZ发布:通过对Linux内核打补丁来提供虚拟化的支持;每个OpenVZ容器完整支持文件系统、用户及用户组、进程、网络、设备和 IPC 对象的隔离。
2007年Google-Control Groups发布:CGroups集成进Linux 内核中;具有划时代意义,为后期容器的资源配额提供了技术保障。
2008年Linux-LXC发布:基于CGroups与NamesPace第一个最完成的Linux容器。
2013年Docker发布具有里程碑意义:
2014年CoreOS发布Rocket:轻量级的 Linux 操作系统,在安全性上比 Docker 更严格。
2015年Docker开源runC:轻量级跨平台容器运行时的命令行小工具,直接利用 libcontainer 运行容器,无需通过 docker engine;runC 的目标是使标准容器在任何地方都可用,并且开源。
2015年Docker与OCI开始打造生态:围绕容器行业制定标准,例如运行时规范和镜像规范,目标是在任何其他容器引擎上运行。
2016年Docker开源containerd:使得容器的管理功能移出 docker 的核心引擎,移入一个单独的守护进程。
2016年Docker与微软合作:Docker以原生方式运行在Windows上 不需要使用 Linux 虚拟机。
2017年Docker与K8S/Swarm重新梳理架构。Docker宣称同时支持Swarm和Kubernetes。
2017年至今Docker逐渐成为容器技术的主流选手,国内外存在大量使用者。