架构初探 | 青训营笔记

69 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 14 天

架构初探

课程目录

  • 1.什么是架构
  • 2.企业级后端架构剖析
  • 3.企业级后端架构的挑战
  • 4.后端架构实战

什么是架构

定义

架构,又称软件架构

  • 是有关软件整体结果与组件的抽象描述
  • 用于指导软件系统各个方面的设计

Q:定义还是太抽象,能不能再通俗一点?

实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用

Q:架构的重要性?

  • 地基没打好,大厦容易倒
  • 地基坚实了,大厦才能盖得高
  • 站在巨人肩膀上,才能看得远

什么是架构-问题

兰师傅蛋糕坊要开张了,亟需解决如下问题:

  • 如何做蛋糕
    • 独家秘方,还是亲自做比较好
  • 如何卖蛋糕
    • 刚开始客流量应该不大,边做边卖 看起来问题都解决了,开张!

什么是架构 - 单机

软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上 优点:

  • 简单

问题:

  • C10K problem:即单机处理10K个并发连接的问题,随着epoll、kqueue等技术的不断发展,高性能网络编程逐渐回答了C10K问题。但在互联网飞速发展的今天,我们正陆续面临C10M、C10B问题。也就是说,单体服务一定是有架构瓶颈的。回到兰师傅蛋糕店,仅靠兰师傅自己卖蛋糕,就算再怎么磨炼手速,每天能卖出去的量也是有上限的。
  • 运维需要停服:任何运维操作都需要停服,因为只有一个单体服务,有用户使用的时间点没有办法运维,再看我们的蛋糕店,如果兰师傅去上厕所了》》》

单机服务的模式,除了简单以外没有任何优点,当今互联网时代,单机服务的形态一般只适合出现在预研或初创阶段,但凡业务有发展和迭代的诉求,就应该快速做架构迭代。 演进:

  • 如何卖更多的蛋糕? 多雇几个蛋糕师傅