300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 架构师成长之路(6)--架构师知识体系(方法)

架构师成长之路(6)--架构师知识体系(方法)

时间:2022-05-28 13:54:12

相关推荐

架构师成长之路(6)--架构师知识体系(方法)

前言:

哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知。如果我们要成为架构师,我们自己要面临的三大问题:找准自己定位:我是谁?在哪里?怎样做好架构师:我要做什么?如何搭建架构师知识体系:我该怎么做?这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做), 执行/行动

要成为优秀合格的架构师,必须具备前瞻性的眼光和系统性的思考能力。而拥有这些能力的前提是你必须完善自己的知识体系。

互联网思维不是工具,它是世界观。这篇文章之后,你可以尝试构建自己的知识体系了。

愿每个人都可以像一个U盘一样,自带系统随处插拔。

愿每个人都可以和别人不一样。

一、通用技能表

1、做事方法论:目标、方法、执行。

我是谁:思维方式,不将就认真做事的人

如何做事:1)整体把握,找到方法论(解决方案),

2)思路:分而治之,优先排列,计划进行(排期完成)。

3)及时沟通,反馈,勇于承担责任

4)团队意识

成长:1)和优秀的人在一起

2)不断学习充电

完成定义:了解基础原理,自测通过,及时跟踪反馈问题,文档更新

做一个靠谱的人:“凡事有交代,件件有着落,事事有回音。”

2、思维结构:

《金字塔原理》

《结构化思维》

系统思维

3、文档能力:熟练使用excel,ppt

4、协作

类似Trello的在线协同平台

Slack

微信

例会

5、沟通能力:

6、业务能力:该行业和本公司的业务逻辑

7、计划推进:质量控制、进度控制、人员组织、资源协调。

1)、能够有效的组织各类资源,通过说服、协调等方式得到相关部门或人员的支持,以使计划顺利的推行下去;

2)、说服力、协调力、推动力、监控与反馈

8、项目管理能力

架构评审

代码规范

代码 Review

看板管理

SCRUM

敏捷开发

极限编程(XP)

结对编程

FMEA管理模式

二、专业技能表

1、基础知识

计算基础 计算机原理数据结构和常用算法操作系统:进程,线程,内存 网络 TCP/IP协议TCP/IP网络模型HTTP协议原理网络IO模型Socket网络编程

2、编程语言

java java基础类库、异常JVM原理和调优《深入理解java虚拟机》《java性能优化权威指南》框架并发《java并发编程实战》多线程php 异常常用框架php php基础常用框架异常处理机制深入php内核

3、程序设计

高质量编码能力: 重用性低耦合可扩展性可维护性高性能安全性高面向对象编程: MVC编程思想掌握建模语言和建模工具:UML面向对象思想设计模式: 基础设计模式和设计原则:单一职责、开放封闭原则等.常用设计模式重构

4、研发能力

瀑布模型:需求->需求分析->设计->开发->测试->上线->运维/运营调试和解决问题能力敏捷思想:快速迭代,任务细分,wiki更新

5、安全知识

web安全:xss,sql注入,ddos攻击安全维度:漏洞,风险,事件https协议安全书: 《黑客攻防技术宝典(Web实战篇)》

《白帽子讲Web安全》

《Web前端黑客技术揭秘》

《Web之困》

《SQL注入攻击与防御》

6、Linux知识

7、运维能力

监控持续集成:jenkins自动化运维工具:ansible,saltstack虚拟化:kvm,vm容器docker云技术openstackDevOps

8、数据库

基础理论数据库设计的三大范式MySQL原理MySQL优化mysql引擎: InnoDBMyISAMNoSQL:redis/mongo

9、常用应用软件

Web server: NginxOpenRestyApache HttpdTomcat:架构原理,调优方案Jetty 消息队列: RabbitMQRocketMQActiveMQKafkaRedis 消息推送ZeroMQ RPC: DubboThriftgRPC数据库中间件: DBproxyHaproxy 软件负载均衡: 几种负载均衡算法: 轮询、权重、负载、最少连接、QoSDNS负载均衡NginxLVS+Keepalived实现负载均衡HAProxyHaproxy+Keepalived+MySQL实现读均衡负载

9、性能

性能优化方法论容量评估CDN 网络连接池性能调优

10、大数据

大数据HadoopStormKafka Stream

11、工程化

mavengitjenkins

三、架构基础知识

1、架构演进

初始阶段:LAMP,部署在一台服务器应用服务器和数据服务器分离使用缓存改善性能使用集群改善并发数据库地读写分离使用反向代理和cdn加速使用分布式文件和分布式数据库业务拆分分布式服务

2、架构模式

分层:横向分层:应用层,服务层,数据层分割:纵向分割:拆分功能和服务分布式 分布式应用和服务

分布式静态资源

分布式数据和存储分布式计算集群:提高并发和可用性缓存:优化系统性能 cdn方向代理访问资源本地缓存分布式缓存异步:降低系统的耦合性 提供系统的可用性加快响应速度冗余:冷备和热备,保证系统的可用性自动化:发布,测试,部署,监控,报警,失效转移,故障恢复安全:

3、架构核心要素

