skywalking

.Net微服务实战之DevOps篇

£可爱£侵袭症+ 提交于 2020-08-14 11:01:18
技术只是基础   该系列的两篇文章《 .Net微服务实战之技术选型篇 》和《 .Net微服务实战之技术架构分层篇 》都是以技术角度出发描述微服务架构的实施。   如果技术选型篇叙述的是 工具 ,那么架构分层篇讲的就是 技巧 ,而本篇要讨论的就是 原则 。一直以来我会给身边向我探讨问题的人灌输一种理念,没有什么技术银弹,因为我们做的是软件工程,提供的是问题相应的解决方案,不同类型问题的解决方案是存在着本质上的差异。   继续提供之前的源码:https://github.com/SkyChenSky/Sikiro PS:该篇文章与.Net无关,其实主要是沿用前面两篇文章的命名,此外我认为DevOps不是简单的工具使用,应从软件工程角度进行出发。 什么才是优秀的架构设计?   曾经有好几个同行问过我同一个问题:什么才是优秀的架构设计?我一直信奉着 两句话 和 一个定律 : 架构服务于业务,技术服务于架构 康威定律(简单理解成组织架构的设计等同于系统架构的设计)    架构设计 其实就是一种 方案 的 取舍 ,在 有限 的 资源 里(包括但不限人力、时间)能让 团队 顺利的实施技术,同时满足 业务规模 的需要,我认为可以称之为优秀的架构设计,简单来说两个字 合适 架构核心要素   核心的主要5大: 性能、可用性、伸缩性、扩展性、安全性 。   而我们所讨论的微服务,选择了扩展性

在混沌中成长个人OKR

与世无争的帅哥 提交于 2020-08-11 18:32:22
前言 国内疫情早就趋于平稳,是时候找回节奏了。在这里更新个人OKR。 强化自组织,持续优化和开放透明的团队文化 6.15前辅助全员完成下半年OKR制定 覆盖全员 月度评审 季度复盘 6.30前改进基础设施确保每个项目的演示和测试环境 团队内任意成员在研项目可在5分钟内启动并演示本周期功能 9月前新人进入后10分钟内完成开发环境的生成 利用虚拟机来保证linux开发环境,物理机工具包 前端,docker,node 后端,docker,java 测试 技术进阶实现3%目标 7月前实现参与的项目镜像化比例高于90% UMP除4G平台服务外的全镜像化 ISS全镜像化 实现JGDQ全镜像化 九月前以UMP为示范系统突破全链路的单点故障和云原生技术 自建服务器集群扩大到10台 基于云原生技术的UMP示范系统实现公有云和私有云自由迁移 基本平台基于rancher或是k8s 数据库 ,mha 应用系统 ,docker 网关接入 gateway 状态服务的处理 stateful 监控系统 ,Prometheus 链路追踪系统,skywalking 日志系统,elk 11月前完成DEP的重构 实现1w并发接入 亿级数据检索2s出结果 全节点可水平扩展 无单点 总结 应对危机与抓住机遇。 来源: oschina 链接: https://my.oschina.net/u/4358286/blog

Service Mesh 中的可观察性实践

旧巷老猫 提交于 2020-08-11 02:32:24
Service Mesh Virtual Meetup 是 ServiceMesher 社区和 CNCF 联合主办的线上系列直播。本期为 Service Mesh Virtual Meetup#1 ,邀请了四位来自不同公司的嘉宾,从不同角度展开了 Service Mesh 的应用实践分享,分享涵盖如何使用 SkyWalking 来观测 Service Mesh,来自陌陌和百度的 Service Mesh 生产实践,Service Mesh 的可观察性和生产实践以及与传统微服务监控的区别。 本文根据5月14日晚,G7 微服务架构师叶志远的主题分享《Service Mesh 高可用在企业级生产中的实践》整理。文末包含本次分享的视频回顾链接以及 PPT 下载地址。 前言 谈到 Service Mesh,人们总是想起微服务和服务治理,从 Dubbo 到 Spring Cloud (2016开始进入国内研发的视野,2017年繁荣)再到 Service Mesh (2018年开始被大家所熟悉),正所谓长江后浪推前浪,作为后浪,Service Mesh 别无选择,而 Spring Cloud 对 Service Mesh 满怀羡慕,微服务架构的出现与繁荣,是互联网时代架构形式的巨大突破。Service Mesh 具有一定的学习成本,实际上在国内的落地案例不多,大多是云商与头部企业

