“ 云原生 ”已成为最新一代软件开发技术和方法的总体术语。 这是关于使用Docker容器,Kubernetes和其他编排系统以及微服务编写在弹性,分布式环境中运行的软件。
新方法也需要新工具。 Microsoft的模块化,开放源代码编辑器和开发环境Visual Studio Code提供了许多扩展 ,可用于在云原生环境中使用代码以及管理这些环境。
以下是一些针对云原生工作的最直接有用的扩展的摘要。 如果您已经使用了其中一种环境或工具,并且一直想知道如何将Visual Studio Code集成到您的工作流程中,那么请从其中一种开始。
Docker扩展包
如果您使用Visual Studio Code与Docker配合使用,无论是创建Dockerfiles还是Docker Compose YAML,还是编写最终进入Docker容器的代码,或所有上述内容,那么都可以使用Docker扩展。 Docker Extension Pack在一次安装中提供了两个常见的Docker扩展: Docker Explorer和Microsoft的Docker扩展 。 如果您使用的是Docker Compose,请同时使用Docker Compose扩展,以简化生活。
Kubernetes工具
如果您正在为Kubernetes开发应用程序,则使Visual Studio Code成为工作流一部分的最直接方法是使用Microsoft的Kubernetes Tools扩展 。 Kubernetes Tools可以与Kubernetes一起使用:在成熟的Kubernetes集群和Minikube之类的项目中,在Microsoft Azure云以及包括Amazon Web Services和Google Cloud Platform在内的第三方云中都可以在本地使用。
这里支持您使用Kubernetes集群执行的大多数操作。 您可以创建和配置集群,浏览集群设置,创建新的Helm图表或从仓库中应用Helm图表,编辑清单,执行容器构建,检查Pod中的日志,管理端口转发,调试Java或Node.js应用程序以及很多更多。 所有这些都可以通过命令面板菜单中的几个击键完成。 (键入kub
和一个空格以快速启动建议列表。)
kube-scope-weave是一个随附的扩展程序(不是Microsoft的), 它通过支持Weaveworks的Weave Scope应用程序检查和可见性服务来扩展Kubernetes扩展程序。
云码
Google是Kubernetes的原始创建者,拥有自己的Visual Studio Code, Cloud Code开发Kubernetes开发扩展,可让您使用Google Kubernetes Engine,Amazon Elastic Kubernetes Service,Azure Kubernetes Service和Minikube创建Kubernetes集群。 Cloud Code在Visual Studio Code和IntelliJ IDE(或其他JetBrains IDE)的beta版中均可用。
与Microsoft的Kubernetes工具一样,Cloud Code支持整个Kubernetes操作,从集群创建和应用程序部署到资源检查和日志查看。 此外,Cloud Code对调试(Python,Node.js,Go,Java,.NET Core)具有更广泛的语言支持,以及更多的Google Cloud开发人员选项,例如对部署的Cloud Build支持。
无核
Bitnami的Kubeless是一个Kubernetes框架,用于构建无服务器应用程序-一种在自己的Kubernetes基础架构上获得类似于AWS Lambda的功能的方法。 为Visual Studio Code安装Bitnami的Kubeless扩展 ,您可以部署函数,调用它们,阅读它们的日志或直接从Visual Studio Code命令面板中删除它们。
壁球
Kubernetes有很多困难。 调试应用程序是一件大事。 Squash有助于调试在Kubernetes中运行的Python,Node.js,Java和Go应用程序。 Visual Studio Code的Squash扩展将Squash的调试工具集成到您的环境中,因此您不必切换到使用Visual Studio Code中的Kubernetes工具来编辑还要管理的应用程序。
部署
开发人员面临的一种常见情况是,将他们正在本地处理的代码或文件部署到云环境中—无论是代码存储库,Amazon S3存储桶,Dropbox文件夹,本地文件夹还是网络文件夹,或者您拥有什么。 项目中的不同文件甚至可能部署到不同的目的地。
部署扩展使您可以在项目中将通配符与许多可能的目标类型之一相匹配的文件进行部署,无论是在需要时还是在发生任何更改时。 您也可以从远程源按需双向同步,尽管仅适用于某些类型的源。
云形成
借助AWS CloudFormation,您可以通过JSON或YAML模板来管理Amazon云资源,而不必使用自定义脚本或手动摆弄AWS设置。 无论您是使用新创建的CloudFormation定义还是编辑现有的定义, CloudFormation扩展都可以通过使用样板定义自动完成文件的各个部分来加快这些模板的创建。
请注意,您可能需要安装YAML语言服务器并对其设置进行一些微调才能使用YAML,但是这些调整不应影响大多数其他YAML文档的行为,并且在不编辑CloudFormation文件时,您始终可以禁用扩展名。
地貌
HashiCorp的Terraform可以将您的云基础架构要求描述为代码。 用于Visual Studio Code的Terraform扩展为Terraform清单提供了语法突出显示,掉毛,格式化和验证。 您可以创建清单,这些清单不仅易于阅读,而且在部署之前已经过验证,在样式上正确无误。
Microsoft提供了自己的扩展,以将Terraform与Azure一起使用。 使用Azure Terraform for Visual Studio Code,可以在Visual Studio Code Shell或调色板菜单中执行Terraform命令。 您还可以创建模块的图形可视化效果,可以将其另存为.png文件。 请注意,这最后一个功能需要GraphViz ,必须单独安装。
OpenShift扩展包
从2014年下半年到2015年中,红帽的OpenShift进行了彻底的重新设计,将其转变为Docker和Kubernetes支持的平台(红帽将OpenShift称为“ Kubernetes ++” )。 从那时起,OpenShift也成为另一项面向容器的收购CoreOS的所在地。 难怪Red Hat提供了一组用于OpenShift的Visual Studio Code扩展,称为OpenShift Extension Pack (当前处于预览状态)。
OpenShift扩展包包括以下扩展:
- 用于将代码部署到集群的OpenShift连接器 (尽管仅Java和Node.js被支持为项目语言)。
- 用于与Red Hat服务器产品系列进行交互的服务器连接器 。
- 项目初始化程序,用于在Visual Studio Code会话中快速创建新的OpenShift项目。
- Microsoft提供的Kubernetes工具扩展(如上所述)。
Heroku
Heroku仍然存在大量的云应用程序,Heroku是最初的基于容器的平台即服务云之一。 ( 为什么不呢? )Visual Studio Code的两个Heroku扩展涵盖了要点。 Heroku扩展程序是检查Heroku应用程序部署状态的简单工具。 Heroku-cli是Visual Studio Code中Heroku CLI的接口。