开发方面有很多种 , 有些必须在windows下开发 , 有些需要MacOS环境 , 有些需要linux环境 。要看你的发展需求是什么 , 不能一概而论 。从开发速度上来说 , PHP的开发速度比Java快 , 所以项目周期会缩短 。为什么要在项目中使用docker?你需要了解docker的优势 , 根据项目的实际情况决定是否使用docker 。千万不要为了使用而使用docker或者跟风 。
项目为什么用docker?
项目为什么要用 docker , 需要了解 docker 的优势 , 结合项目的实际情况来决定是否需要使用 docker , 千万不能为了使用而使用或者跟风使用 docker 。使用 docker 是为了快速交付和传统的虚拟机相比 , docker 具有所用的资源更少性能更高隔离级别更高安全性方面也更强等特点 , 让我们看看下面几个场景 , 估计你会有更深的体会 。
01. 移植性更强相信开发人员都会遇到这样的问题代码在本地跑的好好的 , 但是一发布到测试环境怎么就有问题了呢?通常我们的的代码包需要依赖于环境中的很多因素 , 比如配置文件依赖库中间件的配置等等 , 其中一项有问题可能都会导致我们代码出现问题对于开发人员来说 , 最希望的就是我们的代码能够一次创建 , 在任意地方都能运行 。
而使用 docker 之后 , 可以实现开发测试运维环境的标准化 , 镜像文件直接做为交付物 , 避免了因为环境不同导致的各种问题 。02. 更容易扩展docker 容器可以在任意平台运行 , 不管是物理机还是虚拟机 , 不管是公有云还是私有云 , 甚至是个人电脑 , 所以我们的项目容易做迁移和扩展 。比如我们应用部署了两台机器 , 当我们想再扩展第三台机器的时候 , 我们需要先搭建好代码运行所需的环境 , 尽管虚拟机也有一些快速 copy 的技术 , 但是这个过程依然是很慢的 , 而且有些环境配置还容易出错 , 而有了 docker , 只需要构建镜像然后运行即可 , 非常方便快速 。
因为 docker 快速的构建方式 , 也让我们的项目可以实现自动且快速的扩容和缩容 。03. 更加轻量在 docker 出现之前 , 通常会采用物理机上部署多台虚拟机 , 每个应用都部署在一个虚拟机中但是虚拟机非常的重 , 虚拟机的构建速度通常都是按照分钟计算 , 占用的资源比较多 。而 docker 的速度很快 , 秒级 , 并且使用的资源更少 , 性能更高同样一个物理机器 , docker 运行的镜像数量远多于虚拟机的数量 。
使用 docker 只是快速交付的一部分docker 的优点这么多 , 那是不是用了 docker 之后 , 我们的交付速度更快了呢?我见过一个项目 , 他们号称已经微服务化了 , 当然他们确实也做到了把一个项目拆成了数个服务 , 每个服务在生产环境上部署了多套 , 算下来就是 N * M 个应用包七八十个 , 都做了容器化...但是他们依然是人肉运维 , 也是就是他们每次提测和上线需要手动部署 , 没有自动化测试和发布生产环境发生问题的时候 , 需要手动去拿日志跟踪问题 , 开发和运维依然是两个团队 , 甚至是所属两个不同的部门 , 沟通的成本很高他们虽然实现了容器化 , 但其实并没有实现快速交付 , 甚至比传统的方式更慢了 。
推荐阅读
- 抓到蛇为什么要甩甩甩,蛇的七寸在哪里
- 徕卡为什么不告华为,还是徕卡提升了华为
- 黑坑鲫鱼要用什么漂,请问黑坑窝料怎么配鲫鱼
- 为什么一坐高铁就头痛怎么缓解,坐完火车头晕晕的怎么办
- 为什么高铁过山洞的时候耳朵难受,为什么火车过隧道的时候耳朵会不舒服
- 昆明到云南昭通高铁什么时候开,为什么1月10号昆明至昭通火车停运了
- 为什么有些高铁没有特等座,动车D937在广州南有售二等座票在深圳为什么没有售二等座票
- 为什么拉饵比搓饵容易上鱼,钓鱼的拉饵和搓饵有什么区别
- 为什么高铁没有插座了,高铁有没有电源插座比方我要充电之类的
- 京东为什么老是说顺丰,京东和顺丰大概有几年的差距