使用 Nocalhost 开发 Rainbond 上的微服务应用

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本文将介绍如何使用 Nocalhost 快速开发 Rainbond 上的微服务应用的开发流程以及实践操作步骤。Nocalhost 可以直接在 Kubernetes 中开发应用,Rainbond 可以快速部署微服务项目,无需编写Yaml,Nocalhost 结合 Rainbond 加速我们的微服务开发效率。

一. 简介


Nocalhost[1] 是一款开源的基于 IDE 的云原生应用开发工具:


  • 直接在 Kubernetes 集群中构建、测试和调试应用程序
  • 提供易于使用的 IDE 插件(支持 VS Code 和 JetBrains),即使在 Kubernetes 集群中进行开发和调试,Nocalhost 也能保持和本地开发一样的开发体验
  • 使用即时文件同步进行开发:即时将您的代码更改同步到远端容器,而无需重建镜像或重新启动容器。


Rainbond[2] 是一款云原生应用管理平台:


  • 使用简单,不需要懂容器、Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期。主要功能包括应用开发环境、应用市场、微服务架构、应用交付、应用运维、应用级多云管理等。


二. 本地 + Rainbond 开发微服务


以前我们在本地 + Rainbond 开发微服务时,要开发的模块我们运行在本地,其他模块运行在 Rainbond 上,我们通过 Rainbond 的网关与本地进行通信、联调。


640.png


这样会遇到一些问题:


  • 多人协作开发联调困难
  • 本地环境差异化
  • 无法通过注册中心(Nacos)调用其他微服务
  • 远程Debug较难
  • 受限于本地资源


三. 使用 Nocalhost + Rainbond 开发微服务


现在我们通过 Nocalhost + Rainbond 开发微服务时,所有服务都运行在 Rainbond 上,当要开发时本地 Vscode 直连到 Rainbond 组件中,并与本地代码实时同步到 Rainbond 组件中。多人开发联调时,可通过 Rainbond 内置的 Service Mesh 进行服务之间联调。


640.png


使用 Nocalhost 开发,可以解决本地开发时遇到的问题:


  • 多人联调开发更便捷
  • 服务都运行在 Rainbond 上,不再受限于本地
  • 与生产环境更接近
  • 远程Debug
  • 通过注册中心(Nacos)调用其他微服务组件


四. 实践操作步骤


Nocalhost 目前支持两种开发模式:


  • Repliace DevMode
  • Duplicate DevMode


本篇将主要介绍 Replace DevMode,当进入 Replace DevMode 时,Nocalhost 会对 组件 执行以下操作:


  1. 将副本数缩减为 1
  2. 替换容器的镜像为开发镜像
  3. 增加一个 sidecar 容器。
  4. 转发一个本地端口到文件同步服务器。
  5. 启动本地文件同步客户端。
  6. 打开远程终端。


4.1 安装 Nocalhost 插件


Nocalhost 支持 VScodeJetBrains ,这里我们主要介绍 VScode 插件安装[3]参考官网文档。


  1. 打开 VScode,点击左侧的 Extension 按钮

640.jpg


  1. 在搜索框中输入 Nocalhost 选择 Nocalhost 插件,并点击 Install 按钮


640.png


4.2 安装 Rainbond


我们选择 基于主机安装 Rainbond[4]


4.3 Nocalhost 对接 Rainbond 集群


  1. 获取 kubeconfig 文件,进入 Rainbond 集群视图 -> 点击节点配置 -> kubeconfig


640.png


  1. 我们将 kubeconfig 文件复制到本地并保存为 yaml 文件。
  2. 打开 Vscode,点击按钮,打开 Nocalhost 插件,选择 Connect to Cluster,选择我们 kubeconfig 文件的路径,点击 Add Cluster,添加集群。
  3. 添加完成后,如下图:


640.png


4.4 在 Rainbond 上部署 Spring Cloud 微服务


  1. 这里选择从开源应用商店安装 Spring Cloud Pig 微服务组件,在应用商店中搜索 Pig 进行安装。


  1. 部署完成后,效果如下:


640.png


4.5 进入 Nocalhost 开发模式


上面我们已经在本地 Vscode 中对接好了集群,并且也已经在 Rainbond 中安装了 Spring Cloud Pig 微服务,那么接下来我们在本地 Vscode 中选择其中一个组件进行开发,这里为了效果更明显,选择开发 pig-ui 组件。


Spring Cloud Pig 后端[5]

