Reboot架构师课程表

一、架构师工作介绍&基础知识

  • 系统架构师日常工作:
    • BAT架构师日常
    • 架构师课程与师资介绍
  • Python在Linux系统中的应用和地位
  • 数据结构基础
    • 数组、链表、Hash、二叉树
  • 从Python源代码分析:
    • Python基础语法实现的机理
    • Python dict和list、set的性能特质
    • 迭代器原理
    • Python内置数据结构的实现和特性,如何写出更加高效的程序
  • 课堂练习:
    • Linux文件系统原理,inode、空洞文件。
    • Python文件操作,顺序读写,随机读写。

二、计算机体系&数据库

  • CPU L1、L2 cache介绍以及对性能的影响
  • Linux Buffer、Cache对性能的影响
  • HTTP、TCP、IP协议详解
    • HTTP协议基础,各种常见header的含义
    • HTTP性能优化:KeepAlive、连接复用
    • HTTP、TCP、UDP等常见协议的关系
  • MVC介绍,MVC的演进历史,MVC的**
  • 课堂练习:
    • 函数的应用,函数的意义,代码复用的意义
    • Python模块化;Python的面向对象
    • 数据库常见设计规则;数据库原理简介,数据库架构剖析
  • 名企架构剖析
    • 1000G级别CDN系统设计要点

三、初级网络编程&爬虫

  • Python网络编程:
    • 从urllib、urllib2库到requests
    • Cookie和Session的原理
    • 同步网络编程&异步网络编程
  • Python实现网络爬虫
    • PCRE基础
    • 实战抓取网站资源
    • 怎么抓取异步加载的网页
    • 介绍分布式网络爬虫
  • Python的reflection
    • 在指导下自主开发监控项
    • 磁盘、网络、CPU、内存
  • 课堂练习:
    • 实战网络爬虫,批量下载用户头像
  • 名企架构剖析
    • 豆瓣架构演进----BeansDB、DoubanFS

四、Python高级编程&MapReduce

  • Python高阶语法
    • 装饰器原理介绍
    • 通用超时设定装饰器
    • 用Python实现"bash -x"
    • 不定长参数,默认参数
    • 神奇的yield,iter,实现一个自己的xrange
  • 大数据的基石:MapReduce**介绍
    • Python实现MapReduce
  • 课堂练习:
    • 实战多线程网络爬虫
  • 名企架构剖析
    • Google 分布式计算集群

五、Linux多进程&多线程

  • 多进程,多线程编程,实现多进程调度框架:
    • 多进程多线程的产生,在Linux系统中的地位
    • 多进程和多线程的选用场景
    • 多进程、多线程基础;为什么不能一味的开线程解决问题
    • 协程简介
    • 程序运行时的内存布局
    • 从系统底层看Python的多进程、多线程实现,分析GIL
    • 守护进程,用Python实现一个守护进程
  • 课堂练习:
    • Python多线程实战,多进程实战
    • 多线程协同工作实现数据采集&上报
    • 数据队列和锁的使用
  • 名企架构剖析
    • Google分布式文件系统

六、异步网络编程

  • Python网络编程常用框架:
    • Twisted框架
    • 用Twisted网络框架实现一个RPC调用的Client和Server
    • 长连接和短连接,推送机制的实现
    • 通信协议的实现,通信协议的关键点
    • 深入理解HTTP协议
    • 为什么HTTP协议是现在这个样子
  • 异步网络编程**
    • 为什么Nginx能秒杀Apache
  • 课堂练习:
    • 不用任何第三方库实现一个简化的HTTP服务器
  • 名企架构剖析
    • Facebook 架构探秘----日志、HipHop、BigPipe and more

七、高级网络编程(一)

  • 屠龙之技:异步非阻塞网络编程实战
    • 分析memcached并发模型
    • 比较各类网络编程技法的优劣
    • 有限状态机实战
  • Win、Linux、UNIX网络编程现状
    • select、poll、epoll、kqueue、IOCP、libevent
    • 水平触发LT & 边沿触发ET
    • 用Python实现一个基于memcached**的网络编程库nbNet
  • 课堂练习:
    • nbNet网络库微调
    • 用nbNet实现Telnet协议
  • 名企架构剖析
    • Twitter 架构探秘----Scaling、Cache、Tracing

八、高级网络编程(二)

  • 屠龙之技:异步非阻塞网络编程深入
    • 深入剖析异步非阻塞网络编程
    • 长连接&连接池的应用,智能路由算法的原理与工程实现
    • 用nbNet实现监控数据持久化模块
    • 用nbNet实现监控数据中转模块Transfer
    • 用nbNet实现监控数据报警模块DB-Saver
  • 课堂练习:
    • 动手实现“连续n次触发阈值报警”,“60s内只报警n次”
    • 监控系统前后端联调
  • 名企架构剖析
    • 百亿量级数据库架构----Pinterest

九、监控框架

  • Agent多进程调度框架实战和监控数据缓存、持久化前端数据API封装与实现:
    • 从头实现一个系统命令RPC调用Server和Client
    • 综合运用之前的知识实现一个采集服务器状态信息的框架
    • 运用网络编程技巧,监控框架Debug动手实战
    • 网络程序性能测试
    • 代码复用的考虑,如何以不变应万变
  • 名企架构剖析
    • 360集群控制系统----如何在5s之内控制5w台服务器执行命令

十、集群控制系统

  • 介绍开源集群管理系统:
    • 深入分析各自利弊和架构
    • 介绍我们将要开发的系统架构
  • 分布式系统理论介绍
    • CAP定理及其推导
    • BASE 和 ACID
    • 一致性算法简介:Paxos、Raft
  • 集群管理系统实战,实现批量命令执行的Client和Server端:
    • 控制系统简介
    • 实现能批量分发控制指令的控制系统
  • 名企架构剖析
    • Google Chubby分布式锁服务
    • Apache ZooKeeper分布式配置管理

十一、综合大实战

  • 综合实战作业(一)
    • 完成 集监控、控制一体的服务器管理系统
    • 监控系统整理
    • 监控系统前后端大联调,监控数据图形化展示
    • 高可用监控系统的构建:架构&细节
    • 控制系统代码整理
    • 监控系统支持自定义监控
    • 监控脚本的标准&规范
    • 监控脚本的下发&执行
  • 名企架构剖析
    • Google Borg任务调度系统

十二、综合大实战&面试强化培训

  • 综合实战作业(二)
    • 构建一个规范的上线系统
    • 面试常见问题解答及剖析
    • 简历点评、简历润色修改
    • BAT专家现场模拟面试