容器技术代表下一个十年的云计算主流技术,新的技术代表有新的生态,新的技术栈,以后的运维不会docker和kubernetes就和现在不懂centos和nginx一样了,这并不是危言耸听。
就目前发展形势来说,kubernetes就相当于云原生操作系统,kubernetes上面的服务就类似传统操作系统上的软件。
所以尽快学习docker,才能在下一个云计算领域不至于掉队。
下面我们在从以下几个方面来说说为何容器是以后发展趋势。
第一个方面,容器的性能
对于传统运维来说,docker很容易和虚拟机混淆在一块谈,这是个误区,运维学习过程一定要注意这些基本的概念
虚拟机是有独立的内核,独立的用户空间,进程调用会经过虚拟机内核,然后经过宿主机内核,返回也是一样,多了一层调用。
容器是共享宿主机内核,容器只是提供一个用户空间,进程调用直接会调用宿主机内核,少了一层调用,所以容器的效率是非常高的,无限接近原生操作系统调用。
第二个方面,容器资源利用率
容器没有管理程序的额外开销,与底层共享操作系统,性能更加优良,系统负载更低,在同等条件下可以运行更多的应用实例,相比虚拟机来说可以更充分地利用系统资源。
第三个方面,容器的隔离性
如果在传统的宿主机或者虚拟机运行多个不同版本的环境,配置起来很复杂,容易出错,在容器化以后就不存在这种问题了,每个应用都可以打包成一个个独立的容器,拥有独立的用户空间,共享宿主机内存和cpu资源。
第四个方面,启动速度快
容器技术最大的优点是创建容器实例比创建虚拟机示例快得多,容器轻量级的脚本可以从性能和大小方面减少开销,可以实现秒级启动。
第五个方面,跨平台和持续部署与测试
开发可以在windows上进行docker打包测试,消除了线上线下的环境差异,保证了应用生命周期的环境一致性标准化。开发人员使用镜像实现标准开发环境的构建,开发完成后通过封装着完整环境和应用的镜像进行迁移,由此,测试和运维人员可以直接部署软件镜像来进行测试和发布,大大简化了持续集成、测试和发布的过程。真正实现了docker官网上的一句话“构建一次,到处运行”。