第一层:操作系统
第二层:依赖的库和第三方软件
第三层:应用的软件包和配置文件
同层可共享,这样不需要每个软件都带操作系统,降低包的大小。
对于不同应用相同文件不同的配置,在应用优先级最高的空白层放置其独特的配置文件,并不改动原始包中的配置文件。
版本变更的管理同样使用分层:
如相对于1.0版本的1.1版本,删除第一层A文件,修改第二层B文件,增加第三层C文件
则在1,0版本基础上增加第四层,将所有变更放在第四层,1234层加起来就是1.1版本。(增量跟新)
镜像和容器
镜像:应用的打包文件
容器:启动以镜像为模板的应用的虚拟机。
软件部署和代码管理面临相似问题:
快速分享机器的应用环境给其他机器用
不同机器,软件版本,配置文件镜像不一致,很难发现。
多人操作,无法详细记录每人操作日志,以便发生故障快速回退。
误删文件,数据,不易察觉和恢复
OS,软件,硬件更新迭代,维护复杂度直线上升,混乱不堪。
docker解决方案:
通过docker引擎解决硬件及OS依赖。
由于docker把应用及其依赖的软件,OS,配置文件等打包成可执行镜像,下载镜像后不需要任何安装配置可直接运行。
通过分层共享和增量变更完美解决应用运行环境问题。666666
Docker能解决的痛点:
开发人员:
1、多个项目,多个开发环境更,需要不停修改开发环境
2、机器故障换机器需重新配置一堆开发环境
3、学习新软件光是搭建环境就浪费很多时间
测试人员:
1、和开发人员环境不一致,测出问题是因为环境不一样导致
2、不同版本,不同应用需配置不同环境,繁琐,耗时,容易出错。
运维人员:
1、部署麻烦,回退复杂甚至不可能
2、多台机器无法保证一致
最后
看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。
开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题。
注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友
互联网工程师必备的面试1000题
而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。
算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题**。
[外链图片转存中…(img-cV8VdNMI-1714286573258)]