这是我参与「第五届青训营」伴学笔记创作活动的第 14 天
架构初探
课程目录
- 1.什么是架构
- 2.企业级后端架构剖析
- 3.企业级后端架构的挑战
- 4.后端架构实战
什么是架构
定义
架构,又称软件架构,
- 是有关软件整体结果与组件的抽象描述
- 用于指导软件系统各个方面的设计
Q:定义还是太抽象,能不能再通俗一点?
实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
Q:架构的重要性?
- 地基没打好,大厦容易倒
- 地基坚实了,大厦才能盖得高
- 站在巨人肩膀上,才能看得远
什么是架构-问题
兰师傅蛋糕坊要开张了,亟需解决如下问题:
- 如何做蛋糕
- 独家秘方,还是亲自做比较好
- 如何卖蛋糕
- 刚开始客流量应该不大,边做边卖 看起来问题都解决了,开张!
什么是架构 - 单机
软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上 优点:
- 简单
问题:
- C10K problem:即单机处理10K个并发连接的问题,随着epoll、kqueue等技术的不断发展,高性能网络编程逐渐回答了C10K问题。但在互联网飞速发展的今天,我们正陆续面临C10M、C10B问题。也就是说,单体服务一定是有架构瓶颈的。回到兰师傅蛋糕店,仅靠兰师傅自己卖蛋糕,就算再怎么磨炼手速,每天能卖出去的量也是有上限的。
- 运维需要停服:任何运维操作都需要停服,因为只有一个单体服务,有用户使用的时间点没有办法运维,再看我们的蛋糕店,如果兰师傅去上厕所了》》》
单机服务的模式,除了简单以外没有任何优点,当今互联网时代,单机服务的形态一般只适合出现在预研或初创阶段,但凡业务有发展和迭代的诉求,就应该快速做架构迭代。 演进:
- 如何卖更多的蛋糕? 多雇几个蛋糕师傅