肖远昊 译 分布式实验室
我使用容器已经将近三年,最初在一个技术支持团队工作,主要是帮助客户解决应用程序中的问题,并提供一些有关运行容器最佳做法的建议。如今我在的团队,做的主要是容器开发并在我们自己的OpenShift环境中使用,由于我的技术支持背景,我的故障排除技巧能帮助我完成这项工作。
容器简单
在我的工作中,我一直认为KISS原则(https://en.wikipedia.org/wiki/KISS_principle)是最棒的,那为什么不使用简单的工具来改善我的工作?我说容器很简单,因为我只需要用两个或三个命令就可以在我的机器上运行一个操作系统以及整个软件栈。由于这种简单性,我可以节省大量运行容器的时间和精力,而不是花时间在创建虚拟机、安装操作系统和安装软件。这样,我就可以专注于重要的事情。
容器轻量
容器的好处是它们直接运行在操作系统(Linux)层之上,而中间没有hypervisor层。这使得容器比虚拟机使用的资源更少,我可以在相同的硬件资源上启动更多的容器。
容器具有可移植性(不止是 "可以运行在我的机器")
容器是不可变的,这项功能对我来说特别重要。它保证了在我机器上运行的容器能以相同的方式运行在任何一台机器上。不会再有类似“它在我的机器上可以工作”这样的借口。使用容器可以避免这种情况,甚至可以运行在像AWS,IBM Bluemix,Google Cloud Platform,以及Azure这样的云端供应商上,并且获得相同的行为。
大型社区支持
想想你要使用容器运行的软件,我敢确定如果你找不到所需软件的镜像,那么很快会有人创建它,并在任何存储库中推出。大多数公司正在为他们的软件创建容器镜像用以支持在容器上运行,你可以使用这些镜像来创建自己的配置。此外,还有很多有关容器的书籍(包括付费和免费的),这些书籍会教你如何开发,运行容器并且使其更加安全。
容器是可扩展的
你找到一个可以运行的镜像,但是镜像中缺少你需要的特殊配置或者一些软件。使用容器,你可以扩展现存的镜像,在容器中加入你需要的东西,然后根据你自己的需求制作一个更适合的镜像。这样,准备操作系统运行软件的时间远远少于任何其他方法。即使使用DevOps工具,如Puppet,Chef或者其他,准备运行软件环境的时间甚至超过运行一个新的容器。
容器为云就绪
云计算是下一代计算,你可以按需在你的环境中添加资源,并收集有关它们的运行指标。容器在设计中将所有这些要求以及更多的内容带入云计算,因为它们在出现任何问题时很容易进行更换。你不必为丢失一个容器而担心,因为最先进的云计算架构已经为你管理容器,并启动了一个新的容器来替代没有响应的容器。
原文链接:https://dzone.com/articles/why-i-started-using-containers