关于nocalhost:Nocalhost云原生开发新体验

本文为 CSDN 博主「祈晴小义」(黄鑫鑫:腾讯云 CODING DevOps 研发工程师、Nocalhost 我的项目的外围开发者)的原创文章,并依据作者在 CSDN 云原生 Meetup 深圳站的演讲内容进行了整顿,次要分享 Nocalhost 在解决云原生开发问题上的思路和摸索,并展现 Nocalhost 为云原生开发带来的全新体验。云原生场景下的开发痛点当咱们的利用架构从传统利用过渡到云原生利用的时候,会发现利用架构的复杂性大大晋升了,原来的传统利用组件少,部署简略,咱们往往能够在本地开发完一个传统利用后,把它丢到服务器上就能跑起来。而对于云原生利用来说,利用被拆分成一个一个粒度更小的微服务,各个服务之间有着盘根错节的关系,从而让开发环境的搭建和服务的调试变得异样艰难。 本地部署 VS 集群部署当咱们要开发云原生微服务利用时,如何将咱们的开发环境搭建起来呢?常见的有两种形式:本地部署和集群部署。 本地部署是将一整套微服务利用部署到本地的开发机器上,如下图所示: 这种形式会带来以下几个问题: 1. 影响开发机器的性能。微服务利用往往规模比拟大,动辄几十上百个服务,都泡在本人的开发机上可能会让电脑变得很卡,影响工作效率。 2. 环境无奈共享,资源节约重大。当咱们须要在本地部署起整套规模比拟大的微服务利用的时候,就须要应用配置较高的开发机器,并且每台开发机器的开发环境只有一个开发人员能应用,即使该开发人员只须要开发其中一个或某几个服务,也无奈将其它应用不到的服务共享给其它开发人员应用。 3. 对于一些规模很大的微服务利用,本地机器可能还没有方法跑起来。 另外一种形式将微服务利用部署到云上的 K8s 集群里,如下图所示: 这种部署形式能够较好地进步资源利用率,然而它会让开发和调试利用时的反馈链路被大大拉长。 咱们开发传统利用时的工作流是:在本地编写好代码 -> 把代码进行编译 -> 运行程序查看后果,如下图所示: 这个过程往往很快,所以咱们能够在做完一次代码的小改变当前,就把它运行起来查看后果。 然而在开发 K8s 集群上的利用时,工作流变成了:批改代码 -> 编译程序 -> 将程序打包到 Docker 镜像 -> 将 Docker 镜像推送到镜像仓库 -> 批改集群中容器的镜像版本,期待 K8s 将新版本的镜像部署下来 -> 查看后果,如下图所示: 这个流程可能须要耗时几分钟,当这个循环反馈被大大拉长了当前,无疑会让开发的效率大大降低。 目前支流的云原生开发方式手动打包推送镜像这种形式是最原始的形式,工作流大体如下: 编写完代码当前,在本地编译生成二进制文件或者 jar 包之类,而后通过 Dockerfile 构建出 Docker 镜像,再将镜像推送到 Docker 仓库,再通过批改工作负载的 yaml 定义中镜像版本,部署新版本容器的工作则交给 K8s 去做,只不过部署调度的过程可能有点漫长,须要期待 K8s 将新版本的 Pod 调度运行起来之后,咱们能力看到代码批改的成果。如果代码改变得频繁,这个流程显然是十分繁琐的。 ...

December 27, 2021 · 2 min · jiezi

关于nocalhost:使用-Nocalhost-开发-Kubernetes-中的-APISIX-Ingress-Controller

本文作者:黄鑫鑫 - Nocalhost 我的项目外围开发者 腾讯云 CODING DevOps 研发工程师。硕士毕业于中山大学数据迷信与计算机学院,曾负责过安全云主机及国家超算核心容器云平台等相干业务,相熟虚拟机,容器,K8s 相干技术,专一于云原生畛域简介本文通过应用 Nocalhost 将本地开发机无缝连贯到一个近程 Kubernetes 集群, 并在本地应用 Goland 来开发和调试 Kubernetes 集群中的 Apache APISIX ingress controller。Nocalhost 让咱们能够应用现有的技术栈来顺畅地开发和调试相似 APISIX ingress controller 的 K8s 利用。 本文包含: 在 IDE 中部署 APISIX Ingress controller 到近程 Kubernetes 集群应用 Nocalhost 开发和调试 Kubernetes 集群上的 APISIX ingress controller环境筹备筹备一个可用的 Kubernetes 集群。 能够应用任意领有命名空间管理权限的 Kubernetes 集群确保本地已装置好 Helm v3.0+集群中已装置好 APISIX (APISIX Ingress controller 的依赖)GoLand IDE 2020.03+装置 Nocalhost JetBrains 插件装置 Go 1.13 及以上版本部署 APISIX Ingress Controller依照以下步骤,在 GoLand 中通过 Nocalhost 部署 APISIX Ingress Controller: ...

