vagrant是虚拟机编排软件,说直白一点,就是用命令行玩虚拟机的工具,虚拟机可以做测试环境验证,当然也可以用生产,一旦能用命令行来处理,就能表达的直白无歧义,也为自动化提供了可能性,自动化来了,大批量处理也就可能了。
看过技术书籍都知道,别人看似写的很明白,但自己照着做就是不能成功,做技术验证的也是,明明自己七搞八搞成功了,但怎么成功的就说不清楚了,下一次能否再成功心里也没有把握,如果是脚本自动执行成功,那么所有的逻辑应该都准确无误的记录在了脚本中,而且可以随时重演,分享出去也是准确无误,拿到生产环境使用也是准确无误。
因此,形成可执行的脚本分享出去是非常有价值的,用Linus的说法,拿代码出来!
另外,对于流程的指导意义是,整个配置,从操作系统以后的所有环节都可以事先编排好,哪些不能加入自动化流程的就是需要改进的地方,流程上可以有审查和审批,但是不应该存在人与人的线下交接。
最近接触到git版本管理,markdown写作,vagrant虚拟机编排,kubernetes容器编排,越来越感觉用可读的,平台无关的方式处理技术问题非常的有美感,对比vagrantfile描述环境搭建和用截图加文字描述,可以感受到平台无关的,可读性的实现方式是多么好。
对软件设计的指导意义在于,任何集成第三方工具的接口处,都应该保留平台无关的描述信息,以便在任何需要的时候重构或者更换第三方工具,对于一个领域应用,在用户接口下一层就应该是一种平台无关的描述信息,以便任何时候可以轻易的对系统进行重构。
总之,云计算最核心的问题之一就是大规模的自动化部署与运维,这一生态链中沉淀了太多来自于软件开发设计领域的经验积累和智慧结晶!