标签 - 后台架构

后台架构 技术    2019-04-11 14:13:13    15    0    0

这是去年在部门内部做的一个面向后台开发新同学的课程,因为其他BG一些同学要求分享,所以发一下。

其实内容都是些常见开源组件的high level描述,比如flask, express框架,中间件的演化,micro service的概念,一些对nosql/column based db的概念介绍,docker的一些简单概念等等。从单个概念来说,这只是一些科普。

但是为什么当时要开这门课呢?重点是我发现很多新入职的后台开发同学并不太清楚自己做的东西在现代互联网整体架构中处于一个什么样的角色,而在IEG内部则因为游戏开发和互联网开发的一些历史性差异,有些概念并不清晰。

拿中间件来说,很多web application不用啥中间件一样可以跑很好,那么是不是都要上redis?到底解决什么问题?中间件又存在什么问题?中台和中间件又是个什么关系?如果开个mq就是中间件,微服务又是要做啥?

如果能从这十多年来互联网应用的整个tech stack变化去看待backend architecture的一些改变,应该是一件有趣也有意思的事情。这是当时写这个ppt开课的初衷。

我不敢说我在这个ppt里面的一些私货概念就是对的,但是也算是个人这么多年的一些认知理解,抛砖引玉吧。

强调一点,这个ppt的初衷是希望从近十多年来不同时代不同热点下技术栈的变化来看看我们是如何从最早的php/asp/jsp<=>mysql这样的两层架构,一个阶段一个阶段演变到现在繁复的大数据、机器学习、消息驱动、微服务架构这样的体系,然后在针对其中比较重要的几个方面来给新入门后台开发的同学起个“提纲目录”的作用。如果要对每个方面都深入去谈,那肯定不是一两页PPT就能做到的事情。

下面我们开始。首先看第一页如下图:什么是System Design?什么是架构设计?为什么要谈架构设计?

之所以抛出这个问题,是因为平时常常听到两个互相矛盾的说法:一方面很多人爱说“架构师都是不干活夸夸其谈”,另一方面又有很多人苦恼限于日常业务需求开发,无法或者没有机会去从整体架构思考,不知道怎么成长为架构师。

上面ppt中很有趣的是第一句英文,翻译过来恰好可以反映了论坛上经常有人问的“如何学习架构”的问题:很多leader一来就是扔几本书(书名)给新同学,期望他们读完书就马上升级。。。这种一般都只会带来失望。

何为架构师?不写代码只画PPT?

不是的,架构师的基本