博客园创建于2004年1月,博客园诞生于江苏扬州这样一个IT非常落后的小城市,城市虽小,但是这里却有很多求知创新的人,博客园诞生的理由是如此简单。

这样一个不起眼的地方,却吸引了很多IT技术人员,把这里当作自己的网上家园,每天在这里分享着精彩的原创内容,也许他们看重的不是华丽的外表、诱人的虚名,而是纯净、专注、对技术人员的理解。

博客园来到了上海,有了自己的团队,注册用户4万多,每天有15万以上的用户访问,除了博客,有了互动交流的小组,有了你问我答的博问,有了收藏精彩内容的网摘,有了搜索站内内容的找找看,有了随时记录思想火花的闪存,有了随时了解业内动态的新闻频道,有了知识库,有了期刊,有了……

博客园的用户中成长出了一批又一批专家,在IT行业中大展身手。

不知道大家有没有收到博客园整改的消息...目前来看,至少一周的时间,博客园都处于关站状态。

对于广大程序猿来说,写文章既可以理清思路,又可以通过分享技术结交到朋友。

整改归整改,不知道细心的朋友有没有发现博客园页面多了几行字:

也就是这个勾引了笔者的好奇心,也正是今天这片文章的的着重内容。

[博客园官方资料]K8s 开船记-全站登船:Powered by .NET Core on Kubernetes

今天 18:30 左右,我们迈出了 kubernetes 航行的关键一步——全站登船,完成了全站应用部署从 docker swarm 集群向 k8s 集群的切换,以前所未有的决心与信心重新开起这艘巨轮,而这次航行能否成功就看明天访问高峰时狂风巨浪下的表现。

部署在 k8s 上的应用会在页脚显示下面的信息,如果航行失败,"Kubernetes" 会变成 "Linux" 。

Powered by .NET Core on Kubernetes

Kubernetes 集群部署情况如下。

用了3台2核4G阿里云服务器作为 master 搭建了高可用集群,worker 节点目前用了12台4核8G阿里云服务器,明天根据负载情况看是否需要加服务器。

Kuberneres 网络插件使用的是 calico 。

DNS 服务器使用的是 coredns ,由于之前遭遇过因为 dns  解析问题造成翻船,这次部署了 nodelocaldns 在每个节点进行本机 dns 缓存(相关博文)。

Ingress Controller 使用的是 kubernetes 社区维护的 kubernetes/ingress-nginx,还有一个 nginx 公司与社区共同维护的 nginxinc/kubernetes-ingress,我们推荐使用前者(相关博文)。

博客站点的部署采用了 HPA(Horizontal Pod Autoscaler) ,基于 CPU 与 QPS 监控指标进行自动伸缩,监控指标数据来自 prometheus (相关博文)。

部署工具用的是 helm ,helm 强大的模板引擎让我们可以用一个模板搞定 90% 以上应用的部署(相关博文)。

目前一共部署了 115 个应用 pod ,56 个应用 service 。

【更新】

11:06~11:10 左右,博客后台出现 502 ,原因是运行中的博客后台 pod 健康检查失败,重新启动的 pod 也健康检查失败,博客后台暂时切换到 docker swarm 。

.NET Core学习一--Powered by .NET Core on Kubernetes

docs.microsoft.com .NET Standard

asp.net core .net core区别,后者是技术~这和.net 之间 asp.net关系是一回事。参考:什么是Asp.net Core?和 .net core有什么区别?

.NET Standard是标准,.Net Core是这个标准的一种实现(此外,还.Net Framework、Mono等实现方式)

.NET Standard 是一个API的标准,基于这个统一的标准,各种类库的开发人员就可以仅编写一次代码,而使得编译后的二进制类库可以在支持这个标准的所有平台上面运行。

