微服务,Docker, k8s,Cloud native 云原生的简易发展史
微服务,Docker, k8s,Cloud native 云原生的简易发展史
微服务发展史
- 2005年:Dr. PeterRodgers在Web ServicesEdge大会上提出了“Micro-Web-Services”的概念。
- 2011年:一个软件架构工作组使用了“microservice”一词来描述一种架构模式。
- 2012年:同样是这个架构工作组,正式确定用“microservice”来代表这种架构。
- 2012年:ThoughtWorks的James Lewis针对微服务概念在QCon San Francisco 2012发表了演讲。
- 2014年:James Lewis和Martin Flower合写了关于微服务的一篇学术性的文章,详细阐述了微服务。
Docker, k8s,Cloud native 云原生的简易发展史
- 2013年 dotCloud的docker公司,开源容器项目docker代码;后续更名为Docker公司。
- 2014年,Docker发布Swarm项目,意在PAAS解决集群化部署问题。
- 2014-2015年,Docker收购了Fig,发布Docker-compose来解决"容器编排"问题。
- 2014年,基础设施领域的领先者Google发,正式宣告了Kubernetes项目的诞生(Borg的开源版本)。
- 2015年,由于Docker的快速发展,在容器化上有很大话语权,届时其他的PAAS厂商或者容器化厂商,需要重夺优势,Google、RedHat等开源基础设施公司,共同发起了一个名为CNCF(cloud native computing foundation)的基金会,意在推崇Kubernetes来解决容器化问题;而k8s瞬间收到疯狂追捧,直接抢占了规模化集群部署和容器编排的市场。
- 2016年,Docker公司放弃现有的Swarm项目,将容器编排和集群管理功能内置到Docker中
- 2017 年,Docker将Containerd捐献给CNCF社区。
- 2018 年 1 月 30 日,RedHat 宣布斥资 2.5 亿美元收购 CoreOS。2018 年 3 月 28 日,这一切纷争的始作俑者,Docker 公司的 CTO Solomon Hykes 宣布辞职,曾经纷纷扰扰的容器技术圈子,到此尘埃落定。
总结来说,云原生的三大特征是:docker、kubernetes,微服务和devops。此外,云原生强调自动化以提升能够开发效率和运维效率。
Cloud Foundry的发展
Cloud Foundry是业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
Cloud Foundry项目最初的构想始于2009年,最初的项目名称为Project B29,由Derek Collison领导的VMware小组负责设计和开发。
Cloud Foundry是一个开源软件项目。该软件最初由VMWare开发,于2014年转入Pivotal和open source。2015年,Cloud Foundry基金会成立。
2015年Cloud Foundry基金会作为独立的非营利性Linux基金会合作项目宣告成立。
Cloud Foundry与docker之间的竞争关系
2013年,以AWS及OpenStack,以Cloud Foundry为代表的开源Pass项目,成了云计算领域的一股清流,pass提供了一种“应用托管”的能力。
当时的虚假机和云计算已经是比较普遍的技术了,主流用法就是租一批AWS或者OpenStack的虚拟机,然后用脚本或者手工的方式在机器上部署应用
Cloud Foudry这样的Pass项目,核心组件就是一套打包和分发机制,会调用操作系统的Cgroups和Namespace机制 为每个应用单独创建“沙盒”的隔离环境,然后在“沙盒”中运行这些进程,实现了多用户、批量、隔离运行的目的。
这个“沙盒”,就是所谓的容器。
这一年还叫dotCloud的Docker公司,也是Pass热潮中的一员。只不过,比起Heroku、Pivotal、Red Hat等大佬,dotCloud公司显得太微不足道,主打产品跟主流的CloudFoundry社区脱节,眼看就要阵亡的时候,dotCloud公司决定开源自己的容器项目Docker
“容器”其实不是什么新鲜的东西,不是Docker发明的,当时最热的Pass项目Cloud Foundry中,容器也只是最底层、最不受关注的一部分。
短短几个月,Docker就迅速崛起了,然后Cloud Foundry等所有Pass社区还没来得及成为对手,就已经被淘汰了。
Docker项目大部分和Cloud Foundry容器大部分功能和实现原理是一样的,但是不一样的“Docker镜像”,解决了环境打包的问题,直接打包了应用运行所需要的整个操作系统,赋予了本地环境和云端环境调度一致的能力,避免了用户通过“试错”来匹配不同环境之间差异的痛苦过程, 这也是Docker的精髓。
Pass的定义变成了一套以Docker容器为技术核心,以Docker镜像为打包标准的“容器化”思路
2013年年底,dotClound公司正式改名为Docker公司
OpenShift的发展历程
OpenShift是由红帽公司推出的PaaS云计算平台,它诞生于2011年,核心架构采用自研容器编排平台Gear。Kubernetes推出后,红帽决定对OpenShift进行重构。2015年6月,红帽推出了基于Kubernetes1.0的OpenShift3.0。2018年6月,OpenShift4.1发布,它与OpenShift3.0相比,较大的变化是引入了CoreOS作为默认操作系统。当前最新版本的OpenShift平台是2019年12月17日发布的4.2.11,新版系统进一步实现了混合云环境企业级服务的简化和自动化,同时可以让开发者通过云原生应用实现创新并提高业务价值。
OpenShift在Kubernetes的基础上扩展提供了软件定义网络、软件定义存储、权限管理、企业级镜像仓库、统一入口路由、持续集成流程(S2/Jenkins统一管理控制台、监控日志等功能,形成覆盖整个软件生命周期的解决方案,提供了企业级的服务支持。当前其提供三种产品:OpenShift Online、OpenShift Enterprise和OpenShift Origin。其中,OpenShift Online是面向普通开发者和小微企业的线上公有云平台;OpenShift Enterprise是面向企业的私有云平台;OpenShift Origin是一个开源项目,是构成前两个的基础
部分名词的思想理念
IAAS思想:将物理机虚拟成虚拟机,出现IAAS来解决这类问题
PAAS思想:如何在虚拟机上部署应用?本地环境和生产环境不一致,如何打包部署?需要部署多台服务器,如何实现?出现PAAS来解决这类问题
Docker思想:在PAAS解决上述问题时,绕不开的是打包和部署,而部署用容器化部署,本质上是Namespace和Cgroup来做这块,但是如何打包保证本地远程环境一致,Docker的image镜像横空出世,解决了这块的问题,使得Docker一下子步入大家的视野
Kubernetes思想:k8s杀出之前,存在docker swarm和mesos两者支撑大规模集群部署,前者拥有和docker生态无缝兼容的优势,后者则是拥有大规模集群部署的经验能力;而CNCF主要是由Google和RedHat牵头的,k8s本身又是脱胎于borg和omega这两个google本身已经开发的系统,自身已经集成了pod、sidebar等设计理念,加之Kubernetes重开发者思想,在每一层的API上都充分支持开发者撰写插件接入,其发展态势瞬间超越docker
总括:
微服务、容器、云原生、Kubernetes、SOA、Paas平台、Devops 之间相互促进、相互依赖、相互关联,它们之间的关系如下:
更多推荐
所有评论(0)