使用azure devops pipeline实现.net core程序的ci

上次介绍了Azure Application Insights,实现了.net core程序的监控功能。这次让我们来看看Azure DevOps Pipeline功能。Azure DevOps Pipeline 是Azure DevOps里面的一个组件,对于12个月试用账号同样永久免费。 持续集成CI 持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处主要有两个。 ``` (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 [Read More]

使用azure application insignhts监控asp.net core应用程序

Application Insignhts是微软开发的一套监控程序。他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查询的耗时,完完整整的被记录下来。当对程序进行优化跟排错时非常好使。它原来是visualstudio online的一个服务,现在合并进了Azure,作为Azure Monitor的一个组件。虽然合并进了Azure,但是Application Insignhts还是免费的。 [Read More]

白嫖微软 azure 12个月

Azure是微软提供的一个云服务平台。是全球除了AWS外最大的云服务提供商。Azure是微软除了windows之外另外一个王牌,微软错过了移动端,还好抓住了云服务。这里的Azure是Azure国际不是Azure中国哈。Azure为全球提供服务,最近Azure推出了免费试用12个月的活动(也不算最近,这个活动应该好久了,只是我最近才发现),咱赶紧去白嫖一下。 申请Azure试用 申请Azure请提前准备一部手机,一个Microsoft账号,一张双币信用卡。 申请地址 https://azure.microsoft.com/zh-cn/free/ 填写试用信息 验证手机 填写信用卡信息 只验证信息不会收取费用。第三步协议直接同意。 登录Azure Portal [Read More]

.net Core 造轮子 Agileconfig一个轻量级的配置中心

微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等等。而我为什么还要造一个轮子呢?一来这些都不是.net实现的,我就想试试用.net core实现一个,而且他们也对.net不太友好,也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了,比如apoll,光跑起来就要部署多个节点(admin,portal,meta sevice)还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的,可能是一步步来的,比如先把所有的服务都容器化,并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶,毕竟微服务不是银弹,很多项目单体结构就足够了,有些项目传统的SOA架构也可以了。(唠叨一句,那种毫无流量毫无并发的项目,几人几天就搞完的强上微服务真的好吗?)但是这些项目也可能是分布式的,容器化部署的,那么这些项目我觉得也是需要配置中心的,因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能,做的尽量简单(陋),开发了AgileConfig,继续为.net core的生态尽一份绵薄之力。 Github求star:AgileConfig AgileConfig 这是一个基于.net core开发的轻量级配置中心。 部署简单,最少只需要一个数据节点,支持docker部署 支持多节点分布式部署来保证高可用 配置支持按应用隔离,应用内配置支持分组隔离 使用长连接技术,配置信息实时推送至客户端 支持IConfiguration,IOptions模式读取配置,原程序几乎可以不用改造 配置修改支持版本记录,随时回滚配置 如果所有节点都故障,客户端支持从本地缓存读取配置 架构 AgileConfig的架构比较简单,主要是分3块: 客户端 客户端程序是使用netstandard2.0开发的一个类库,方便.net core程序接入,nuget搜agileconfig.client就可以安装。可以在启动客户端的时候配置多个节点的地址,客户端会随机挑选一个进行连接,连接成功后会维持一个websocket长连接。如果连接的节点发生故障导致连接中断,客户端会继续随机一个节点进行连接,直到连接成功。 节点、管理程序 节点是使用asp.net core开发的一个服务。为了部署简单,直接把管理程序跟节点服务合二为一了。任何一个节点都可以在启动的时候配置环境变量开启管理程序功能。 数据库 使用数据库来存储数据,目前支持Sqlserver, Mysql, Sqlite 三种数据库。因为服务端使用EF Core框架访问数据,原则上只要EF Core支持的数据库,节点就可以很方便的支持它。 [Read More]

Asp.net core blazor 之 pwa

Blazor支持渐进式应用开发也就是PWA。使用PWA模式可以使得web应用有原生应用般的体验。 什么是PWA PWA应用是指那些使用指定技术和标准模式来开发的web应用,这将同时赋予它们web应用和原生应用的特性。 例如,web应用更加易于发现——相比于安装应用,访问一个网站显然更加容易和迅速,并且你可以通过一个链接来分享web应用。 在另一方面,原生应用与操作系统可以更加完美的整合,也因此为用户提供了无缝的用户体验。你可以通过安装应用使得它在离线的状态下也可以运行,并且相较于使用浏览器访问,用户也更喜欢通过点击主页上的图标来访问它们喜爱的应用。 PWA赋予了我们创建同时拥有以上两种优势的应用的能力。 这并不是一个新概念——这样的想法在过去已经在web平台上通过许多方法出现了多次。渐进式增强和响应式设计已经可以让我们构建对移动端友好的网站。在多年以前的Firefox OS的生态系统中离线运行和安装web应用已经成为了可能。 PWAs, 不但如此,更是提供了所有的甚至是更多的特性,来让web更加优秀。 引用自MDN [Read More]