1、Docker和K8S
Docker 是一个开源的、轻量级的容器引擎,和 VMware 虚拟机相比,Docker 使用容器承载应用程序,而不使用操作系统,所以它的开销很少,性能很高。但是,Docker 对应用程序的隔离不如虚拟机彻底,所以它并不能完全取代 VMware。
在传统的开发过程中(我之前的开发过程),以Java为例,一般都是本地(开发机)开发运行然后打成jar、war包放到服务器上,然后在服务器上部署相关环境(JDK、Redis、Mysql、Nginx等),非常麻烦。一款产品开发–上线是两套不同的环境,应用环境,应用配置都是不同的,很容易导致的问题是:为什么在本地可以运行,部署后出现问题,版本更新后为什么导致服务不可用,对于运维来说考验十分大。
环境配置是十分的麻烦(对Linux不熟悉的同学经常会出现各种各样奇葩的问题,甚至把环境搞脏),对于集群每一个都要部署环境(集群Redis、ES、Hadoop…) 费事费力。发布一个项目( jar + (Redis MySQL JDK ES) ),项目能不能带上环境安装打包。
基于以上问题,Dokcer提出了解决方案。
相信很多人都用过虚拟机,虚拟机,就是在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。 在“子电脑”里,你可以和正常电脑一样运行程序,例如开QQ。如果你愿意,你可以变出好几个“子电脑”,里面都开上QQ。“子电脑”和“子电脑”之间,是相互隔离的,互不影响。虚拟机属于虚拟化技术。而Docker这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化。
虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。而容器技术恰好没有这些缺点。它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境