作者简介
猪八戒网后端技术委员成员&八戒科技服务技术负责人,中国商业联合会互联网协会智库顾问、国家软考高级系统架构师、国家软考高级系统分析师、TOGAF企业架构认证、国家软考系统集成项目经理、PMP项目管理专家、ORACLE数据库管理认证专家、软件硕士,10 多年的互联网行业从业经验, 精通中间件底层原理、微服务架构,设计过猪八戒88节科技服务秒杀架构,对高可用架构、高性能架构都有深入研究。
01 第一项特质:具备宏观认知思维
宏观认知思维是指主动去了解一些整体全局的政治因素(Political)、经济因素(Economic)、社会文化因素(Sociocultural)、技术因素(Technological)、环境因素(Environmental)和法律因素(Legal )等,简称PESTEL。
这些看似与我们离得比较远,实际上与我们的职场生活息息相关。比如互联网 App 的用户隐私、经营违规、垄断问题等,作为一个技术负责人,如果你不了解这些,一旦在某一些决策上出现错误,不仅给企业带来各种麻烦,甚至还会造成很大的经济损失。
如果能够对这些外部宏观因素有一个清晰的认识和了解,就可以规避很多没必要的风险,甚至提前布局做好技术决策,把危机转变成机遇。
那我们平时如何去提升自己的宏观认知思维呢?多思考业务。
一是收集相关资料。比如收集国家总理每年的政府报告、企业当地的省委书记的政府工作报告,着重关注分析与你公司、行业相关的政策、通知等信息。
二是政策环境分析。根据收集的政府报告、政策,从宏观上分析是否有国家层面的大政策需求。
三是行业环境分析。研究行业上下游生态、市场规模大小,竞争对手相关情况等。
四是公司现状分析。分析公司商业价值的产生路径、交付保障体系、业务增长模式等。
02 第二项特质:具备成事的能力和心态
我这里分享一些我自己的经验,不一定适合每个技术负责人,兵无常势、水无常行,需要各位根据自己当下环境,因地制宜。
经验一 提能力
聚焦目标。战略/战术目标上要懂得聚焦和放弃。优先级处理,要以价值为导向。
管好团队。建立自驱式的团队文化,让团队持续迭代和成长。
知人善用。学会授权、赏罚分明。还有关键一点,具备同理心。
做好计划。俗话说兵马未动粮草先行,谋而后动,先做好计划再行动。
全程风控。全程具备风险意识,做好风险管理,制定风险应对措施。
紧抓细节。持续跟进进度,细节是魔鬼。
善于沟通。向上沟通,要建立全局思维;横向沟通,要有共赢心态;向下沟通,要学会建立技术影响力
经验二 修心态
气定神闲。遇到任何事,不管大事小事,都要不急不躁,气定神闲的思考清楚,然后一步一步解决。
雅量。谦卑,凡事皆能忍,坚信放过别人就是放过自己,不要把自己时间浪费在这些争强夺胜之上。一些人遇事一激就怼,甚至满口脏话,还有一些人,你一激他还满脸笑嘻嘻给你敬酒,你觉得这两种人谁能成事?
感恩与大气。学会感恩,感恩遇到的每个人,感恩给你帮助的,也感恩给你痛苦的,因为他们都是在帮你成长。大气不是说要花很多钱什么的,而是一种很强的利他思维,愿意与别人共赢。
03 第三项特质:深厚的技术功底
在技术这个领域,无论在什么段位,技术永远是最核心的能力,只是不同段位,有不同的侧重而已。没有深厚的技术功底,犹如浮沙之上筑高台。在技术这个领域,我还真看过不少因为技术底子不稳而翻车的所谓ppt高手。
技术选型。比如微服务注册中心选型,你不知道CAP原则,你不知道Eureka、Zookeeper是CP还是AP,你不知道注册中心的本质是要做到AP,你怎么选型?
技术方案可控。如果你不懂常见的中间件底层原理,常见框架的源码,你怎么确保你设计的技术方案上是可控的?比如你方案里选择了SpringCloud Eureka来做注册中心,集群同步时效性如何?Feign+Ribbo+Euraka的服务发现时效和故障感知时效如何?如果你不清楚这些底层细节,你怎么保障你系统的技术方案是可控的?
那作为一名技术负责人如何提升技术的深度?
一要深挖底层原理、掌握本质。其实学技术无非就是学技术语言、学算法、学中间件、学框架、学架构。但大道至简, 每个技术一般都会有一些通用底层机制,比如Reactor模式、零拷贝机制、IO多路复用机制、日志预写机制、文件顺序读写机制、pipeline设计模式、动态代理。你掌握这些底层机制后,就会发现nginx 、redis、netty的网络通信都是基于reactor模式,消息中间件基本都用到了零拷贝技术、系统缓存机制等 ,都是有共性的。
二要打好基础内功。如果你学的是Java,你会发现研究到底层后,JVM是c++写的,IO多路复用机制、零拷贝的MMAP都会涉及到操作系统原理,还有一些中间件是c编写的,比如nginx、redis.你不懂操作系统,不懂底层语言,技术对你来说,始终就是黑盒子。除此之外还有数据结构、算法,当规模变大的时候,这些都是很重要的。
三要自研中间件实践。最能锻炼技术能力的是自己尝试去造一些轮子,并运用到生产中,在产生商业价值的同时,把自己掌握的知识真正拉通。比如设计一个RPC框架。RPC是一个远程过程调用框架,必然会涉及网络通信。网络通信,必然又会涉及到通信协议、序列化和反序列化、网络IO模型。
为什么要有通信协议?因为网络传输底层是基于tcp传输的,传输的是二进制流,是没有边界的,怎么去判定一次完整的消息,得有协议来约定。
为什么要序列化和反序列化?因为我们调用参数往往是对象,而网络传输的都是字节流,所以必须要把对象转成字节流,反过来,服务端接收到后,需要反序列化成对象,来处理。
为什么要思考网络IO模型?你要考虑性能因素。服务端接收客户端连接,读取客户端信息,到底同步还是异步?是阻塞还是非阻塞?一般常见的是bio和Nio, 延伸点到reactor的单线程、多线程、主从三种模型。然后多路复用机制,底层实现select、poll、 epoll区别,然后还有零拷贝机制等等。
再深入设计下去,你就要考虑分布式架构了,RPC框架如何支撑分布式架构?你得思考集群机制、服务注册、服务动态发现、心跳保活(续约)、异常剔除、下线等,还有多个服务负责均衡策略怎么设计?服务调用出错后怎么设计?服务调用超时了怎么设计?
通过一个RPC框架设计和研发,你会发现拉通了网络、操作系统、多线程、分布式架构、服务治理等一系列核心技术。
04 第四项特质:具备技术前瞻洞察力
技术负责人要学会了解一些前沿的技术趋势和架构,不要只沉迷于当下,要能洞察到未来的技术趋势。
比如微服务架构趋势,你要了解DDD领域驱动设计、Springcloud Alibaba等。
比如大规模下的分布式架构趋势,你需要了解同城双活、两地三中心、单元化架构设计等。
比如云原生趋势,你需要了解Docker、Kubernetes、Serverless 、ServiceMesh服务网格架构等。
比如平台安全生产质量保障趋势,你需要了解全链路压测、混沌工程等。
比如数字化趋势,你需要了解低代码平台。
比如新基建趋势,你需要了解人工智能、5G、物联网等。
在研究这些新趋势的同时,不要浮于表面,只是夸夸其谈一些概念,而是要结合自己当前业务,仰望星空的同时,一定要脚踏实地。
---------欢迎留言,共同探索成为更好的技术负责人~---------