如今,开发容器(Dev Containers)的概念正在被越来越多的开发者和企业所接受和应用。例如,开发者前不久可以直接将Copilot Chat集成在Visual Studio Code中,当添加dev container到工作区时,会有模板和特性建议。其实微软早在微软在2022年便推出了Dev Container Spec,推动了这一概念发展。Docker之后推出了Dev Environments的测试版。如今,包括JetBrains、IntelliJ IDEA、GoLand等越来多的开发工具都开始支持开发容器功能,一些团队和企业已经开始采用这种技术来优化他们的开发环境。开发容器的未来走向,正成为一个越来越开放的讨论空间。
开发容器是封装在容器内的编码环境,可以实现无缝开发、测试和共享。开发人员可以创建一个工作空间,开始编码,编辑Docker文件,重新启动他们的工作空间。
在国内,开发容器的应用正在逐渐普及,例如在前端项目经常需要配置各种依赖和工具,如Node.js、NPM、Yarn等。通过使用Dev Container,可以方便地创建一个包含所有必需依赖的容器化开发环境。这样,团队成员无需在本地安装这些依赖,只需启动容器即可开始工作。对于后端服务开发,如Java、Python等语言的开发,通过配置适当的容器镜像,可以包含所有必要的后端服务运行时环境和依赖库。在机器学习项目中,通常需要配置复杂的Python环境和各种深度学习框架。通过使用Dev Container,可以方便地创建一个包含所有必需依赖的容器化环境。对于需要跨平台开发的项目,Dev Container能够消除不同操作系统之间的差异。
但是,开发容器仍然有一些值得注意事情。例如,它们只支持Docker。许多喜欢使用Kubernetes或虚拟机(vm)而不是Docker的企业可能就会太注意到这点。除了Docker之外,开发容器没有明确的发展路径。但企业不愿意让开发人员为Kubernetes中的特权、功能和挂载制定规范。同时,企业也不能使用传统的dev Container CLI围绕开发容器构建定制工具,因为它不是为抽象或可扩展性而设计的。
不过,开发容器为了变得无处不在,需要在所有容器平台上提供支持,开发工具至少期望以抽象的方式来提供支持。例如,例如,Coder引入了自己的开源实现——envbuilder,它支持许多容器平台,包括Kubernetes、Docker和OpenShift。
对此,业界认为,在面向云开发的未来新开发环境中,开发容器是一项值得令人兴奋的新兴技术。
1、应用开发容器正在变得更简单。开发人员只需安装IDE和Docker,然后克隆一个开发容器仓库。写Docker文件没有专有格式的复杂性。推出开发容器环境的大型企业可以利用他们现有的编写Docker文件的经验。
2、CDE(开源云开发环境)越来越受欢迎。企业倾向让开发人员更多地控制他们的环境。在过去,当开发人员想要在一个缓慢的周期内实现新软件或更改一个版本时,他们必须推动一个繁忙的中央运营团队来做这件事。现在,有了开发容器,这种反馈循环正在发生变化。开发人员只需编辑他们的Docker文件,容器构建管道就会以完全相同的配置结束。
3、应用开发容器有利于解锁资源限制。一些组织正在运行占用大量内存的大型应用程序,这些应用程序很难在笔记本电脑上运行。在CDE中运行的开发容器正在成为远程工作的新兴标准。同时,Dev Container可以在多种操作系统上运行,包括Linux、macOS和Windows。这使得开发者能够灵活地选择他们喜欢的操作系统进行开发,而无需担心环境兼容性问题。
4、它们是可复制的。换句话说,它们解决了“它在我的机器上运行”的问题。使用开发容器,团队中的每个人都有相同的代码、版本和配置。开发容器是标准化环境内部体验的好方法。
5、它们很安全。通过使用容器技术,开发容器可以帮助隔离开发环境,减少潜在的安全风险。每个容器都运行在自己的沙箱环境中,与其他容器和主机系统相互隔离,这有助于防止恶意代码或漏洞对系统造成损害。
6、提高开发人员的生产力。与其他声明性技术一样,开发人员不必在环境中的细微差异上浪费周期。
因此,对于重视团队协作、追求高效开发的团队来说,开发容器绝对是一个值得重视和考虑的技术选项
网友评论