前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >张善友:基于Kubernetes 构建.NET Core 技术中台

张善友:基于Kubernetes 构建.NET Core 技术中台

原创
作者头像
腾讯云开发者社区技术沙龙
修改2019-06-12 11:15:40
2.4K0
修改2019-06-12 11:15:40
举报
文章被收录于专栏:腾讯云技术沙龙

5月25日,腾讯云开发者社区技术沙龙-互联网架构成功举办。本期沙龙特邀请腾讯的技术专家分享关于技术架构、落地实践案例、无服务器云函数架构、海量存储系统架构等话题,从技术角度看架构发展,为开发者们带来丰富的实践经验内容,深度揭秘技术架构。下面是张善友老师关于利用Kubernetes构建.NET Core技术中台的相关分享。

讲师介绍:张善友,腾讯云最有价值专家(TVP),.NET技术专家。拥有超过十七年IT行业经验,2018年创立深圳市友浩达科技有限公司,从事.NET 技术顾问工作,工作之余,他还热心于进行社区奉献,运营微信公众号“dotnet跨平台”,同时积极参与.NET社区开源项目,被尊称为张队长。

今天我跟大家介绍的内容有三个:为什么需要中台?二是基于K8S搭建技术中台,我们已经进入了新时代,不能用老的一套,如果用老的一套就没有什么优势了。三是为什么用.NET Core做应用开发?

这个图是中国互联网的发展图,前面老师也介绍过了互联网经历了三个时代,我们现在已经处于第三个时代。2018年—2020年是企业服务时代,在国内不管是阿里还是腾讯都开始向2B转型。PC、移动怎么划分?98—2008年很多都是搞一个网站,搞一个博客,拉了很多的流量发个广告变现了,之后很多电子商务公司起来了,有了淘宝和微信进入了交易时代,这些交易的网站、流量包括企业内部也有很多的OA、ERP等等各种,要到应用从你的企业扩大到你的合作伙伴,从一个单独的系统用很长的链条串起来,进入到了企业服务时代。

企业应用信息化以前叫信息化,现在都叫数字化转型,其实说的就是原来的应用信息化都是企业内部的一个系统架一个网站,比如说这个系统就是给这个部门用的,再发展会给整个公司不同的部门用,你的公司如果大的话,这个系统还要给外部的一些合作伙伴用,我原来最早在腾讯的IT待过八年,在腾讯的财富通待过三年,做的都是企业的服务。不过腾讯的IT是腾讯自己的企业服务,那些系统因为没有对外面的消费者开放出来,一旦要连到外面的消费者,这个量就发生了质的变化。还有你的上下游,都是要把你的产业链串起来。中国的消费者市场是和全世界其他国家非常不一样的,中国的每个省都是其他一个国家的量,特别是中国的市场,像微信、支付宝这些平台和外国对比非常不一样,他们把我们整个应用的场景非常碎片化,有些API,API对外还要做小程序还有APP等等。

为什么需要中台?业务中台我们希望业务是从同一个地方发出的。接下来讲一下怎么构建一个技术的中台,其实技术的中台以前叫做技术平台,现在为什么叫做技术中台呢?一个技术平台构建完以后,平台的技术可能十年都不变,现在和原来最大的变化就是更新非常快,你要快速地去应对。

当你去构建一个创业公司的时候,需要去构建这些IT系统,这些IT系统还是按老方式构建还是新的方式构建?我的选择是基于K8s搭建技术中台。

不管是架构还是技术以及研发运营包括业务发展等等各个方面的来说,K8s是我们去构建这些平台的非常好的基础平台,我公司的架构是以云原生应用,这几年也非常火,我的技术用的是.NET Core,这是微软的技术做的容器化应用,研发运营是用Devops的敏捷研发,由这些推动很多的应用,特别是创业公司肯定要做很多应用都是在试错,这个试错要越快越好,而且成本还不能很大,特别是像我这样的一个公司四个人,如果很多东西没有快速的话就出问题了。我们看看K8s的容器,容器部署正以每年75%的速率在增长,超过一半以上的容器环境需要编排工具的辅助,77%的公司的编排工具不会选择。我们从两个角度来看看为什么要K8s,开发人员的心声说,我创建的应用要在我的基础设施,原来虚拟机这些东西太烂了,K8s就是一个命令,开发也是一样,你的测试环境还是运营环境帮我们解决了不可变的,就是你开发测试运营是一样的,不会因为你的运营环境的问题,容器天生帮你解决了这种问题。

做一个东西的话,容器非常容易就去做了,一个想法去实施,包括前面提的无服务器计算也是基于容器,那是更好的一种实验方式。从做IT管理服务器的同学来说,我的服务器需要保证我服务的网页以及程序员开发给我的应用,让我能够我不需要去了解你具体是干什么的,还有服务的稳定有很多的程序合规等等各种问题,这些问题在传统的虚拟机或者物理服务器都是非常头痛的问题,在容器里头搭配K8s容易解决一个问题。这是K8s的编排,这些特性大家一看开发服务化的应用,这些都要去关注;其实这些内容在K8s都有,K8s帮我们去解决这些问题。

