微服务发展史
- 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。此外,云原生强调自动化以提升能够开发效率和运维效率。
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 之间相互促进、相互依赖、相互关联,它们之间的关系如下: