好久没写blog了,从今天开始就要开始学习架构了,写个blogs整理记录下,方便以后复习。(第一天概念比较多一点,见谅!)
架构师的定义:系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。
所以架构师是也是一个技术人员,也是需要懂很多很多技术栈,并且从技术栈的深坑中爬出来的。
架构师的使命和责任:
1.兼容过去问题:历史数据和业务需要兼容,和老系统,换句话来说就是当前公司系统有哪些之前遗留下来的问题。
三种解决方法:1.空中加油 2.新旧分割法 3.休克疗法
1.空中加油:指的就是新旧两个系统同时运行,新旧系统之间可以通过灰度发布转换
2.新旧分割法:指的是新系统和老系统分别独立运行,等到新系统运行稳定之后,把老系统所有的后端迁移过去
3.休克疗法:一刀切,把老系统关掉,全部放到新系统上,开启新系统,这样很容易崩。
2.解决当前问题:新需求和业务功能扩展(尽量避免维护当前业务)
具体做法:
1.投入产出比高:需求估时中,对系统流程了解时间比例小于百分之20
2.日常维护低:系统功能问题不影响业务需求发展
3.可扩展性强:避免出现小功能就大面积测试,只需要在小部分中测试即可
4.系统稳定
3.解决未来的问题
1.充分分析人力成本,时间成本,机会成本等
2.未来2-3年的用户规模扩大程度要有规划
3.未来2-3年的技术进化方向和技术迭代
架构师的目标
1.高可用:使得系统SLA至少百分之99,整个系统不超过50分钟,单个系统不超过5分钟
2.高扩展性:架构简单清晰,应用系统间耦合度低
3.低成本:提高服务重用性,降低人力成本,减少服务器成本
架构设计组成的关键层级
架构层级分四个层级:业务架构,应用架构,数据架构,技术架构
1.业务架构设计原则
业务平台化,核心业务和非核心业务分离,区分主流程和辅流程,隔离不同类型的业务
2.应用架构设计原则
稳定性原则,解耦/拆分,抽象化,松耦合,容错设计
3.数据架构设计原则
统一数据视图,数据应用分离,数据异构,数据读写分离,用mysql数据库,合理使用缓存
4.技术架构设计原则
可监控,应用可回滚,功能可降级,在线扩容,安全保证,可容错,可故障转移
大流量应对方案
流量控制:分流,降级,限流
扩容:机房带宽,应用系统扩容,数据库扩容
监控:硬件监控,应用系统监控,业务监控,安全监控
预案:线上演练,系统预案评审
线上压测:交易订单泄洪,页面系统压测
故障转移:DNS,数据库,软负载
架构设计总结:
四个层级和五个方面
总结:主要写的是一些纯理论和概念方面的东西,重点是架构的四个层级,其中技术架构是大家最关注的,大伙也可以根据下图回想一下自己公司的技术架构哦!,后续会有很多技术栈的内容更新,包括spring,nginx,redis等等主流的技术栈.