December 16, 2021 · 2 min · jiezi

关于nocalhost:Nocalhost-为-KubeSphere-提供更强大的云原生开发环境

作者简介 张海立(驭势科技云平台研发总监):开源爱好者,云原生社区上海站 PMC 成员,KubeSphere Ambassador;日常云原生畛域工作波及 Kubernetes、DevOps、可察看性、服务网格等。 玉易才:Nocalhost Maintainer,CKA、CKAD,Work From HomeKubeSphere 简介KubeSphere 是在 Kubernetes 之上构建的以利用为核心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。 KubeSphere 提供了运维敌对的向导式操作界面,即使是 Kubernetes 教训并不丰盛的用户,也能绝对轻松地上手开始治理和应用。它提供了基于 Helm 的利用市场,能够在图形化界面下十分轻松地装置各种 Kubernetes 利用。 Nocalhost 简介Nocalhost 是一个容许开发者间接在 Kubernetes 集群内开发利用的工具。 Nocalhost 的外围性能是:提供 Nocalhost IDE 插件(包含 VSCode 和 Jetbrains 插件),将远端的工作负载更改为开发模式。在开发模式下,容器的镜像将被替换为蕴含开发工具(例如 JDK、Go、Python 环境等)的开发镜像。当开发者在本地编写代码时,任何批改都会实时被同步到远端开发容器中,应用程序会立刻更新(取决于利用的热加载机制或从新运行利用),开发容器将继承原始工作负载所有的申明式配置(configmap、secret、volume、env 等)。 Nocalhost 还提供: VSCode 和 Jetbrains IDE 一键 Debug 和 HotReload在 IDE 内间接提供开发容器的终端,取得和本地开发统一的体验提供基于 Namespace 隔离的开发空间和 Mesh 开发空间在应用 Nocalhost 开发 Kubernetes 的利用过程中,免去了镜像构建,更新镜像版本,期待集群调度 Pod 的过程,把编码/测试/调试反馈循环(code/test/debug cycle)从分钟级别升高到了秒级别,大幅晋升开发效率。 此外,Nocalhost 还提供了 Server 端帮忙企业治理 Kubernetes 利用、开发者和开发空间,不便企业对立治理各类开发和测试环境。 ...

November 30, 2021 · 3 min · jiezi

关于nocalhost:喜报Nocalhost-成功加入-CNCF-沙箱

2021 年 11 月 17 日,腾讯云 CODING 旗下产品 Nocalhost 正式通过了寰球顶级开源基金会 CNCF 技术监督委员会的评定,胜利入选 CNCF 沙箱我的项目。Nocalhost 作为开源的云原生开发环境,旨在开释技术价值,实现翻新共享,晋升 Kubernetes 环境下的微服务利用开发效率,以凋谢的姿势推动云原生的疾速演进。 云原生时代下,Kubernetes 的遍及尽管在部署和运维阶段进一步屏蔽了“微服务”利用的复杂度,但对于开发而言,云原生环境仍旧为开发带来了重重挑战。比方在每次编码后,开发都须要实现从新构建镜像、推送到镜像仓库、批改工作负载镜像版本等一系列流程能力查看编码成果,这间接导致了开发体验差、效率低下。 另外,云原生技术栈跨度大、架构设计紧贴业务需要,从而对开发人员的要求更高,随之而来的企业招聘及用人老本也水涨船高。由此看来,目前云原生开发工具仍不能满足现阶段需要,缺失的能力还需进一步补齐。 而 Nocalhost 的呈现让开发者播种了近乎本地化的开发体验,应用 Nocalhost 开发 Kubernetes 应用程序,无需从新构建镜像、更新镜像版本和期待集群调度 Pod 过程,本地编码实时失效,极大地提高了效率。Nocalhost 还提供了便捷的一键 RUN 和一键调试性能,进一步优化了在云原生环境下的开发体验。 另外,Nocalhost 面向开发者提供了 JetBrains 和 VSCode 插件,只需 2 分钟即可迅速上手。 此外,Nocalhost 面向企业则提供了 Server Dashboard,帮忙企业系统性地治理 Kubernetes 的利用和开发者以及各种开发、测试环境。 Nocalhost 团队合影 新技术是行业蓬勃发展的能源,而开源,则是孕育新技术的肥沃土壤。目前,腾讯在 GitHub 上曾经自主开源了 130 多个我的项目,累计 Star 数超过 37 万,是寰球开源奉献最大的科技公司之一。Nocalhost 作为腾讯的开源我的项目之一,自 2020 年 12 月 19 日对外开源以来,代码齐全托管在 GitHub 上,积攒的 GitHub Star 已达 900+,并于 2021 年 1 月 21 日,入选 CNCF Landscape。将来,Nocalhost 将持续秉承腾讯的开源精力以及“让开发回归原始又简略”的产品理念继续打磨产品,动摇拥抱开源生态,为简化云原生开发难度,减速云原生遍及继续贡献力量。 ...