Spring Cloud Pig 前端[6]

4.5.1 克隆 Pig-ui 代码到本地


git clone https://gitee.com/zhangbigqi/pig-ui


4.5.2 启动本地开发


打开 Vscode,点击按钮,找到我们的 Pig-ui 组件,由于该应用是从开源应用商店中安装,Deployment名称是自动生成的字符串,我们需要在组件中查询下。


640.png


640.png


我们点击旁边的🔨进入开发模式,

  1. 提示选择容器,我们选择 gred5f1c 这个容器,剩下那个容器是 Rainbond 的 Mesh 容器,用于内部通信,不可替换
  2. 提示指定源代码目录,选择我们刚刚克隆下来的代码目录。
  3. 等待片刻后,会默认打开远端容器的终端界面并且容器内的文件会与本地实时同步,如下:


640.png


4.5.3 启动项目


  1. 安装项目依赖,执行


npm install


  1. 运行项目


npm run dev


启动后效果如下,容器内端口为 80


640.png


  1. 开启端口转发,点击按钮,找到我们的 Deployment,右键选择 Port Forward,Add Port Forward,输入 38000:80 将容器的80端口转发到本地的38000端口。


640.png


  1. 通过 http://localhost:38000 可以访问到页面,并且也可以正常登录。


640.png


4.5.4 修改代码查看效果


上面已经演示了如果通过本地访问到远端容器内的服务,接下来我们修改代码看下效果。

修改 src/page/wel.vue,新增一段代码,保存。可以发现,当我们保存的时候,终端中就自动重启了,与本地开发效果一致。

文件的修改会实时同步到容器中。


640.png



刷新页面http://localhost:38000,可以看到修改的内容已生效。


640.png


写在最后


通过以上的实践步骤,我们已经可以通过 Nocalhost 开发 Rainbond 上的微服务应用,摆脱本地开发,进入云原生快速开发,提升我们的开发效率。


本文仅介绍了基本的开发,还可以为项目配置 Nocalhost开发配置[7] 等等,小伙伴们可以自行探索。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
18天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
23 0
|
6天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
2天前
|
持续交付 API 开发者
构建高效微服务架构:后端开发的新范式
【4月更文挑战第24天】 随着现代软件系统的复杂性日益增加,传统的单体应用已难以满足快速迭代与灵活扩展的需求。微服务架构作为一种新兴的软件开发模式,以其服务的细粒度、独立部署和弹性伸缩等优势,正在逐渐成为后端开发的重要趋势。本文将深入探讨微服务架构的设计原则、关键技术以及在实际业务中的应用实践,旨在为后端开发者提供构建和维护高效微服务架构的参考指南。
|
4天前
|
监控 API 持续交付
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第23天】 随着现代软件开发实践的不断演进,微服务架构已经成为企业追求敏捷、可扩展和弹性解决方案的首选。本文深入探讨了如何构建一个高效的微服务架构,涵盖了关键的设计原则、技术选型以及实践建议。通过分析微服务的独立性、分布式特性和容错机制,我们将揭示如何利用容器化、服务网格和API网关等技术手段,来优化后端系统的可维护性和性能。文章旨在为后端开发人员提供一套全面的指南,以应对不断变化的业务需求和技术挑战。
|
7天前
|
Kubernetes Cloud Native Go
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)(下)
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)
41 0
|
7天前
|
Cloud Native 算法 Go
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)(上)
《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)
32 0
|
9天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第18天】在数字化转型的浪潮中,微服务架构已成为企业提升系统灵活性、加速产品迭代的关键。此文深入探讨了构建高效微服务架构的实践方法,包括服务划分原则、容器化部署、持续集成/持续部署(CI/CD)流程以及监控与日志管理等关键技术点。通过分析具体案例,揭示了微服务在提高开发效率、降低维护成本及促进团队协作方面的显著优势。
|
12天前
|
监控 负载均衡 API
构建高性能微服务架构:后端开发的最佳实践
【4月更文挑战第14天】 在当今快速发展的软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了后端开发人员在设计和维护高性能微服务时需要遵循的一系列最佳实践。我们将从服务划分原则、容器化部署、API网关使用、负载均衡、服务监控与故障恢复等方面展开讨论,并结合实际案例分析如何优化微服务性能及可靠性。通过本文的阅读,读者将获得实施高效微服务架构的实用知识与策略。
|
13天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
17 4
|
18天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)