问题描述
在观看了Klaus Ita在FreeCodeCamp YouTube频道上的关于DevOps的主题演讲后,受到了启发。在之前的工作中,他们有一个非常好的部署系统。他们从Jenkins开始,从SVN拉取源代码,然后迁移到GitHub并使用CircleCI。他们还成功地使用了多租户方法,只使用了单一的源代码来为多个客户提供服务,使一切都简化到了最低限度。现在,他开始在另一家数字机构工作,80%的项目都是基于WordPress的。他不认为他们能够将所有客户合并到一个源代码中(或者可以尝试使用多租户,通过管理单独的数据库、分离插件和主题来实现),但目前所有的项目都只是通过FTP复制到服务器上。至少,GIT用于版本控制。他想要改进这个部署过程,尽可能地自动化,至少使用Jenkins和git-ftp,但问题是如何开始做这个?是逐个将项目迁移到Jenkins,还是只迁移那些需要未来升级的项目?还是只迁移可能出现的新项目?这样的努力值得吗?对于其他20%的定制项目应该怎么办?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在决定是否自动化一切还是只自动化新项目和当前项目时,可以考虑以下几点:
1. 资源限制:如果你的时间和资源有限,可以找出软件交付过程中的瓶颈,并进行改进。一旦瓶颈不再是瓶颈,就找到新的瓶颈,依此类推。因此,如果你将80%的开发时间/资源用于新项目,可以首先自动化它,然后再处理旧项目;或者反之,根据主要瓶颈的位置来决定。
2. 项目重要性:考虑项目的重要性和长期价值。如果一个项目对业务至关重要,或者有可能需要频繁升级和维护,那么自动化它可能是值得的。对于那些不太重要或者只需要偶尔维护的项目,可以考虑手动处理。
3. 未来规划:考虑公司的未来规划和发展方向。如果公司计划增加新项目或者转型为更自动化的工作流程,那么自动化新项目和当前项目可能是一个明智的选择。这样可以为未来的扩展和改进奠定基础。
4. 团队技能:考虑团队的技能和经验。如果团队对自动化工具和流程不熟悉,那么逐步引入自动化可能是更合适的选择。可以先培训团队成员,逐步迁移项目,以确保他们能够适应和掌握新的工作流程。
综上所述,决定是否自动化一切还是只自动化新项目和当前项目取决于多个因素。根据资源限制、项目重要性、未来规划和团队技能来做出决策,以实现最佳效果。
方案2
自动化一切可能会花费很多时间,尤其是对于那些每月只执行一次或者日常需要手动处理的例行工作来说,这可能不是最佳选择。
如果你的时间和资源有限,可以考虑找出软件交付过程中的瓶颈并进行改进。一旦瓶颈不再是瓶颈,就找到新的瓶颈,依此类推。因此,如果你将80%的开发时间/资源用于新项目,可以首先自动化它,然后再处理旧项目;或者反之,根据主要瓶颈的位置来决定。
感谢用户的问题和评论,希望以上解决方案能对您有所帮助。如果您有任何其他问题,请随时提问。