它有非常好的架构,它成为一个编排引擎界的标准,它的标准在18个月前,2016年底的时候,那时候在编排领域还有非常多的竞争者, 现在已经确定K8s就是容器编排的一个标准,它有公有云、私有云、混合云、模块化、可插拔等等的特性。谷歌成立了一个基金会,这个基金的第一个开源项目就是K8s,这不是谷歌控制的,是一个基金会控制的,早期包括红帽就在参与,我也对比了一些国内公有云的容器服务,腾讯云的容器服务是非常好用的;现在K8s已经赢了这场战役,未来的方向是容器化。

K8s开发的时候可以助力整个应用,给大家介绍一下腾讯云的容器,它的容器服务产品叫做TKE,是腾讯云基于K8s不依赖与IaaS层的一站式云原生Paas服务平台,有包括集群调度、Helm应用编排、Docker镜像管理、Istio服务治理等等的功能。这里有一个大家要面对的问题,是自建到K8s还是云自建到K8s,我画了一个表,自己构建一个K8s集群要面对的问题,这些问题对于一个创业公司来说是不可能完成的任务,如果能够完成这个任务就可以去搞一个用容器云的创业公司,2015—2018年非常火热的领域,有很多人在搞这些,也有很多基于开源的K8s自己搞容器云的创业。对于我们来说为什么选择TKE?这是一个对比图,如果大家自己没有一个团队去运营这个K8s,云上K8s是一个非常好的选择。除了K8s之外,还有另外一种,我们公司基于K8s技术平台的几点,在TKE上面构建,它有一套的系统,还有微服务的架构,包括dotnet,我还是要吐槽一下腾讯云开发组的服务不太好用,我用了微软云的来搭配腾讯云。我希望后面腾讯云能够把这一块产品做好,我可以把它切回来。基于K8s很多的核心能力可以完成非常多的功能,灰度发布、滚动升级、弹性伸缩、故障自愈这些都不是问题,开发微服务可以用任何云,但是对一个创业公司来说一定是统一的进入站是最好的,所以我选择了.NET Core开发微服务和高效能的微服务,下面会介绍一下.NET Core的内容。

基于K8s搭建技术中台,一是业务,二是公共服务,三是PaaS运行平台,在还有网关,腾讯云也有网关,我用自己开发的网关,这是我参与的开源项目,和K8s非常的配合。

为什么选择.NET Core?我们可能只会占到这个里面的一部分,首先对创业来说,一定是选择一个平台一种语言是最好的,这个是语言平台给我们提供的,包括系统的整个规范;选择我们团队熟悉能掌控的技术来做,也要选择一个更现代一些的,包括设计活跃度要高,.NET Core社区这几年也非常活跃,上面有非常多的.NET Core的开源项目。这是我们的选择的理由,.NET Core是一个跨平台的开发平台,有非常短的名字,www.dot.net,它成立了一个基金会,有非常多的公司参与,生态非常丰富。生态里面有非常多的项目,可以跑在各种平台,这个图是云原生基金会,有两个轴,一是X轴开源项目的开发速度,整个成长速度,Y轴是提交的PR或者问题的,体现它的活跃度,K8s都是非常活跃的,但是有一个开发平台在里面非常活跃。

这个图是微软的.NET Core的开源之路,微软在2001年有一个ECMA335协议,就是可以实现.NET Core跨平台的,微软在20年后才实现这个目标,有这个规范以后,微软在2002年发布了NET1.0 for Windows,Mono项目启动。2008年ASP.NET MVC开源,2014年微软启动.NET Core项目的开发开源,在启动的项目之前成立这个基金会,2017年发布.NET Core2.0,现在最新版本是2.2版本在今年的9月份也就是未来的三个月后会发布.NET Core3.0,性能会提高很多。2020年微软会实现一个大目标,.NET Core5.0。

这是性能的对比,.NET Core是Java的两倍多,可以做所有的产品,桌面、WEB、云端开发、手机、GAMING、IOT和AI,中国有一堆培训公司哪个热门就生产哪个,我认为.NET Core一样可以开发。你可以享用你的任何工具,这就是对一个创业公司基于.NET Core可以看的事,我们能做所有的事情。对于很多大公司来说降低成本也是用这个,可以带来非常大的益处。这是从推特上截的图,.NET Core3.0还没有发布,3.0到2.0的性能优化非常恐怖,性能的吞吐提升42%,内存下降90%。如果大家需要用TKE的一些问题也可以找我,下午分享的内容就是这些。

Q:您好,我想问一下开源以后微软是否会继续进入手机操作系统的市场?

A:这个图表明了你很容易把你的技能在移动端实现,比如说你做IOS安卓的开发,.NET Core这个平台也可以做。你想进腾讯做游戏,IEG的手游,也是可以转,这些都是客户端。

Q:您好,我有两个问题,一是如果是多云的环境下,如何统一管理基于.NET Core以及K8s的平台?二是目前在测试.NET Core的测试环境中遇到的问题,比如说通用宿主如果出现了问题,需要运维去人工干预的话,有没有什么好的工具或者方式来减少人工干预的次数?

A:云都会提供产品,我记得华为有一个,有很多创业公司也在搞这个,多云的管理也是一个多集群的管理,跨越的管理,我有一个朋友在创业就是搞容器,后面我可以介绍给你。第二个问题,在虚拟机上跑或者物理机上跑,会发生这种情况你要解决为什么会发生这种情况,是不是因为你自己服务的不稳定。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档