hguisu
这个作者很懒,什么都没留下…
展开
-
架构师技能5:如何做code review 代码简洁之道
前言CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。如何做好code review,可以参考谷歌code review 指南。原文地址:https://google.github.io/eng-practices/review/reviewecode review从大的方面来说:1、业务层面:业务逻辑是否正确等相关内容。例如 1)数据库字段的设计是否合理。 2)业务流程是否按............原创 2022-01-15 22:26:38 · 2513 阅读 · 0 评论 -
架构设计(14)-- 分布式链路跟踪:我们自研log2组件
自研的原因:1、定制化:和我们api网关 globalId关联。2、日志内容:日志内容一天大概是1T, 如果使用开源,日志量暴增10倍。3、选择哪些参数过滤,比如二进制图片参数过滤。原创 2020-07-02 18:37:37 · 2219 阅读 · 0 评论 -
架构设计(13)--分布式链路跟踪:skywalking原理和实践
本文总结网上的学习笔记目前分布式链路追踪系统基本都是根据谷歌的《Dapper大规模分布式系统的跟踪系统》这篇论文发展而来,主流的有zipkin,pinpoint,skywalking,cat,jaeger等。当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合。skywalking中文文档skywalking完全由国人主导开发,在国内社区相当活跃。skywalking已成为 Ap.原创 2020-07-02 16:37:51 · 2540 阅读 · 0 评论 -
架构设计(12) --分布式链路跟踪:Zipkin实践
本文总结网上文章做修改:一、Zipkin是什么Zipkin分布式跟踪系统;它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求占总跟踪时间的百分比。二、为什么使用Zipkin随着业务越来越.原创 2020-07-02 16:18:01 · 1624 阅读 · 0 评论 -
架构设计(11)-- 分布式链路跟踪
自研的原因:1、定制化:和我们api网关 globalId关联。2、日志内容:日志内容一天大概是1T, 如果使用开源,日志量暴增10倍。3、选择哪些参数过滤,比如二进制图片参数过滤。原创 2020-07-02 16:16:54 · 1516 阅读 · 0 评论 -
架构设计(10) --服务治理
服务治理离基于架构运维的devops平台,目前还没有完全迁移到k8s平台。一、项目和服务管理:1、项目命名规范2、项目记录:列出服务负责人及使用文档3、项目对应服务等级协定4、项目对应服务配置5、项目对应服务的层次6、服务管理:服务名称、端口号、启动命令、服务类型、日志说明服务划分层次:产品接入层: 直接对外提供服务,例如网站、API接口等。接入层不包含复杂的业务逻辑,只做呈现和转换。对应的项目类 型:openapi接口,platformweb,wechat,..原创 2020-06-05 12:39:56 · 2148 阅读 · 0 评论 -
架构设计(9)—高性能设计
一、性能指标1、响应时间指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标,直观地反映了系统的“快慢"。长远系统操作需要的响应时间。网络连接响应时间:1、本机的话,通信内容直接走内存。2、局域网走网卡,然后通过交换机,指定到相应主机。tcp建立3次握手,一般耗0.6毫秒左右。3、外网通过网卡->路由器->互联网。在外网,不同地域,网络耗时也不一样(经过的节点)。比如在深圳和北京访问北京阿里云:原创 2020-06-04 18:38:39 · 1597 阅读 · 0 评论 -
架构设计(8)—高可用架构设计(业务与系统稳定性)
高可用架构设计总结:前言:海恩法则和墨菲定律海恩法则· 事故的发生是量的积累的结果。· 再好的技术、再完美的规章 , 在实际操作层面也无法取代人自身的素质和责任心 。墨菲定律· 任何事情都没有表面看起来那么简单 。· 所有事情的发展都会比你预计的时间长 。· 会出错的事总会出错。· 如果你担心某种情况发生,那么它更有可能发生 。警示我们,在互联网公司里,对生...原创 2019-01-14 17:58:37 · 10395 阅读 · 2 评论 -
架构设计(7)—如何设计架构和画架构图
愿景已经确定架构愿景和目标。需求分析明确架构要解决当前什么问题。那接下来就是如何着手开始做架构设计。一、如何开始设计一个架构:方式方法架构不是像平常写代码一样,对就是对,错就是错,它并无对错之分,是一个取舍的过程。当我们从0开始做架构的时候,的确是比较困难。虽然万事开头难,但是一个好的开始相当于成功了一半,会给我们接下去的工作打下结实的基础。我的经验步骤是:业务-&.........原创 2018-09-29 17:05:51 · 36218 阅读 · 2 评论 -
架构设计(6)-架构需求分析
架构设计需求分析: 主要目的是明确架构要解决当前什么问题, 先调研需求方的诉求。如果公司的架构部自high,做一些根本没有人使用的框架,组件,系统:以“晋升”为目的的架构设计都应该拉出去祭天。脱离业务的架构设计都是耍流氓。一、架构设计的需求分析从哪来需求分析的前期工作是愿景描述及愿景分析, 即愿景分析就是需求的前期调研.从软件过程来看,需求分析是一个承上启下的阶段–“...原创 2018-07-06 15:17:57 · 15039 阅读 · 0 评论 -
架构设计(5)—架构愿景分析
1、架构目标架构设计始终以服务业务为中心,以保证产品业务的稳定、安全、高效运行为目标。稳定:指产品向用户提供服务的可用性、准确性、完整性,访问速度及用户体验符合产品的设计与预期;安全:指产品运行在安全,可控的状态下,包括用户访问安全,抵御恶意攻击,网络故障,数据安全等抗风险能力符合产品的服务要求;高效:指系统运营的效率、以较小的资源投入带来最大的用户价值,如开发效率,资源利用率、数据传输效率、更新...原创 2018-07-04 16:36:09 · 10863 阅读 · 0 评论 -
架构设计(4)--API网关
1、前言所在公司目前接入层是阿里云的SLB,然后经过Nginx+Lua转发到后端服务(Lua主要是限流)。 随着业务的发展,发现nginx配置越来越复杂,但又没有统一的管理,于是把Nginx这层改造成基于OpenResty的Nginx应用的API Gateway。于是上网总结和梳理网关相关知识。问题:由于我们使用的服务系统架构,所以没办法像传统单体应用一原创 2018-01-24 18:22:54 · 28991 阅读 · 8 评论 -
架构设计(3)--架构模式
模式的经典定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的解决方案,无需再重复相同的工作。即模式是在特定环境中解决问题的一种方案 。 什么是架构模式?在维基百科:架构模式是针对特定软件架构场景常见问题的通用、可重用解决方案。架构模式类似于软件设计模式,但范围更广。...原创 2017-10-17 15:52:47 · 15673 阅读 · 0 评论 -
架构设计(2)-架构设计原则
如何设计出一个好的架构,不像数据公式或者定律,很难一概而就。很多时候是设计者(架构师)的各种设想,各种权衡折中而符合系统需求的智慧输出。但我们掌握前人总结的经验,让我们站在巨人的肩膀上高山远瞩。一些好的架构设计原则可以确保设计决策在一定程度上能够满足需求。一、形成架构原则的过程形成架构原则的过程: 架构原则要SMART ......原创 2017-10-17 14:19:01 · 25541 阅读 · 2 评论 -
架构设计(1)-谈谈架构
1、什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构,MySQL有架构,JVM也有架构,使用Java开.........原创 2017-10-17 11:18:15 · 84025 阅读 · 29 评论 -
架构师成长之路(6)--技术深度和广度
一、技术的深度说到技术深度,深到底多深才叫有深度,是不是技术钻研的越就显得越牛逼,那学一门技术要怎么学才叫有深度的学?学任何的知识都要形成一个体系,才能学得深,记得牢。功利性地,走马观花似的学习,很快就会忘记。1、学习层次认知我们先看看加涅定义学习的层次:陌生——辨别——概念——规则(方法,套路等)——高级规则(解决问题)。对应到我们技术,在我们技术简历上面,经常出现...原创 2019-06-08 01:56:41 · 5055 阅读 · 0 评论 -
架构师成长之路(5)--架构师具备的思维
一个思维习惯,让你成为架构师程序员的迷茫不仅仅是面对技术繁杂的无力感,更重要的是因为长期埋没于软件 世界的浩大的分工体系中,无法看清从业务到软件架构的价值链条,无法清楚定位自 己在分工体系的位置,处理不好自身与技术、业务的关系所致。很多程序员打心底不喜欢业务,这一点我曾经也经历过,我更宁愿从事框架工 具、技术组件研究的相关事情。我有个朋友经常吐槽我说:”你们天天加班加点写了 那么多代码,然...原创 2020-02-25 14:32:37 · 1911 阅读 · 1 评论 -
架构师成长之路(5)--如何获取知识(学习境界)(方法)
哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动找准自己定位:我是谁?在哪里?...原创 2015-12-24 11:00:14 · 77177 阅读 · 9 评论 -
架构师成长之路(4)--架构师知识体系(方法)
前言:哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动找准自己定位:我是谁?...原创 2015-12-10 11:26:43 · 42564 阅读 · 12 评论 -
架构师成长之路(3)--如何成为架构师(方法)
前言:哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动0.能力等级定义心理......原创 2019-11-04 10:25:27 · 55333 阅读 · 29 评论 -
架构师成长之路(2)--架构师必备技能(目标)
前言:"比你牛B的人比你还努力,你有什么资格不去奋斗"哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做...原创 2015-10-26 17:16:01 · 40066 阅读 · 14 评论 -
架构师成长之路(1)--什么是架构师
前言:哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动找准自己定位:我是谁?在哪里...原创 2015-10-26 17:12:30 · 61863 阅读 · 22 评论