2019云计算PaaS崛起有望!

云计算在国内发展的风生水起,上一点规模的企业不上云就Out了,在这样的大浪潮下,云计算中的PaaS市场前些年在国内依然不温不火,大家都抱着观望的态度,以至于国内一些PaaS创业公司“死的死、伤的伤”!庆幸的是2019开年,各大机构发布的云计算市场预测都对PaaS有了很高的预测,我想大概是因为IaaS趋于成熟、同质化太严重,企业想要创新在IaaS已经没什么文章可做,而SaaS体现的又是供应商的实力,在这样的大背景下在两者之间的PaaS让企业又重新提起了兴趣。天然的面向应用、灵活组装新业务、加速新业务应用开发等PaaS特性,让企业对自身信息化建设可以有很多遐想,所以2019让我们一起看PaaS崛起。

那么,作为一名优秀的IT技术从业者是否做好了准备?让我们一起回顾下云计算PaaS!!!为跪迎PaaS在中国云计算市场开花做好准备。

1.正确的理解PaaS与相关技术

2019云计算PaaS崛起有望!_第1张图片

首先我们切记PaaS是一种云计算模式并非是单一的某一种技术,按照当前大家共性的认知PaaS主要为三层:资源层目前已经公认容器技术最为合适、调度与编排层技术也趋于成熟、至于面向企业用户的PaaS平台层业务形态与功能各家做法不一:

PaaS产品业务形态目前主要分为公有云形式提供PaaS服务,以及软件+服务的形式帮助企业构建私有PaaS平台;

PaaS中调度与编排技术的发展过程中资源调度与业务编排框架早些年Mesos被运营商青睐,近些年Kubernetes已经成为主流,大有一统天下的趋势,但还有部分大厂商采用自有框架;

PaaS中资源层本身有很多可选项,但容器技术天然的特性让容器技术成为PaaS最佳选型。因为容器承载业务运行时让资源粒度更精细,变得更灵活可控。Cgroup与Namespace的成熟造就了Docker成为容器技术主流;

2. PaaS厂商与产品的发展史

2007年Salesforce发布force.com:支持用户在平台上开发和部署定制软件,它基本使用的元数据驱动的方式来开发和管理应用。

2008年Google发布GAppEngine:为独立开发者和创业企业提供容器来部署客户应用,简化用户体验。

2009年新浪发布SAE:与GAE极度相似 为国内独立开发者和创业企业提供容器来部署客户应用,简化用户体验。

2010年Heroku被Salesforce完成收购:提供免费空间,平台支撑语言、多类型应用部署。

2011年AWS发布Beanstalk:基于虚拟机完成应用的自动部署和运维;提供自动弹性伸缩的功能;非容器技术,容器和虚拟机主要是在资源利用率、安全性和隔离性上有所差别。

2011年RedHat发布OpenShift开源项目,属于PaaS发展史中的里程碑:

  • 特点:采用红帽Linux 7/Atomic【基于容器优化的最小linux发行版】 + Docker + Kubernetes作为基础平台
  • 特点:支持自动映像创建、自动部署服务、应用生命周期管理、语言框架访问、中间件和数据库等
  • 特点:支持Java、Node.js、Ruby、Python、PHP甚至Microsoft.NET等,从而加快应用开发和部署
  • 特点:支持无状态,云应用和传统应用
  • 大事件:2013年 RedHat宣布将Docker嵌入RHEL中,并完全重建了OpenShift
  • 大事件:2014年 Google和RedHat发布容器调度和集群管理平台Kubernetes

2011年VMWare发布CloudFoundry开源项目,PaaS发展史中的又一个里程碑

  • 特点:开源的和免费;技术架构公开
  • 特点:支持多种编程语言和开发框架;提供多种服务类型
  • 特点:极简用户体验;简单的几个命令部署应用系统
  • 大事件:2012-2013年EMC&VMware收购Pivotal作为独立运作公司,集中于PaaS领域的机会
  • 大事件:2013年美国第三大电信运营商CenturyLink收购源于CloudFoundry的AppFog

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新一代应用发布系统:源自淘宝中间件整套成熟的分布式计算框架,以应用为中心的大型分布式应用服务平台。

  • 2016-至今国内云计算PaaS市场迎来创业公司爆发:
  • 灵雀云:容器服务与企业级PaaS功能最丰富的私有PaaS产品
  • 时速云:基于容器技术打造云原生应用产品体系,提供容器 PaaS 、DevOps、微服务治理等能力
  • 数人云:轻量级PaaS平台,后与UMCloud合并

看过PaaS厂商与产品的发展历史,是不是感觉PaaS原来这么悠久、这么多大厂商玩家,总之我希望大家看过PaaS厂商与产品发展史之后,记住“PaaS 不等于 Kubernetes;PaaS 更不等于 Docker”!!!

3.调度与编排技术发展史

3.1 调度算法

一体式调度(Monolithic scheduling)

  • 单一的调度代理(scheduling agent),负责处理所有的请求,通常应用于高性能计算
  • 所有的资源请求都会被发送到一个单一的全局调度模块
  • 典型使用者:Apache Hadoop YARN

两级调度(Two-level scheduling)

  • 分配器会将给定的资源一次性分配个一个框架,因此避免了资源使用的冲突
  • 利用一个中央协调器(central coordinator),动态地决定各个调度模块可以调用多少资源
  • 资源每次只能被一个框架使用,控制策略不易于出错。但相对于将一个资源同时分配个多个框架速度慢
  • 典型使用者:Kubernetes、Mesos[50]、Hadoop-on-Demand

共享状态调度(Shared-state scheduling)

  • 赋予了每一个调度器(scheduler)对整个集群的全部访问权限,调度器可以自由地竞争
  • 所有的资源分配都发生在各个调度器中,没有中央资源分配器,没有中央策略引擎,调度器能够自己做决定
  • 典型使用者:Google-Omega

3.2 调度与编排框架的发展

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资源管理系统,其核心思想:

  • 将资源管理和作业调用两个功能分开,分别由ResourceManager、ApplicationMaster进程来实现
  • ResourceManager:负责整个集群的资源管理和调度;
  • ApplicationMaster:负责应用程序相关事务,比如任务调度、任务监控和容错等;

2014年Docker发布官方管理工具Swarm

Swarm是Docker官方提供的一款集群管理与容器编排工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源

2014年Google开源Kubernetes

谷歌公司的Kubernetes当前得到开源社区的全力支持,IBM、惠普、微软、RedHat等业界巨头纷纷加入,Kubernetes已经成为GitHub上的明星开源项目;它定位容器控制平台,可以抽象所有的底层基础设施(容器运行用到的基础设施) ;也是一个庞大的工具体系,在这个工具体系下,拥有众多平时需要花费不少精力来实现的,诸如一些运维保障的功能以及弹性调度,故障自愈等等功能;

4.容器技术发展史

2019云计算PaaS崛起有望!_第2张图片

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发布具有里程碑意义:

  • 突破性的创新让容器实例可复制、可迁移、可重用
  • 友好度提升 提供一整套容器管理的生态系统
  • 分层的镜像模型,容器注册库,友好的 Rest API;标准化容器应用打包和部署; Docker利用AUFS技术第一次将容器实例镜像化

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逐渐成为容器技术的主流选手,国内外存在大量使用者。

你可能感兴趣的:(PaaS)