November 29, 2021 · 1 min · jiezi

关于nocalhost:Nocalhost-让云原生开发回归原始而又简单

本文为 CODING Nocalhost 研发负责人王炜在腾讯云 CIF 工程效力峰会上所做的分享。文末可返回峰会官网,观看回放并下载 PPT。大家好,欢送加入 CIF 大会,明天我跟大家分享的内容是:破解 Kubernetes 利用开发困局。首先做个简略的自我介绍,我是来自腾讯云 CODING DevOps 的王炜,目前是 Nocalhost 我的项目研发负责人,同时也是 CNCF 大使。话不多说,让咱们进入正题。 这次分享次要分为五个方面: 首先是 K8s 环境下的开发困局;以及支流的云原生开发方式;接下来是实现容器利用和热加载的原理;开发和调试演示,这里会用一个 Demo 来进行演示;最初是开源共建和瞻望。首先是第一局部:K8s 环境下的开发困局。提到云原生开发,咱们就不得不先从 Docker 开始说起。当咱们的微服务越来越多,运行环境越来越简单的时候,Docker 镜像为咱们提供了很好的解决方案。然而当镜像和容器越来越多,服务的编排就成为了一个难题。这时候也呈现了很多计划,例如 K8s、Docker Swarm 等等。当然 K8s 曾经简直成为了事实标准,也成为了容器编排的首选计划,然而这个事实标准提供的能力却是面向运维的。例如,咱们能够通过 Liveness 和 Readiness 定义服务的主动复原机制,通过 Resource 定义资源用量等。这些定义其实对开发人员来说是减少了极大的额外负担,也造成了开发和调试两难的问题。 此外云原生的技术栈跨度十分大,这就对开发人员提出了更高的要求,这也要求团队对云原生架构设计也须要更加合乎业务的须要。所以总体而言,对企业来说,招聘和用人的老本也更高了。 下图是一张 CNCF 云原生利用开发的全景图,咱们会发现云原生开发工具这一环节目前依然是缺失的。云原生开发这么难,那么支流的开发方式又是什么呢?或者说咱们当初是怎么解决问题的? 通过总结,目前云原生开发方式次要有以下四种。 全手工的流程。例如手工构建以及推送镜像,批改镜像版本,并且期待调度失效。咱们把每次查看编码成果称为编码的反馈循环,这种开发方式编码的反馈循环大略须要十分钟一次,这是十分漫长的过程。全自动的流程,也就是把手动的环节变成了主动。这种形式显然会更快一些,然而它的反馈循环也只是缩短为了五分钟左右一次。第三种是对云原生比拟理解的团队常常会应用的计划,也就是应用 Telepresence 这款工具来开发。Telepresence 次要是买通本地和集群的网络,使开发者可能在本地进行开发。这种开发方式把编码的反馈循环升高到了 10 秒 1 次,然而因为开发服务以源码的形式运行在本地,这种形式有肯定的限度,我将在后文深刻解说。第四种是应用 Nocalhost,间接在容器里开发。这种形式能够解脱 Telepresence 在某些场景下的应用限度。 接下来咱们具体聊一聊以 Telepresence 为代表的网络买通计划的应用限度。首先它最大的限度是本地环境和工作负载的运行环境有很大的差别,这就导致业务源码很难在本地运行。比如说业务在 K8s Manifest 里申明了 configmap、secret、volume 的挂载等等,这些很难在本地重建。其次还有环境方面的差别,以及跨平台,比如说像 Linux 和 Windows 之间的这些平台差别,以及在局部场景下的网络限度。 ...

November 24, 2021 · 1 min · jiezi