图说技术架构和业务架构


图说技术架构和业务架构_第1张图片
 
图说技术架构和业务架构_第2张图片

Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。
 
图说技术架构和业务架构_第3张图片

此时已经能支撑很大的量了
 
图说技术架构和业务架构_第4张图片

典型的SOA架构,业内开源的SOA框架有阿里巴巴的dubbo.io。要理解云平台,看阿里云、金山云等就好。

下文摘自美团技术营销文章,

   在最底层会有云平台,对内对外都有服务,会有云主机,会有云存储,也会有虚拟网络,包括一些负载均衡的东西。在云平台上面,我们会有一些基础的组件,这些基础组件跟业务的逻辑相隔比较远,它会有比如配置,队列中心,注册中心,包括一些SQL和NoSQL的存储等等,这些技术组件我们在所有的业务里都会使用,所以我们把它提取出来,作为我们的技术组件提供给业务能用。再往上,确实有一些东西是与业务结合比较多,比如说用户中心,支付,包括一些搜索,推荐,还包括,比如说我们会建立用户的一些地理位置的库,包括一些风险控制的东西,这些东西是与业务是有交互的。但是我们去分析之后发现在不同的业务里面,这些组件还是差不多的,所以我们也是把它抽象出来,现在叫业务组件,这些业务组件在所有的业务之间也是共用。
再往上才是我们各个不同的业务的,真正的比较独特的一些逻辑。在这些业务逻辑前面,是前端的接入,这个前端接入其实对不同的业务也是一样的,它会有前端的接入和转发,会有前端内容的过滤,就是一些防抓取,防攻击这样的内容过滤。比如说为了做用户访问性能的优化,我们会做大量的各种各样内容的缓存,包括CDN也好,包括我们内部不同层次之间,包括一些验证码的服务。所以在这种架构下面,当我们再要去做一个新的业务的时候,我们就关注在中间业务逻辑这一块就可以了,这样可以很快地去拓展新的业务逻辑,而且每一个人,每一个团队,只关注真正最有价值的那一部分的软件的开发。那当然两边会有我们的,运维的工作,安全的工作,是在每一层都会涉及的。
   但是整个这样一个逻辑发展到现在,我们是觉得最适合我们美团现在这个阶段的一套技术架构,那从一开始的最简单的LAMP,到现在可能我们分了很多很多个组件、很多很多层,这些架构看起来是非常非常不一样的。但是我们现在回想起来并不觉得说,原来的就不好,现在的就好。我们觉得在公司发展的不同的阶段,一开始就最适合那种最简单的情况,如果说我们一开始,比如说美团2010年成立的时候就上这种很复杂的架构的话,那可能我们2010年底才把软件开发完,那时候上线的时候,可能已经有五千多家团购网站在线上了,所以这是不切实际的。所以整体来说,我们觉得在整个技术架构的演变过程中,就是找当前真正能够满足我们业务需求的。
   另外一个特点,大家也可以看到,在我们的整个的架构里面,大量应用了一些开源的东西,从最初的LAMP架构的时候,包括MySQL、Apache,到现在我们一些很复杂的架构里面,比如说搜索,现在会用到Lucene,会用到Solr,在云主机、云平台这一块,我们会用到比如说OpenStack的一些个组件,包括比如存储的Swift等等,用到很多的开源的东西。开源产品拿过来当然会加速我们的这种开发的周期,但是开源产品我们也不仅仅是单单把它拿过来,因为任何一个开源的产品,如果你要拿到一个比较复杂的业务里,你就会发现它不是那么匹配的,它总是有些边边角角,比如说要与系统的集成,或者很多开源产品,它在大规模的情况下,高并发的情况下,考虑地并不是那么周到。所以我们在开源的基础上做了大量的优化,一方面能让我们的整个系统能做更好地水平的扩展、系统的扩展、系统的优化,同时也让整个的用户体验能够更好。
   总结下来,就是在技术架构方面,想跟大家分享这么几点,一个就是整个技术架构总是在不断地结合业务在不断地演化,还有就是至少从美团来说,我们是在开源软件的基础上,然后不断地做集成,不断地做优化,最后,软件开发的时候,不管是在对用户体验来说,还是对工程师自己的体验,我们总是在追求一些极致,这样的情况下,我们的技术架构就自然而然的在不断地演变了。

 

 

 
图说技术架构和业务架构_第5张图片
 
图说技术架构和业务架构_第6张图片

比如可以去掉部分审批流程
 

你可能感兴趣的:(架构,美团,技术架构,业务架构)