高性能:网站的灵魂 性能测试前端优化应用优化数据库优化可用性:保证服务器不宕机,一般通过冗余部署备份服务器来完成 负载均衡数据备份自动发布灰度发布监控报警伸缩性:建集群,是否快速应对大规模增长的流量,容易添加新的机器 集群负载均衡缓存负载均衡可扩展性:主要关注功能需求,应对业务的扩展,快速响应业务的变化。是否做法开闭原则,系统耦合依赖 分布式消息服务化安全性:网站的各种攻击,各种漏洞是否堵住,架构是否可以做到限流作用,防止ddos攻击。 xss攻击sql注入csr攻击web防火墙漏洞安全漏洞ssl

四、架构设计

1、设计原则

1、冗余设计 2、回滚设计 3、监控设计4、故障隔离5、可独立部署6、无状态设计7、成熟技术8、异步设计9、禁用设计10、服务可降级11、服务可限流12、水平扩展

2、接入层设计

DNS轮询动静分离方向代理:LVS,NGINXCDN接入层安全:DNS劫持、限流,防刷。

3、应用层设计

通信机制:RPC,MQ异步连接池配置中心

4、数据库层设计

高可用数据库架构双主架构主从同步读写分离分表分库

五、互联网公司经典技术架构

互联网公司经典技术架构

六. GitHub上整理的一些工具和资源

2.1技术站点

Hacker News:非常棒的针对编程的链接聚合网站

Programming reddit:同上

MSDN:微软相关的官方技术集中地,主要是文档类

infoq:企业级应用,关注软件开发领域

OSChina:开源技术社区,开源方面做的不错哦

51cto,cnblogs:常见的技术社区,各有专长

stackoverflow:IT技术问答网站

GitHub:全球最大的源代码管理平台,很多知名开源项目都在上面,如Linux内核

OpenStack等免费的it电子书:http://it-ebooks.info/

DevStore:开发者服务商店

2.2 不错的书籍

人件

人月神话

代码大全2

计算机程序设计艺术

程序员的自我修养

程序员修炼之道

高效能程序员的修炼(成为一名杰出的程序员其实跟写代码没有太大关系)

深入理解计算机系统

软件随想录

算法导论(麻省理工学院出版社)

离线数学及其应用

设计模式

编程之美

黑客与画家

编程珠玑

C++ Prime

Effective C++

TCP/IP详解

Unix 编程艺术

《精神分析引论》弗洛伊德

搞定:无压力工作的艺术

2.3平台工具(都是开源的好东东哦)

Redmine/Trac:项目管理平台

Jenkins/Jira(非开源):持续集成系统(Apache Continuum,这个是Apache下的CI系统,还没来得及研究)

Sonar:代码质量管理平台

git,svn:源代码版本控制系统

GitLib/Gitorious:构建自己的GitHub服务器

gitbook:https://www.gitbook.io/写书的好东西,当然用来写文档也很不错的

Travis-ci:开源项目持续集成必备,和GitHub相结合,https://travis-

开源测试工具、社区(Selenium、)

Puppet:一个自动管理引擎,可以适用于Linux、Unix以及Windows平台。所谓配置管理系统,就是管理机器里面诸如文件、用户、进程、软件包这些资源。无论是管理1台,还是上万台机器Puppet都能轻松搞定。

Nagios:系统状态监控报警,还有个Icinga(完全兼容nagios所有的插件,工作原理,配置文件以及方法,几乎一模一样。配置简单,功能强大)

Ganglia:分布式监控系统

fleet:分布式init系统

2.4爬虫相关(好玩的工具)

Phantomjs

berserkJS(基于Phantomjs的改进版本)

SlimerJS

CasperJS

selenium

2.4Web 服务器性能/压力测试工具/负载均衡器

http_load:程序非常小,解压后也不到100K

webbench:是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力

ab:ab是apache自带的一款功能强大的测试工具

Siege:一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

squid(前端缓存),nginx(负载),nodejs(没错它也可以,自己写点代码就能实现高性能的负载均衡器):常用的负载均衡器

Piwik:开源网站访问量统计系统

ClickHeat:开源的网站点击情况热力图

HAProxy:高性能TCP /HTTP负载均衡器

ElasticSearch:搜索引擎基于Lucene

Page Speed SDK和YSLOW

HAR Viewer:HAR分析工具

protractor:E2E(end to end)自动化测试工具

2.5Web 前端相关

GRUNT:js task runner

Sea.js:js模块化

knockout.js:MVVM开发前台,绑定技术

Angular.js:使用超动感HTML & JS开发WEB应用!

Highcharts.js,Flot:常用的Web图表插件

Raw:非常不错的一款高级数据可视化工具

Rickshaw:图标库,可用于构建实时图表

JavaScript InfoVis Toolkit:另一款Web数据可视化插件

Pdf.js,在html中展现pdf

ACE,CodeMirror:Html代码编辑器(ACE甚好啊)

NProcess:绚丽的加载进度条

impress.js:让你制作出令人眩目的内容展示效果(类似的还有reveal)

Threejs:3DWeb库

Hightopo:基于Html5的2D、3D可视化UI库

jQuery.dataTables.js:高度灵活的表格插件

Raphaël:js,canvas绘图库,后来发现百度指数的图形就是用它绘出来的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。