而.NET Core是微软针对控制台程序和服务器应用程序(尤其是http://ASP.NET)所推出的跨平台的.NET运行时。目前.NET Core 1.0实现了.NET Standard 1.1~1.6,.NET Core 2.0实现了.NET Standard 1.1~2.0。也就是说,在基于对应版本的.NET Standard平台上开发的类库是可以在前者版本的.NET Core上使用的。当然,.NET Framework、Mono、Xamarin等都实现了不同版本的.NET

参考

  • 从零开始在 Windows 上部署 .NET Core 到 Kubernetes
  •   代码已上传至此
  •   基于Kubernetes 构建.NET Core 的技术体系
  •   基于Kubernetes 构建.NET Core技术中台

.NET发展面临的挑战

这是一个多选题,认为.NET向.NET Core升级的挑战只有25.3%, 然而有89.9% 的受访者表示,国内缺乏大的互联网厂商采用.NET Core 是最大的挑战,从2010年以来的移动互联网浪潮由于微软的战略失误,.NET技术从.NET 4以来缺乏创新,国内大的互联网厂商京东、携程等相继转Java 所带来的影响很大。但是很多人忽略了一个重要的方面是从2015年开始的云计算浪潮,云原生应用开发的崛起。微软从2014年开始的重大转型,成功把握了云计算浪潮,特别是云原生应用开发上微软有着清晰的领导者,从Azure的崛起以及云原生的参与度上,特别是从2016年正式发布的.NET Core 在云原生方面发生了蜕变,从后面的一项Kubernetes和Docker的采用上可以说明大家对.NET Core的采用上没有足够的认识,再说互联网厂商采用.NET Core方面也要换个角度来看,从2018年开发国内BAT等互联网厂商大量开始转型企业服务市场,我们来看下在这个新的方向上的互联网厂商采用.NET Core情况,国内新能源领域头部企业特来电采用.NET Core, 国内房地产信息化系统服务商头部企业明源云采用.NET Core, 在线教育头部企业校宝在线采用.NET Core.

对我们来说,传统的互联网厂商没有采用.NET Core不是最重要的,特别BAT都在搞公有云等面向企业服务,Azure、AWS、GCP对.NET Core的支持一等公民,需要阿里云、腾讯云、华为云等国内云厂商更好的对.NET Core有更大的支持。

.NET/.NET Core 版本

58% 的受访者表示,他们在主要应用程序中选择 .NET Core 作为编程平台,大部分计划升级到.NET Core 3.1。而.NET 4.6之前的版本 以 21% 的受访者位居第二。11.1% 的受访者表示使用 .NET 4.6,也没有升级到.NET Core 版本计划。这里要给大家普及一下.NET 5, 很多对.NET 5有误解是大融合,认为.NET 4版本在.NET 5出来后可以轻松的升级。这是一个巨大的认识错误,.NET 5是.NET Core 3.1 之后的一个大版本,他本质上是.NET 5, 从.NET Core 3.1开始,.NET Core都支持.NET FX的工作负载了(最典型的就是桌面Winform/WPF/UWP支持), .NET 4应用需要升级到.NET 5必须向.NET Core的迁移,所以如果你有应用迁移计划,现在就可以做规划了,而不是等上一年为自己的无知买单。

对我们来说,看到 .NET Core 3.1成为占主导地位的编程平台,并不是一件令人惊讶的事情。然而,令人惊讶的是,还有 32.4% 的受访者使用 .NETFX 4。我们认为,这与大家缺乏对.NET发展的正确认识和更新 .NET应用的成本有关。 对于仍在使用 .NET 4.6 或更早版本的受访者,我们预计,随着越来越多的应用程序继续迁移到.NET Core 3.1 或今年即将到来的.NET 5版本,这一数字将会减少。

微服务框架选择

这个问题要求受访者选择在他们的主要项目中使用的应用程序框架和技术。由于大多数应用程序使用各种不同的框架技术,因此这个问题允许多个回答。在调查的第9和第10问题里,很多人表达希望有一个.NET 上的Spring Cloud,然而只有5.7%的人选择了Steeltoe/Spring Cloud,这也许是大家对Steeltoe这个开源项目缺乏了解,Steeltoe是Spring Cloud的厂商Pivot 开源的Spring cloud的.NET解决方案,同时它也是.NET基金会下的开源项目,在github开源,star数却只有215,这正说明了大家对它缺乏认识,这几年开源社区的蓬勃发展,.NET社区有个开发框架ABP也拥有了大量的用户,特别是在中国的用户特别多,ABP vNext正是ABP框架针对单体模块化/微服务场景发展的框架,搭配kuberentes 非常适合微服务的开发,目前已经正式发布2.1.1版本,用7.6%的受访者选择了ABP vNext/Kubernetes, 37.8% 的受访者选择了.NET Core/Kubernetes, 采用kuberentes的受访者达到了45.4%,还有25.9%的受访者选择了自研框架,这部分自研框架的用户是很希望有SpringCloud,而采取的自研。

对我们来说,.NET Core在云原生时代拥有独特优势,镜像体积小、占用内存少,启动速度快,支持水平扩展,Kubernetes为.NET Core的微服务开发方面提供特别的机会,特别2020年Service Mesh的成熟,.NET Core的采用方面有新的发展。

.NET开发工具

在这个问题中,我们要求开发者列出他们专业使用的集成开发环境(Integrated Development Environment,IDE)。就在几年前,开发者还会质疑在 IDE 上花钱是否值得。由于大多数人使用几个不同的IDE,因此这个问题允许多个回答。

但是,有 96.2% 的受访者表示他们使用Visual Studio,很明显,这个付费的 IDE 非常值得一试。第二个最常用的 IDE 是 Visual Studio Code,占 31.5%,而 JetBrains Rider 占 5.2%。最后,有 4.8% 的受访者表示,使用Visual Studio for Mac。这说明大部分人都是使用高生产率的Visual Studio 为主,其他的IDE工具为辅。

数据库访问技术ORM

在这个问题中,我们要求受访者选择他们当前使用的数据库访问技术ORM。最受欢迎的是 EntityFramework Core,占 44.7%,紧随其后的是Dapper,占 42.1%。接下来是 EntityFramework 6,有 32% 的受访者报告了使用情况。NHibernetes在受访者中只有3.1%,还不如这两年国内的新星FreeSql,在受访者中占 4%。国内还有另外一个类似于Java国内最流行的MyBatis的SmartSql ,在受访者中有2.1%。还有20.8%的受访者使用了其他的ORM或者是直接使用ADO.NET.

开发的软件类型

在这个问题中,我们要求开发者列出他们开发的软件类型,通常开发者会开发多种类型的应用程序,这个选项也是多选项,企业级应用和互联网应用位居前列,特别是企业级应用占比达到了66.2%,这和我们一直认为.NET 在企业级应用市场有很大的应用,随着互联网技术的发展,企业级应用市场也要互联网化,这也是.NET 开发的机会和挑战。 桌面客户端应用的受访占比是24.2%,移动应用客户端开发占比15.5%, 这里有一项比较意外的是游戏占比只有2.4%, 然而很多人的印象中游戏是.NET 开发非常优势的领域。

容器化

在这两个问题中,我们询问了开发者他们使用哪些容器化工具。到目前为止,使用 Docker的比率只有38.7% 。而61.3%的受访者都没有使用Docker,已经采用Kubernetes 的受访者只有11.7%,目前没有使用,正计划使用Kubernetes的受访者达到了37.6%,这表明 Kubernetes 在2020年会有持续的增长。没有计划使用Kubernetes的受访者达到了47.7%,这也是一个很意外的结果,我们认为很多人对Kubernetes 有认识误区,容器化不在于你的团队的规模大小,而且对于小团队来说,Kubernetes是加速你应用现代化的武器,每一个公有云厂商都提供了近乎免费的Kubernetes服务,使用Kubernetes的门槛非常低,这也是采用.NET Core的优势所在,很多人错误的认为需要自己搭建Kubernetes集群,对于搭建Kubernetes集群这件事情是很复杂的,需要有专门的Kubernetes运营团队在支撑,这对于大型企业来说是没问题的,也值得投资,博客园在kubernetes 方面的探索的很多经验也值得你借鉴。利用Kuberentes,我们不会被任何云厂商锁定。随着 Kubernetes 的发展,它在未来几年将在市场上占主导地位也就不足为奇了。

小结

云原生对开发者在应用程序开发过程中使用的技术带来了深远的影响。而且,随着公司继续转型并创建基于微服务的应用程序,我们预计技术选择将趋向于促进架构和在其中工作的开发人员的需求。

【参考资料】

  1. .NET Standard | Microsoft Docs  https://docs.microsoft.com/zh-cn/dotnet/standard/net-standard
  2. 博客园整改了,我们还能去哪里写博客 http://www.inpai.com.cn/news/redian/2021/0318/032021_86283.html
  3. Stack Overflow - Where Developers Learn, Share, & Build Careers https://stackoverflow.com/

关于博客园官方博客技术改造升级的启发相关推荐

  1. 官方博客明确了 .NET Core RC2/RTM 时间表

    .NET Core 经过了将近2年的开发,去年12月份发布的RC1版本,明确来说那只是一个beta版本,自从RC1发布以来,看到github里的RC2分支,整个工具链都发生了很大的变化,大家都在焦急的 ...

  2. 爬取CSDN官方博客粉丝中码龄20年以上的用户数量

    文章目录 序 正文开始 IP代理 请求头 cookie 接口分析 爬虫数据保存 重点,爬取数据方法 多线程爬取 完整代码 爬取结果 序 又是一周周末了,闲暇无事,很有精神, 准备看一下csdn社区中码 ...

  3. TimesTen官方博客-中文版和英文版

    TimesTen官方博客英文版的地址为: TimesTen Talk TimesTen官方博客中文版是Oracle官方博客 - 数据库产品技术支持的一个分支地址为: https://blogs.ora ...

  4. 谷歌官方博客发表的 手机的未来趋势

    北京时间9月21日消息,谷歌官方博客最近发表的一篇文章分析了手机的未来趋势,以下是博客全文. 自从十年前谷歌创立以来,互联网已经给全世界人们的生活带来了巨大的影响.它已经改变了政治.娱乐.文化.商业. ...

  5. 谷歌中国四官方博客换地址 首页曾玩变脸

    4月6日,有DoNews网友反映,日前谷歌中国的四个官方博客已全部更换域名. 据了解,谷歌中国的四个官方博客:谷歌黑板报.Google中文网站站长博客.AdSense 中文博客和谷歌中国开发者博客此前 ...

  6. 这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的理解。

    XEIM这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的 ...

  7. 博文视点官方博客已经开通!

    博文视点官方博客已经开通: http://blog.csdn.net/bvbook 查看博文视点新书讯.图书勘误.资源下载.活动公告

  8. 博文视点官方博客http://blog.csdn.net/bvbook

    博文视点官方博客http://blog.csdn.net/bvbook 本文转自 http://blog.csdn.net/bvbook/

  9. 淘宝网UED官方博客

    http://ued.taobao.com/blog - 淘宝网UED官方博客

最新文章

  1. ObservableCollection 类
  2. uva11990 动态逆序对
  3. opencv轮廓及点在轮廓内判断
  4. 如何理解pytorch 卷积里group 这个参数
  5. 玩转 SpringBoot 2 快速整合拦截器
  6. leaflet 的 marker 弹框 iframe 嵌套代码
  7. Windows Azure HandBook (8) Azure性能测试(1)
  8. Mysql之各种各样的函数啦
  9. 批处理FOR 中的Delims和Tokens总结
  10. 软件测试员工自述,软件测试人员的述职报告.docx
  11. matlab 声明gpu,使用MATLAB轻松享受GPU的强大功能
  12. xctf-supersqli
  13. java计算机毕业设计楼宇管理系统源码+数据库+lw文档+系统
  14. 详解 Python 中的 filter() 函数
  15. ERROR Deployer not found: git
  16. 超微服务器性能,读取性能强劲 超微2U机架F228服务器评测
  17. poi 操作Excel 删除行内容和直接删除行(poi3.17测试可用)
  18. 【查找算法】折半查找法
  19. 亥姆霍兹线圈、Helmholtz线圈、磁场线圈
  20. 用结构体数组存储学生信息,输入学生学号,查询相应的成绩

热门文章

  1. hiho 1082 : 然而沼跃鱼早就看穿了一切
  2. 协处理器CP15介绍—MCR/MRC指令
  3. LTE中REG和CCE概念
  4. html数字数据走势图,利用HTML5实现数据曲线走势图表代码
  5. ABP (.Net Core) 使用MySQL数据库
  6. 运动员和教练案例分析
  7. 安装nodejs教程
  8. idea中摸鱼插件_IDEA 看书摸鱼插件,时隔一年,再次更新
  9. SAP中采购订单收货和发票收据选项的控制逻辑分析
  10. 博士申请 | 香港大学倪卓娴教授招收机器学习和智慧物联网方向全奖博士生