掌门1对1微服务体系Solar|阿里巴巴Sentinel落地实践

泪湿孤枕 提交于 2020-08-10 15:48:27
前言 掌门1对1精耕在线教育领域,近几年业务得到了快速发展,但同时也遭遇了“成长的烦恼”。随着微服务数量不断增加,流量进一步暴增,硬件资源有点不堪重负,那么,如何实现更好的限流熔断降级等流量防护措施,这个课题就摆在了掌门人的面前。由于 Spring Cloud 体系已经演进到第二代,第一代的 Hystrix 限流熔断降级组件已经不大适合现在的业务逻辑和规模,同时它目前被 Spring Cloud 官方置于维护模式,将不再向前发展。 如何选择一个更好的限流熔断降级组件?经过对 Alibaba Sentinel 、 Resilience4j 、 Hystrix 等开源组件做了深入的调研和比较,最终选定 Alibaba Sentinel 做微服务体系 Solar 中的限流熔断降级必选组件。 Sentinel 简介 阿里巴巴中间件部门开发的新一代以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性的分布式系统的流量防卫兵。它承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 它具有非常丰富的开源生态: 它和 Hystrix 相比,有如下差异: 摘自官网 Sentinel Roadmap 关于 Sentinel 如何使用,它的技术实现原理怎样等

掌门1对1微服务体系 Solar | 阿里巴巴 Sentinel 落地实践

放肆的年华 提交于 2020-08-10 06:41:41
前言 掌门1对1精耕在线教育领域,近几年业务得到了快速发展,但同时也遭遇了“成长的烦恼”。随着微服务数量不断增加,流量进一步暴增,硬件资源有点不堪重负,那么,如何实现更好的限流熔断降级等流量防护措施,这个课题就摆在了掌门人的面前。由于 Spring Cloud 体系已经演进到第二代,第一代的 Hystrix 限流熔断降级组件已经不大适合现在的业务逻辑和规模,同时它目前被 Spring Cloud 官方置于维护模式,将不再向前发展。 如何选择一个更好的限流熔断降级组件?经过对 Alibaba Sentinel 、 Resilience4j 、 Hystrix 等开源组件做了深入的调研和比较,最终选定 Alibaba Sentinel 做微服务体系 Solar 中的限流熔断降级必选组件。 Sentinel 简介 阿里巴巴中间件部门开发的新一代以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性的分布式系统的流量防卫兵。它承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 它具有非常丰富的开源生态: 它和 Hystrix 相比,有如下差异: 摘自官网 Sentinel Roadmap 关于 Sentinel 如何使用,它的技术实现原理怎样等

浪迹天涯的骨灰级开源爱好者——对话阿里云 MVP吴晟

余生颓废 提交于 2020-08-10 01:59:55
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 吴晟是我见过最“浪”的程序员,喜欢买买买,热爱公路自驾。格子间拘不住他向往自由的灵魂,七大洲才能承载他追逐梦想的印记。作为SkyWalking创始人的吴晟,远不止诗与远方齐飞的魅力。 以下为吴晟的个人专访,推荐阅读(约4分钟)。 不妨做个自得其乐的俗人 SkyWalking 给我带来最大的收获是成就感和知名度。我想每一个项目的深度参与者都会有不同的收获,不但可以磨练自己的技术,也会对代码和产品更加执着,苛求细节、强调逻辑,业务能力方面也会有较大的提升。首先自己的社交圈扩大并提高,国内外技术圈、媒体、其他领域专家等都有机会接触到。其次,沟通能力甚至英语能力也会有长进,彻底从技术宅,变成一个擅长沟通、演讲(亦或忽悠)的产品经理兼售前兼自动化测试兼写手。在各方面都得到训练后,最终变得愈发自信和优秀。 开源的成就,也给了我实现爱好的经济基础。我是一个生活比较随性的人,喜欢车喜欢表,喜欢公路自驾。2012年至今,护照上已经记录下美国、新加坡、韩国、意大利、法国、瑞士、乌克兰、泰国、印度等等。自驾自然离不开车,买车也是我的一大乐趣,这10年来,从最入门的高尔夫开始,我陆陆续续买了6台车,现在有一台GLE 450 Coupe和X3。车和程序很相似——给定输入,一定会有标准输出

