程序员,阿里云MVP,CSM
能力说明:
熟练掌握Docker各类高级特性,包括容器数据卷、DockerFile构建等;熟练使用Docker封装MySQL、Redis、Tomcat、Apache等镜像,并可在公有云或私有云部署并保持稳定运行。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明上一篇我们自己通过编写Dockerfile来编译部署一个ASP.NET MVC应用程序到阿里云ECS中的Windows Container,这一篇我们来试着将.NET 4.x的镜像推送到Harbor私有镜像仓库 和 阿里云容器镜像仓库。
上一篇我们基于阿里云ECS(Windwos Server 2019 with Container镜像版本)初步跑了一个ASP.NET WebForm应用程序。本篇我们来自己编译部署一个ASP.NET MVC应用程序到阿里云ECS中的Windows Container。
我们都知道.NET Core应用可以跑在Docker上,那.NET Framework 4.x应用呢?借助阿里云ECS主机(Windows Server 2019 with Container版本),一切变得So Easy!
分布式应用运行时Dapr目前已经发布了1.1.0版本,阿里云也在积极地为Dapr贡献代码和落地实践。作为一名开发者,自然也想玩一玩,看看Dapr带来的新“视”界到底是怎么样的。
本文原文来自Dapr Blog,作者阿里云高级技术专家敖小剑。本文是我根据自己的理解翻译了其中的一部分并加了一些参考文献中的内容,所以并非完整翻译。
历经多年发展已成熟并成为一种潮流,企业数字化转型的组成部分。因此我最近订阅学习了《深入浅出云计算》专栏,一口气学完之后,做了一些总结笔记形成此文,特分享与你,希望对你有所帮助!本文为上半部分,主要总结了IaaS篇的核心要点。
本文介绍了Nginx Ingress提供的三种灰度发布(canary)的方式,然后介绍了如何使用Nginx Ingress并进行配置实现ASP.NET Core WebAPI应用服务的灰度发布实践,最后对比三种方式的优先级及限制,希望对你有所帮助。
本文从Docker容器要解决的几个问题入手,介绍了容器与集装箱的关联、容器的核心实现技术、容器的架构,最后简单介绍了一个Docker Compose这个多容器应用工具,相信能够从背景知识上帮你了解容器到底要帮助我们解决的问题。
本文介绍了如何在K8s集群中接入基于Ocelot的API网关服务来替代Ingress作为K8s集群API服务的统一入口,虽然示例很简单,但是基本的介绍目的已经达到了。在此,也特别感谢Ocelot的贡献者们,以及张队贡献的这个集成K8s的 Provider。
本文介绍了Ingress的基本概念与Nginx Ingress的安装与配置,然后通过部署两个ASP.NET Core WebAPI服务到K8s集群进行Ingress的快速验证。
在前几天曾经分享了一个直播的介绍,分享人孙玄(人称玄姐),他是前58集团技术委员会主席 & 前转转公司技术委员会主席 & 首席架构师。我自己也在五一节期间观看了这场直播的录播视频,做了一些总结笔记,特此分享与你,希望对你有帮助。
在产业互联网火爆的当下,在BATJ等互联网大厂大肆推广中台建设成果的当下,各个行业的企业似乎都想做数字化转型,建设业务中台,但是中台到底是啥,需要我们提前了解和学习,本文就是我的学习总结,希望能对你初步的理解中台这个概念有所帮助。当然,不是所有大厂的经验都可以照搬,需要我们在学习后的具体实践中摸出自己的道路。
本篇介绍了事务和并发,重点解释了事务是个什么鬼,以及在SQL Server中如何管理事务。演示了在SQL Server中如何把一个事务访问的数据和其他事务的不一致性使用进行隔离,以及如何处理死锁的情况。
本文简单介绍了Kubernetes的4层网络模型、CNI 容器网络接口规范 以及 Network Policy,并通过改造K8S集群的网络配置从Flannel到Canal来验证Network Policy的有效性。
本文介绍了K8S的包管理器Helm的基本概念与安装和使用,Helm能够帮助我们像使用apt或yum那样管理安装、部署、升级和删除容器化应用,最后演示了如何为我们的ASP.NET Core API应用开发自己的chart,并在团队中共享chart。
监控和日志历来都是系统稳定运行和问题排查的关键,在微服务架构中,数量众多的容器以及快速变化的特性使得一套集中式的日志管理系统变成了生产环境中一个不可获取的部分。此次话题我们会集中在日志管理方面,本篇会介绍Docker自带的logs子命令以及其Logging driver,然后介绍一个流行的开源日志管理方案ELK/EFK。
监控和日志历来都是系统稳定运行和问题排查的关键,在微服务架构中,数量众多的容器以及快速变化的特性使得一套集中式的日志管理系统变成了生产环境中一个不可获取的部分。此次话题我们会集中在日志管理方面,本篇会介绍Docker自带的logs子命令以及其Logging driver。
这个周末,我从成都飞到了上海参加了首届由社区组织而非官方(比如 Microsoft)组织的.NET 开发者峰会(.NET Conf)。为此,我特意请了两天的假(周五+周六,对,我们是大小周,这周六要上班),在周五就飞到上海了。现在将我的所见所闻总结成文字,分享给各位开发者朋友。
上一篇介绍了Google开发的容器监控工具cAdvisor,但是其提供的操作界面较为简陋,且不支持监控多Host,实用性有待提高。因此,本篇会介绍一个流行的生产级监控工具,不,准确说来应该是一个监控方案,它就是Prometheus!Prometheus提供了一整套的包括监控数据搜集、存储、处理、可视化和告警的完整解决方案。
上一篇介绍了Google开发的容器监控工具cAdvisor,但是其提供的操作界面较为简陋,且不支持监控多Host,实用性有待提高。因此,本篇会介绍一个流行的生产级监控工具,不,准确说来应该是一个监控方案,它就是Prometheus!Prometheus提供了一整套的包括监控数据搜集、存储、处理、可视化和告警的完整解决方案。
本篇会介绍几个目前比较常用且流行的容器监控工具,首先我们来看看Docker自带的几个监控子命令:ps、top以及stats,然后是一个功能更强的开源监控工具Weave Scope,最后我们来了解一下Google开发的容器监控工具cAdvisor。下一篇我们会结合本篇学习的内容介绍生产级监控方案:Prometheus + cAdvisor + Grafana。
本文简单介绍了Google开发的容器监控工具cAdvisor的基本安装与使用,总结下来cAdvisor可以帮助展示Host和容器两方面的监控数据,还可以动态展示历史数据的变化。cAdvisor有一个亮点之处就在于它可以将监控数据导出给第三方工具,而这个第三方工具就是我们下一篇将要学习的Prometheus,Prometheus会对这些监控数据做进一步加工处理。
敏捷回顾实践过敏捷的人都知道,在敏捷中会有很多的会议要开,比如计划会议、站立会议、评审会议以及回顾会议等。如果用几个简短的词语来概括敏捷的精髓,我想一定是:“小步迭代,快速反馈,持续改进”。那么,如何做到持续改进呢?这就涉及到今天谈论的话题:“回顾会议”。
本篇会介绍几个目前比较常用且流行的容器监控工具,首先我们来看看Docker自带的几个监控子命令:ps、top以及stats,然后是一个功能更强的开源监控工具Weave Scope。
Exceptionless 是一个开源的实时的好用的日志收集框架,它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置。但是之前的版本将其Web和API绑定在了Windows平台通过IIS运行,对于已经步入云原生时代的我们显得有点格格不入。
本文介绍了我目前团队所在使用的持续集成全流程及一些重要插件的使用,虽然还很不完善,但初步解决了我所在团队在集成和发布上的一些痛点。随着后续对K8S的学习的深入,我会逐步引入阿里云K8S服务(ACK)进行微服务的容器编排以及持续集成的K8S化改造,希望到时再进行分享。
本文探索了在K8S中如何进行配置管理,如果需要密文配置,可以使用Secret,如果是一般应用配置,可以使用ConfigMap。虽然Secret和ConfigMap都定义了好几种定义方式,但是我们一般采用YAML配置创建和Volume方式读取,因为Volume方式可以支持动态更新。
本文探索了K8S的数据管理方案Volume,其中普通类型的Volume如emptyDir和hostPath虽然使用方便,但是可持久性不强,而外部云存储Volume Provider则提供了更好的持久化存储。
本文介绍了K8S Dashboard的安装和使用,基于K8S Dashboard我们可以完成日常管理的大部分工作,可以作为命令行工具kubectl的补充。当然,本文介绍的Dashboard的使用只是一些最典型的场景,还有很多的实用功能需要我们去探索和发现。
本文探索了K8S中的默认健康检查机制以及Liveness和Readiness两种各有特点的探测机制,并通过一些小例子进行了说明。不过由于笔者也是初学,对于这一块没有过多实践经验,因此也是讲的比较粗浅,也希望以后能够有更多的实际经验分享与各位。
本文介绍了K8S中Service的基本概念及常用类型,然后通过一个具体的例子演示了如何创建Service和使用NodePort的方式对外提供访问,最后介绍了如何通过DNS的方式访问Service从而实现服务发现的效果。当然,笔者也是初学,很多东西没有介绍到,也请大家多多参考其他资料更加深入了解。
滚动更新的最大好处在于零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性。本文介绍了滚动更新的概念,然后通过更新和回滚一个ASP.NET Core应用演示了如何在K8S中进行滚动更新。
Deployment可以满足我们大部分时候的应用部署(无状态服务类容器),但是针对一些特殊的场景应用,Deployment就无法胜任了。比如日志收集、系统监控等场景,就可以使用今天介绍的DaemonSet。又比如批处理定时任务,则可以使用今天介绍的Job/CronJob。
本文介绍了Dockerfile的背景和组成,以及最常用的一些Dockerfile命令,最后介绍了一个综合使用了Dockefile指令的一个案例来说明Dockerfile的应用。
本文探索了Docker的数据卷及挂载数据到容器的两种主要方式Volumes和Bind Mounts,并介绍基本的使用方式和步骤,通过数据卷我们可以实现Docker的数据持久化,在实际应用中比较广泛。
本文介绍了K8S中创建资源的两种方式及对比,然后重点介绍了一下Deployment这个Controller,把玩了Deployment类型的应用运行、伸缩、故障转移以及使用label来控制Pod的位置。
本文通过部署一个ASP.NET Core WebAPI到K8S为例,介绍了K8S部署的详细过程步骤,最后部署Dashboard从而能够进行可视化的管理。后续会探索各种应用的运行方式和更多的内容,当然笔者也是初学,有很多不足之处,请多包涵。
本文快速地介绍了一下Kubernetes的核心构成组件及其作用,然后通过在三台Linux主机上通过Kubeadm搭建了一个Master节点两个Node节点的集群,最后通过部署一个Deployment来快速地验证了一下集群是否可用。
本文探索了Docker的资源限制相关知识,在日常开发中应该给容器设置一个合理的资源限制值,以防出现OOME的情况导致Linux杀掉错误的进程。
本文总结了流行的几个镜像仓库的搭建步骤,并给出了基本使用示例。个人感觉:对于个人开发者或开源社区而言,docker hub主要提供的是类似于github的共享公共仓库(当然docker hub也有提供私有仓库)。
本文主要通过官网的交互实验教程快速的体验了一把K8S的基本功能使用,全程通过kubectl来调用的K8S API,相信会对完全没接触K8S的童鞋有帮助。
本篇简单地记录一下如何在Windows环境下基于Docker for Windows来搭建一个单节点的K8S环境,下一篇会将ASP.NET Core以Docker方式加入到K8S集群中托管,操作K8S来管理Docker实例来有一个感性认识。
本文简单地介绍了一下Spring Cloud Seluth与Zipkin,然后通过Java快速地构建了一个Zipkin Server,通过在ASP.NET Core中集成Zipkin并做了一个基本的微服务调用追踪Demo。
本文极简地介绍了一下Spring Cloud Config,并快速构建了一个用于演示的Config Server,然后通过Steeltoe OSS提供的Config客户端将ASP.NET Core与Spring Cloud Config进行集成,最后进行了验证能够正常地从Config Server中获取最新的配置内容。
本文极简地介绍了一下Spring Cloud Zuul,并使用Java快速地编写了一个API网关Zuul Server,然后基于上一篇的三个ASP.NET Core演示了一下API网关的效果。当然,对于Zuul还有很多内容,这里就不再一一演示,有兴趣的童鞋或者对这种混搭式的架构感兴趣的童鞋可以去了解一下。
本文简单地介绍了一下Steeltoe与Spring Cloud,然后演示了一下基于Steeltoe使得ASP.NET Core应用程序与Spring Cloud Eureka进行集成以实现服务注册与发现的效果。
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、CAP简介 下面的文字来自CAP的Wiki文档:https://github.com/dotnetcore/CAP/wiki CAP 是一个在分布式系统中(SOA,MicroService)实现事件总线及最终一致性(分布式事务)的一个开源的 C# 库,她具有轻量级,高性能,易使用等特点。
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、案例结构与说明 在上一篇中,我们了解了MassTransit这个开源组件的基本用法,这一篇我们结合一个小案例来了解在ASP.NET Core中如何借助MassTransit+Quartz.Net来实现数据的最终一致性。
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、预备知识:数据一致性 关于数据一致性的文章,园子里已经有很多了,如果你还不了解,那么可以通过以下的几篇文章去快速地了解了解,有个感性认识即可。
最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署,因此这里总结一下。 一、关于持续集成与Jenkins Pipeline 1.1 持续集成相关概念 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI) 。