摘要:K8S自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构、容器、事件总线等,我们的实践是渐进的。当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8S的必要性)。所以,我将K8S的学习放到了今年的学习列表中,并总结了一些学习笔记和实践总结的文章并汇总在这里,希望对各位园友有帮助! 阅读全文
posted @ 2019-07-31 09:14 EdisonZhou 阅读 (2804) 评论 (17) 编辑
摘要:DNC今年从原来的Team里面被抽出来加入了新的Team,开始使用做Java微服务的开发工作,接触了Spring Boot与Spring Cloud等技术,对微服务这种架构有了一个感性的认识。虽然只做了两个月的开发工作,但是对微服务架构的兴趣却没有结束,又因为自己的.NET技术背景,想要探索一下在.NET平台下的微服务架构的可行性。幸运的是,在.NET Core首届在线峰会上,看到了很多前辈的分享,也增强了自己要摸索和实践.NET Core微服务架构的决心,因此想要写下这个系列的文章。 阅读全文
posted @ 2018-10-19 18:31 EdisonZhou 阅读 (14329) 评论 (28) 编辑
摘要:dotNet最近一直反复地看博客园以前发布的一条.NET全栈开发工程师的招聘启事,觉得这是我看过最有创意也最朴实的一个招聘启事,更为重要的是它更像是一个技术提纲,能够指引我们的学习和提升,现在转载过来与各位园友分享。 阅读全文
posted @ 2015-09-18 23:56 EdisonZhou 阅读 (23763) 评论 (56) 编辑
摘要:DNC这个周末,我从成都飞到了上海参加了首届由社区组织而非官方(比如Microsoft)组织的.NET开发者峰会(.NET Conf)。为此,我特意请了两天的假(周五+周六,对,我们是大小周,这周六要上班),在周五就飞到上海了。现在将我的所见所闻总结成文字,分享给各位博客园的朋友。 阅读全文
posted @ 2019-11-10 22:57 EdisonZhou 阅读 (3419) 评论 (30) 编辑
摘要:Docker本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。上一篇介绍了Google开发的容器监控工具cAdvisor,但是其提供的操作界面较为简陋,且不支持监控多Host,实用性有待提高。因此,本篇会介绍一个流行的生产级监控工具,不,准确说来应该是一个监控方案,它就是Prometheus!Prometheus提供了一整套的包括监控数据搜集、存储、处理、可视化和告警的完整解决方案。 阅读全文
posted @ 2019-11-05 09:09 EdisonZhou 阅读 (332) 评论 (2) 编辑
摘要:Docker本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。上一篇我们了解了docker自带的监控子命令以及开源监控工具Weave Scope,这一篇我们来了解一下Google开发的容器监控工具cAdvisor。cAdvisor能够较好地展示Host和容器两个层次的监控数据,并且能够展示历史变化数据。 阅读全文
posted @ 2019-10-29 09:06 EdisonZhou 阅读 (242) 评论 (0) 编辑
摘要:Docker本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。本篇会介绍几个目前比较常用且流行的容器监控工具,首先我们来看看Docker自带的几个监控子命令:ps、top以及stats,然后是一个功能更强的开源监控工具Weave Scope。后面第二篇我们会学习Prometheus,它是一个更加强大和优秀的开源容器监控方案。 阅读全文
posted @ 2019-10-23 21:45 EdisonZhou 阅读 (223) 评论 (0) 编辑
摘要:阿里云MVP阿里云最有价值专家,简称 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云的技术实践领袖。今天,我们重磅发布阿里云 MVP 第十期全球名单。 MVP说要和阿里云这样的疯子才能做出不一样的行业变革,MVPs与阿里云一起探索前路,用技术改变世界。 阅读全文
posted @ 2019-10-17 09:51 EdisonZhou 阅读 (126) 评论 (0) 编辑
摘要:敏捷回顾实践过敏捷的人都知道,在敏捷中会有很多的会议要开,比如计划会议、站立会议、评审会议以及回顾会议等。如果用几个简短的词语来概括敏捷的精髓,我想一定是:“小步迭代,快速反馈,持续改进”,通过将大块的整体需求拆分成迭代增量,每个迭代的成果对于用户而言都是一个可用品,因此可以快速地得到反馈,从而防止走偏。那么,如何做到持续改进呢?这就涉及到今天谈论的话题:“回顾会议”。 阅读全文
posted @ 2019-10-15 20:54 EdisonZhou 阅读 (323) 评论 (2) 编辑
摘要:卓有成效的管理者《卓有成效的管理者》(The Effective Executive),是美国管理学家彼得·德鲁克编著的一部管理学著作,1966年首次出版。我为何要阅读这本书呢?我的领导给我推荐了这本书(谁还没有一两个这样使劲给你推荐书和课程的领导),想让我读,用现在流行的词语就叫做“赋能”。我内心是拒绝的,不过还是买了一本,在国庆节假期期间听了一下喜马拉雅上的解读然后快速地阅读了一下原书相关重点内容,看完不由发出一声感叹:“谁TM还不是个管理者呢?” 阅读全文
posted @ 2019-10-09 09:05 EdisonZhou 阅读 (132) 评论 (0) 编辑
摘要:Exceptionless在之前我有专门写两篇文章介绍过Exceptionless这款开源日志项目的使用和部署,但是当时是基于4.1.0版本(2017年的release),时隔两年多Exceptionless也推出了5.0.0版本,这个版本最大的变化就是基于ASP.NET Core重写并支持跨平台,也就是说当初我们设想的要是能够基于Docker部署就更好了的愿望已经实现了,在此真心感谢Exceptionless项目的各位贡献者。本文就Exceptionless 5.0.0版本介绍一下快速地部署开发环境和生产环境,相信对有兴趣的朋友会有一点帮助。 阅读全文
posted @ 2019-09-30 15:04 EdisonZhou 阅读 (574) 评论 (25) 编辑
摘要:唐诗50讲学习笔记忧愤,顾名思义是人们的负能量,没有人喜欢负能量,但谁都不可避免地会发出负能量,怎么派遣掉呢?有文化的人借助艺术,没有文化的人则借助酒精。毫无疑问,唐代的诗人们都选择了借助艺术,艺术创造或许是最好的宣泄! 阅读全文
posted @ 2019-09-26 21:46 EdisonZhou 阅读 (141) 评论 (0) 编辑
摘要:平凡的世界趁着中秋节期间,在从成都回家乡以及从家乡回成都的火车途中,一口气将最近一直在看却未看完的长篇小说《平凡的世界》阅读完了,心中很是感慨,即被书中各个人物的命运所感染,又对路遥六年写作删改数次所敬佩。想到我们程序员中有很多还不知道这部茅盾文学奖作品,我想有必要写个读后感给大家介绍介绍,虽然只是我粗略阅读后的草草文字,但也希望能够表达我对此书的敬意! 阅读全文
posted @ 2019-09-16 23:43 EdisonZhou 阅读 (231) 评论 (4) 编辑
摘要:Jenkins本文介绍了我目前团队所在使用的持续集成全流程及一些重要插件的使用,虽然还很不完善,但初步解决了我所在团队在集成和发布上的一些痛点。随着后续对K8S的学习的深入,我会逐步引入K8S进行微服务的容器编排以及持续集成的K8S化改造,希望到时再进行分享。 阅读全文
posted @ 2019-09-10 23:10 EdisonZhou 阅读 (440) 评论 (2) 编辑
摘要:K8S本文探索了在K8S中如何进行配置管理,如果需要密文配置,可以使用Secret,如果是一般应用配置,可以使用ConfigMap。虽然Secret和ConfigMap都定义了好几种定义方式,但是我们一般采用YAML配置创建和Volume方式读取,因为Volume方式可以支持动态更新。最后,通过分享圣杰的一篇文章,介绍了如何在ASP.NET Core下使用Configmap的方式,希望对你有帮助! 阅读全文
posted @ 2019-09-05 20:38 EdisonZhou 阅读 (358) 评论 (1) 编辑
摘要:K8S本文探索了K8S的数据管理方案Volume,其中普通类型的Volume如emptyDir和hostPath虽然使用方便,但是可持久性不强,而外部云存储Volume Provider则提供了更好的持久化存储。PV和PVC的模式,更加适合于我们使用在实际环境中,最后还通过了一个MySQL持久化案例演示了如何应用PV和PVC实现持久化。 阅读全文
posted @ 2019-09-02 10:53 EdisonZhou 阅读 (146) 评论 (0) 编辑
摘要:K8SK8S Dashboard是官方的一个基于Web的用户界面,专门用来管理K8S集群,并可展示集群的状态、执行故障排查即管理K8S的各种资源。本文介绍了K8S Dashboard的安装和使用,基于K8S Dashboard我们可以完成日常管理的大部分工作,可以作为命令行工具kubectl的补充。当然,本文介绍的Dashboard的使用只是一些最典型的场景,还有很多的实用功能需要我们去探索和发现。 阅读全文
posted @ 2019-08-25 20:37 EdisonZhou 阅读 (386) 评论 (0) 编辑
摘要:K8S所谓Health Check,就是健康检查,即防微杜渐。K8S是一个编排引擎可以帮助我们快捷地部署容器集群,如果部署上错误的容器导致服务崩溃,通常情况下我们都会通过一些高可用机制进行故障转移。但是,前提条件是有健康检查。K8S自然帮我们考虑到了这个问题,健康检查是K8S的重要特性之一,默认有健康检查机制,此外还可以主动设置一些自定义的健康检查,比如本文介绍的Liveness探测和Readiness探测。 阅读全文
posted @ 2019-08-22 09:02 EdisonZhou 阅读 (165) 评论 (2) 编辑
摘要:K8S为了服务升级过程中提供可持续的不中断的服务,K8S提供了Rolling Update机制,它可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。滚动更新采用渐进的方式逐步替换旧版本Pod,如果更新不如预期,那么也可以通过回滚操作恢复到更新前的状态。滚动更新的最大好处在于零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。 阅读全文
posted @ 2019-08-19 09:06 EdisonZhou 阅读 (364) 评论 (3) 编辑
摘要:K8S前面几篇文章我们都是使用的ClusterIP供集群内部访问,每个Pod都有一个自己的IP地址,那么问题来了:当控制器使用新的Pod替代发生故障的Pod时又或者增加新的副本Pod时,新Pod会分配到新的IP地址,那么想要对外提供服务时,客户端如何找到并访问这个服务?没关系,别抠脑壳了,本文介绍的Service就是解决方案。本文介绍了K8S中Service的基本概念及常用类型,然后通过一个具体的例子演示了如何创建Service和使用NodePort的方式对外提供访问,最后介绍了如何通过DNS的方式访问Service从而实现服务发现的效果。 阅读全文
posted @ 2019-08-16 09:59 EdisonZhou 阅读 (494) 评论 (4) 编辑
摘要:K8S上一篇《3-1 Deployment》中介绍了Deployment,它可以满足我们大部分时候的应用部署(无状态服务类容器),但是针对一些特殊的场景应用例如守护进程或者离线业务,就可以用到今天介绍的DaemonSet和Job。 阅读全文
posted @ 2019-08-14 08:59 EdisonZhou 阅读 (445) 评论 (0) 编辑
摘要:Docker在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 阅读全文
posted @ 2019-08-11 23:31 EdisonZhou 阅读 (623) 评论 (0) 编辑
摘要:Docker本文探索了Docker的数据卷及挂载数据到容器的两种主要方式Volumes和Bind Mounts,并介绍基本的使用方式和步骤,通过数据卷我们可以实现Docker的数据持久化,在实际应用中比较广泛。本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。 阅读全文
posted @ 2019-08-09 22:34 EdisonZhou 阅读 (1101) 评论 (1) 编辑