谁说Cat不能做链路跟踪的,给我站出来

こ雲淡風輕ζ 提交于 2020-08-09 10:46:44
背景 链路跟踪,我们有很多可选项。常见的有 zipkin,pinpoint,skywalking,jaeger 等。 基本上都是根据谷歌的《Dapper 大规模分布式系统的跟踪系统》这篇论文发展出来的。 今天讲下 Cat 里的链路跟踪要如何来实现,没用过 Cat 的同学可以查看我的这篇文章 《熬夜之作:一文带你了解 Cat 分布式监控》进行了解。 在 Cat 中可以很方便的看到每个请求的总耗时以及业务操作,数据库操作的耗时情况。对于服务之间的调用也可以通过埋点的方式进行监控。 如下图,可以看出请求内发起了一次 RPC 的调用,callRPC 开头的那条记录。耗时 11ms, 但是这个 RPC 服务内部耗时花在哪里了,在这边不能直接查看,只能去另一个服务中查看,不是很方便。 图片 详细的我画了一张图说明下现在的问题: 从上图可以看出,一个请求经过了多个服务,每个服务中对远程调用或者本地调用都有埋点,这样就能监控到调用的异常和性能指标。 下面一部分是在 Cat 中我们去查看这些指标的场景,Cat 中的数据展示是以项目维度来展示的,所以每个服务都有自己的监控数据。 如果我想要知道刚刚那次请求,在整个链路中哪里最慢,耗时在哪里,我得分别去 4 个服务下面才能看到这些信息,不直观。 实现方式 如下图所示: 从网关到服务,从服务到服务,都需要将 Trace 信息进行传递才可以将整个链路串起来

SkyWalking 将方法加入追踪链路(@Trace)

ぐ巨炮叔叔 提交于 2020-08-08 14:35:12
版本:7.0.0 描述 可能存在这样的场景,当前应用中某些方法没有被追踪。但是我们又想看这一部分方法的调用情况。这个时候就可以使用指定方法的追踪来实现。不过这种方式的缺点是对代码有侵入。 Maven 依赖 <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-trace</artifactId> <version>${skywalking.version}</version> </dependency> 使用方式 在项目中加入Maven依赖之后,就可以使用 @Trace 来追踪相关方法了。 @Trace private List<User> trace(){ return userManager.getUsers(); } 验证 场景1:不加入 @Trace @Override public List<User> getUsers() { List<User> users = this.trace(); return users; } private List<User> trace(){ return userManager.getUsers(); } 追踪情况: 场景2:加入 @Trace @Override public List<User> getUsers() {

在 .NetCore 项目中使用 SkyWalkingAPM 踩坑排坑日记

自闭症网瘾萝莉.ら 提交于 2020-08-08 12:32:21
SkyWalking 概述    SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针,支持Envoy + Istio构建的Service Mesh。   这里抛出两个概念,SkyWalking 服务和语言探针。SkyWalking 本身是用 Java 写的,作为应用性能管理系统,探针是收集应用性能指标数据的,比如在 .net core 项目中引入 SkyAPM.Agent.AspNetCore,做一些配置,就可以将该项目的数据报告给 SkyWalking 服务,在 SkyWalking UI 界面看到可视化的数据。   SkyWalking 展示的数据是需要存储的,默认是 H2,同时也支持使用ElasticSearch、MySQL、TiDB、InfluxDB,这里使用 elasticsearch。 环境说明   本机开发环境:Win10 + VS2019,服务器是 CentOS,ip:172.17.81.23 Docker 方式(踩坑)   安装 Elasticsearch docker run --name elasticsearch --restart always -d -p 9200:9200 -p 9300