Docker成为当今云计算领域炙手可热的一门知识。那么到底Docker为我们创造了什么价值呢?虽然Docker看上去像是虚拟机,但本质上是容器,是一个进程。要正确使用Docker,就要了解容器化思维。
随着互联网时代的到来,“敏捷”大行其道,应用架构也开始区分为前端展示、控制中间件和数据持久化三层,提供弹性虚拟化资源的云计算服务商如雨后春笋般诞生。如今已经迈入互联网+的时代,各行各业更加广泛地与互联网技术结合,软件成为连接人与人、人与企业、企业与企业之间的桥梁,互联网+时代对应用开发迭代速度和质量有了更高的要求,开发者也渐渐由单纯开发进入到开发、维护、发布的全过程之中(Devops)。应用开发模式正朝着微服务模式发展。所谓微服务模式有如下三大特性:
1)彼此独立。微服务模式下的每一个组成部分,都是一个独立的服务,有一整套完整的运行机制和标准化的对外接口。不依赖其他部分就能正常运转,同时可以探测其他组成部分的存在。
2) 原子化。微服务应该是不可再分的原子化服务。如果一个服务还能继续划分为几个更小的服务,那便不能称为微服务,更像是由多个微服务组成的“微系统”。
3)组合与重构。微服务的最大特点就在于它能快速地组合和重构,彼此组合成一个系统。系统里所有的实体在逻辑上是等价的,因此它的结构相对简单和松散,具有极强的扩展性和健壮性。
容器化思维就等同于微服务化思维,每个容器承载一个微服务,容器之间彼此独立运行,每个容器中只运行一个进程,容器间可以快速组合重构,形成更大的系统。Docker 作为容器工具可以把:业务逻辑容器、数据库容器、储存容器、队列容器使得软件可以拆分成若干个标准化容器,然后像搭积木一样组合起来,让彼此通信,从而形成微服务。每个容器承载一个服务。一台计算机同时运行多个容器,就能很轻松地模拟出复杂的微服务架构。
因而使用Docker时需要关注容器本身,时刻提醒自己是在使用容器,享受它带来的种种便利,如快速的应用分发能力、高效的操作和反应能力、弹性灵活的部属能力以及低廉的部署成本。同时我们也要转变思维模式,学习和适应容器化的管理方式。容器的本质是一个系统进程加上一套运行时库文件系统封装,而针对容器,我们需要监控、资源控制、配置管理,安全等。