云原生技术开放日PPT大放送 | 五星级的云原生开发体验

王炜 腾讯云 CODING DevOps 高级架构师,Nocalhost 开源项目负责人,CNCF 大使。

本文根据 2021 年 4 月 10 日深圳站举办的【腾讯云原生技术开放日】 线下活动中,腾讯云CODING DevOps 高级架构师 王炜 关于“Nocalhost - 五星级的云原生开发体验”的演讲整理而成。

关注【腾讯云原生】公众号,后台回复【云原生技术】,即可获得4月10日云原生开放日所有讲师的演讲PPT。

大家好,今天跟大家分享的话题是云原生开发环境 Nocalhost。之前已经分享过了在应用上的 K8s 或者容器化之后给我们带来了一些在运维层面或者发布层面的收益,比如像滚动、灰度、A/B Test 之类的,一些运维方面的能力。其实我们会发现在我们业务应用上了 K8s 容器化、拥抱了微服务之后,我们会遇到一个非常棘手的问题,就是我们在本地怎么去开发它?

相信大部分一线开发同学应该是比较深有体会的,所以今天我们分享的话题就是跟云原生开发息息相关的。

这次分享主要会以这几个模块跟大家做主要的介绍:第一个是 Nocalhost 因何而生,我们为什么要做这个项目?第二个是目前主流的云原生背景下开发方式。第三个是我们做开源产品当然要知道我们最终想把它做成什么样的效果,比如像 K8s 目前是云原生的一个标准。第四个是 Nocalhost 的实现原理。第五个是组件构成,Nocalhost 由哪些组件构成。第六个是我们现场会演示用 Nocalhost 怎么来开发 Istio 官方的demo Bookinfo。

Nocalhost 因何而生

第一个是 Nocalhost 因何而生,为什么云原生、微服务、分布式的应用开发很难? 首先看左边的图,左边的图从基础的单体架构上来说,本地的开发体验是非常好的,比如像以前流行的 PHP,我们在开发 PHP 的时候要在本地修改完代码、刷新页面就能立即看到效果了,这是以前传统的开发方式或者单体开发方式。它是组件少,人员或者规模也比较小,环境搭建或者运维相对来说多比较简单。

随着规模或者应用场景越来越复杂,我们拥抱了微服务以及 K8s 容器化,所以这个时候我们把我们的单体应用拆成了巨大的微服务应用,它的微服务组件可能是由几十个、数百个组成的。 从右边这张图,我们就会发现微服务和微服务之间的调用是非常复杂,意味着本地怎么开发某一个微服务组件呢?常见的痛点是我需要在本地把我所有的微服务给run起来,如果微服务特别巨大,可能需要准备一台非常强的本地开发机,可能是64G内存,I7或者I9之类的,才能搞定业务系统开发。

拥抱微服务最大的问题可能还是处于开发环境的搭建以及整个开发和调试是比较困难的。

从单体架构的开发自测来说,我们每写一行代码或者几行代码、十几行代码,我们想看一下效果,在单体的架构下是很简单、快速的,但是在容器化、K8s 这种环境下,其实整个开发自测循环是很慢的,我们常见的一些开发方式可能是我写一行代码之后,然后我来运行 docker build,重新构建一个镜像,可能还要 docker push 把镜像推到我的仓库里,再修改集群工作的负载版本,再等 pod 重启,才能看到最新的效果。整个开发自测循环是非常慢,可能是五分钟、十分钟甚至更久的时间。

在开发环境上的管理,同时也会有遇到一些问题,就是在单体架构这种开发环境下是很简单的,准备一个配置不需要那么高的开发机,我就能搞定业务开发。但是在微服务这种背景下,可能有些团队会采用本地和远端组合的形式,可能会遇到不同版本的环境管理混乱的问题,甚至是需要等其他开发用完之前的环境,然后我下一个才能去用,出现这种排队的情况。

刚才提到了我们目前主流的开发方式,我们基于目前主流的开发方式整理了一张简易的图,重点关注最左边的开发方式,所有服务运行在本地的情况。可以发现,它的编码和自测反馈循环体验是最好的。开发测试环境、维护成本、横向扩容能力,这些其实都是非常弱的。当然,我们使用 K8s 和容器化之后,最右边的所有服务都运行在云端,除了编码自测返回、循环反馈体验不好以外

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2021 云原生社区各城市线下meetup PPT大合集,共八期40份。 01-上海 欢迎来到云原生社区 云原生技术在风控SaaS领域的踩坑与最佳实践 云原生监控体系建设 Apache SkyWalking Adapter for HPA Chaos Mesh让应用与混沌在 Kubernetes 上共舞 K8S在UCloud内部的应用 02-北京 服务网格在金融行业的大规模落地实践 云原生分布式存储解决方案实践 云原生下的可观察性 Apache Dubbo-go 在云原生时代的实践与探索 Istio 依然是那个少年 03-杭州 欢迎来到云原生社区杭州站 使用Chaos Mesh来保障云原生系统的健壮性 Envoy在轻舟微服务中落地实践 Envoy在阿里巴巴内部的落地实践 KubeVela-阿里巴巴新一代应用交付管理系统实践 04-广州 37手游Golang微服务演进云原生DevOps体系实践 死生之地不可不察:论API标准化对Dapr的重要性 有了 NGINX 和 Kong,为什么还需要 Apache APISIX 云原生社区 meetup 广州站开场 云原生时代的研发效能 05-成都 面向量化投资的AI云平台 Layotto:开启服务网格+应用运行时新篇章 欢迎来到云原生社区成都站 Amazon EKS-D 基于TiDB的云原生数据库实践 06-大连 分布式系统的发展与趋势分析 Achieve the maximum availability based on cloud native technologies Connecting, Controlling and Observing Dubbo Microservices with Flomesh Jutopia One-Stop ML Platform 07-深圳 KubeVela多云交付的云原生应用交付系统 使用IAST构建高效的DevSecOps流程 欢迎来到云原生社区深圳站 Envoy腾讯游戏云原生平台的应用 云原生场景下的开发和调试 08-上海 新一代开源 HCI 底层原理剖析 云原生分布式存储 Rook 及其在企业中应用的未来 攀登规模化的高峰–蚂蚁集团大规模 Sigma 集群 ApiServer 优化实践 蚂蚁万级规模K8s 集群 etcd 架构优化实践—ETCD on OceanBase 云原生2.0 华为云赋能“新云原生企业”

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值