如何搭建嵌入式DevOps协作开发环境
DevOps(Development和Operations的组合词)是过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障部门之间的沟通、协作与整合。关于DevOps的具体定义、作用与优势,可以点击链接参考前序文章。本文将着重讨论如何搭建嵌入式DevOps的协作开发环境。
01.什么是协作开发环境
协作开发环境(Collaboration Development Environment,简称CDE)又称合作开发环境、联合开发环境。协作开发环境通常被视为集成开发环境(Integrated Development Environment,简称IDE)的演进,在2002年由Grady Booch、Alan W. Brown提出,可以理解为桌面编程工具与扩展开发环境的集合,包含所有开发工具的虚拟机或虚拟操作系统,更侧重于开发团队的整体需求,保证整体开发流程具备可持续性与一致性。
02.如何搭建协作开发环境
构建协作开发环境的方式有很多种,关键都是要具备自动化复制协作开发环境版本的能力。市场上有非常多的虚拟化解决方案供应商可供选择:VMWare、VirualBox、Docker、云端VPS(Virtual Private Server)、亚马逊云、华为云……团队可根据自身需求进行选择。
VMWare和VirtualBox的虚拟机可以在主机操作系统上运行。虚拟机是一个使用硬件共享资源的沙箱机器,可供分配主机系统的CPU(Central Processing Unit,中央处理器)、RAM(Random Access Memory,随机存取存储器)和部分内存,但是存在性能不佳、硬件资源耗费多的缺点。
可以考虑使用Docker之类的容器化镜像。镜像属于相对独立的容器,可快速实现数据传输与复用,无需虚拟机层便可直接使用硬件资源。镜像底层技术的实现依赖于宿主机的主机操作系统,以Docker为例,目前Docker只能运行于Linux系统,想要在Windows系统中运行就得借助VirtualBox。
除上述两种解决方案外,开发人员也可通过裸金属服务器或普通云服务器在云端VPS(Virtual Private Server,虚拟专用服务器)上工作。VPS可供安装特定的操作系统并承载所有用于构建代码的协作环境。使用性能强大的VPS进行构建,其速度更胜于笔记本电脑/工作站,也更利于团队共享环境。VPS需要在联网环境下进行开发,因此在下载构建好的程序时会受到一定限制。即便网速足够快,下载30GB的Linux发行版镜像也会需要较多时间。
选择好虚拟化解决方案后,开发人员还需要应用IaC(Infrastructure-as-Code,基础设施即代码)方法来定义基础设施的供应和管理过程,通过执行脚本完成大部分资源调配工作并准备基础设施,而非应用传统的手动定义,避免开发进程因基础设施而受阻,资源管理员也无需在手动流程上耗费时间。
构建协作开发环境的方式并不存在最优解,需要通过项目的实际情况来决定使用何种方式。正如DevOps并不是一套既定流程,如何结合实际情况使用最适合开发团队的流程和工具,是践行DevOps最具挑战性的部分。
SkyEye天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,在嵌入式软件开发过程中可替代真实硬件完成目标程序的调试和测试,是实践DevOps与CI/CD的最佳拍档。SkyEye可解决硬件测试环境搭建成本高、测试环境资源调度困难等问题,让测试更早参与到项目流程中,还可通过容器化部署的形式封装到协作开发环境,助力DevOps实践。
原文链接:https://mp.weixin.qq.com/s/4C38QfwnVlMKnjQsBCLEzg