大型互联网分布式计算与分布式架构

大型互联网分布式计算与分布式架构
    马上咨询

    丛磊  曾任新浪云计算首席架构师、新浪云计算总负责人,SAE创始人 

    国家可信云评委,工信部数据中心联盟理事。目前就职于白山云科技任技术总监,为企业提供云服务技术。丛老师2006年加入新浪,2008年起从事云计算方向的研发,2009年带领技术团队开发了国内第一个PaaS云计算平台SAE,并发展至今,成为国内最大的PaaS平台。丛老师长期从事分布式系统、云计算方面的一线研发,写过50万行+的代码,拥有两项算法国家专利,之前负责整个新浪云计算业务。

    课程介绍

    本课程从最简单的业务设计入手,讨论在架构设计时如何保证业务的高可靠性和高可扩展性,这里面涉及了数据库、缓存、队列、代理等系统的实现原理和使用技巧,也涉及了移动端、前端的常用优化技巧。   

    课程收获

    通过本课程,学员可以掌握互联网系统的架构设计技巧,并且掌握如果保证业务数据完整性、如果面对秒杀活动、如果进行业务降级等方法和技巧,有效的提高学员在设计互联网系统时的能力。

    课程特色

    本课程内容绝对不会讲具体的概念,重点强调如何应用暨实施。

    授课方式

    培训采用实战的方式,整个培训过程学员需要在讲师的指点下动手操作,以及学员和老师间高互动,1天需要掌握10多种实战技巧,需要不断思考和参与,深刻掌握大型互联网分布式架构设计应用的核心技巧。课堂分组练习,突出实践运用,通过实际演练发现并解决问题。

    课程对象

    主要针对系统开发人员(架构师、技术经理、技术总监)、设计人员、运维人员、云计算负责人等。

    课程大纲

    一、高扩展高可靠业务架构基本原理
    1.   网站基本架构
    2.   DNS+HA+Runtime
    3.   CAP原理
    4.   两步提交+三步提交原理
       讨论:以一个最简单的业务入手,讨论各个环节的高可靠、高扩展的最简单设计,包括DNSó代理óWeb服务器环节。 
    二、路由层可靠性
    1.互动讨论:从nginx基本原理epoll进行nginx调优,设计nginx配置文件调优+nginx模块简单编写。
    三、缓存系统设计
    1.   一致性hash
    2.   非阻塞+阻塞
    3.   LRU
    4.   过期时间
    5.   多级缓存
    6.   数据一致性
    7.   CDN原理及使用
     讨论1:2015年1月22日,陈赫在网上公开宣布离婚,瞬时导致微博长微博系统出现问题,进而引起雪球效果,导致微博整站无法访问,突发的无可预知的类似人工DDOS问题,如何处理?
     讨论2:众所周知,CDN常用于静态资源加速,那么动态资源可否使用CDN?
     讨论3:memcached和redis实现原理,及作为cache系统异同
    四、WebServer设计
    1.   无状态设计
    2.   动静分离
    3.   隔离技术
    4.   并发控制
    5.   智能路由
    6.   L1 cache
       实战演练:压力测试工具进行压测。
       讨论:如何防范网络CC攻击。
    五、队列系统
    1.   顺序队列 vs 并发队列
    2.   数据持久性
    3.   防止队列阻塞
    4.   队列系统设计
    5.   队列监控
       实战演练:秒杀是互联网业务最有挑战的需求,从技术上满足秒杀需求的最重要的环节就是变同步为异步,那么这个环节中队列起到什么作用,如何设计一个秒杀系统?
    六、关系型数据库
    1.   冷备+热备
    2.   异地容灾
    3.   主从分离
    4.   partition(分库分表的基本原则)
    5.   trigger
    6.   SSD为数据库技术带来的影响
       讨论1:在合适的场景选型关系型数据库和非关系型数据库。
       实践2:利用MySQL explain进行数据库优化实战。
    七、非关系型数据库(略讲)
    八、分布式计算
    1.   MPI & MapReduce
    2.   MapReduce和Hadoop的关系
        a.   流式分布式计算的原理
        b.   计算密集型和IO密集型
    实战演练:利用MapReduce解决实际的词频统计问题。
    九、保证业务流畅的技巧
    1.   合理的设计cache
    2.   合理的“假”显示
    3.   异步工作流+回调
    4.   功能降级、分流
    5.   尽可能做业务冗余
       讨论1:用户抱怨访问慢,顺着这个线索,怎么排查?
       讨论2:速度是第一用户体验,根据学员的实际问题,来讨论怎么发现业务瓶颈、怎么解决业务瓶颈
    十、运维体系
    1.   App监控和反馈
    2.   运维体系架构
    3.   灰度发布技巧vs 开发测试环节
    4.   怎么通过运维提高服务可靠性
    5.   怎么通过运维提高服务质量
    6.   怎么通过运维降低服务成本