最近和同事pair学习docker和jenkins,任务是模拟AWS上使用docker并搭建jenkins环境,实现jenkins下发任务给本地。由于是学习模拟,有三套备选方案:
1. 本地docker嵌套docker,外层docker模拟AWS环境,内层在外层基础上搭建jenkins,外层docker容器为内层jenkins服务的slave。
2. 本地virtualbox模拟AWS,本地docker是虚拟机的slave。
3. 真实AWS环境。
在数次尝试方案1并出现各种错误之后,我们求助于专业的Devops人员,得知工程中并不如此做,他们都是采用外层映射到内层的方式,所以放弃。
目前采用第2种方案,虚拟机上dock和jenkins已经搭建好,本地可以访问到jenkins服务,但是slave-master关系尚未建立成功。
我们在网络贯通中花费了一定时间,其实在搭建网络之前我们就应该这样想:
但是由于经验不足或是心急,于是我们一开始是这样做的:
在选择虚拟机和主机的通信方式上,我们直接使用了"一口吃一个大胖子"的原则,想要把虚拟机完全变成网络上一台真实主机,这无形中增加很多实验成本,于是我们换成了KISS原则。通过最简单端口映射方式实现通信。
标题说是心得,最大的心得是什么,就是自己还是浮躁一些,动手之前没有先理清逻辑,以后动手之前,还是先动笔画清楚自己想做的事情。
还有就是KISS原测吧,其实这个原则我一直是follow的,比如机器学习的特征设计,模型尽量简单等等,道理我都懂,不过要时刻提醒自己心态和习惯的转变。