一、Linux系統基礎及系統管理
1、作業系統發展史,系統架構平台概覽; Linux起源、理念、發展曆史及各發行版;
2、Linux基礎知識、基本指令、獲得使用幫助及檔案系統組織結構等;
3、Linux使用者、組及權限的基礎及相關進階話題,詳細講解useradd/userdel/chmod/chown/usermod/chage/umask等相關指令;
4、Bash基礎及配置、标準I/O、管道及shell程式設計基礎;
5、文本處理工具的概念、簡單文本編輯器nano的使用、vim編輯器入門、進階及常用技巧;
7、Linux系統程序管理基本原理及相關管理工具如ps、pkill、top、htop等的使用;Linux中的作業控制;
8、Linux任務計劃的實作,講解at、cron及anacron的使用;
9、檔案查找的利器find指令基礎及進階應用;
10、TCP/IP網絡基礎、TCP有限狀态機狀态轉換原理、Linux網絡屬性配置及網絡用戶端工具詳解;
11、Linux系統軟體包的配置及管理、rpm及yum指令的使用及yum庫的制作詳解;
12、常見磁盤接口類型及相關裝置特性、Linux磁盤管理、Linux檔案系統基礎、進階與進階管理;檔案系統相關管理工具使用詳解;
13、系統初始化詳細流程精解、核心基礎及核心的定制(核心的定制、編譯及安裝);對比說明RHEL5與RHEL6系統啟動過程之差別;
14、X11、SSH、VNC、CUPS系統服務;putty、SecureCRT或Xmanager等ssh用戶端的應用;
15、檔案擴充屬性及ACL的應用;
16、RAID級别及相關概念詳解、Linux下軟RAID的實作及相關指令行工具的使用;硬體RAID基本原理及配置要點;
17、LVM2基本概念及其實作原理、LVM2相關指令行工具的使用;
18、Linux日志系統;常見日志管理工具的使用;
19、SELinux相關概念、原理及相關工具(如setenforce等)的使用;
20、RHEL系統kickstart檔案、自動化安裝部署及安裝盤的定制;
21、Linux常見系統及網絡故障排除(TroubleShooting);
22、RHEL或CentOS系統定制式精簡,實作從零開始按需重組大小、功能等可定制的Linux版本,借以實作從微觀角度了解Linux構成及運作原理之目的;
二、Shell程式設計入門及進階(穿插大量以實作系統自動化管理為目的腳本案例)
1、bash基礎及工作環境的定制,詳細講解profile、profile.d、bashrc、.bash_profile及.bashrc等配置檔案的功用;
2、bash腳本結構及運作;bash變量(局部變量、本地變量、環境變量、位置參數變量及特殊變量)及其表達式;
3、條件測試(整數測試、字元串測試及檔案測試);if和case選擇分支;
4、for、while、until循環及使用continue和break來控制循環機制;
5、在bash中使用函數,以及利用函數來實作bash庫;
6、腳本控制:在腳本中捕獲信号并完成自定義處理;
7、腳本執行結果輸出:printf指令的使用及在腳本中使用顔色;
8、bash腳本運作時配置:在腳本中使用選項;
9、bash資料處理:在腳本中使用數組;
10、bash腳本調試及debug功能的實作;
11、視窗程式設計:dialog文本對話框指令及shell程式設計中的應用;
12、基本正規表達式、擴充正規表達式及grep指令精講;
13、sed指令及awk指令精講;
說明:此部分中的内容不會作為一個單獨的部分呈現,而是貫穿于整個課程;其中基礎性部分主要在前面第一部分内容中講解,進階部分及大量的應用在後面部分的内容中會不定期出現。
三、Linux平台常見網絡服務及安全管理
1、系統性能/安全、安全威脅模型和保護方法;系統服務通路控制及服務安全基礎;
2、加密/解密原理及資料安全、密鑰交換的實作、PKI基礎概念及openssl使用詳解;
3、DNS(BIND9)服務原理精講,BIND服務配置、進階應用和安全,并實作以view為核心的适應國内營運商間解析接駁的智能DNS系統;(馬哥團隊實作的項目:www.dns.la,國内應用僅次于dnspod的智能DNS系統;)
4、ftp服務基本原理,以vsftpd為例講解ftp服務的實作,包括虛拟使用者及相關權限定制、安全配置及ftps等進階話題;
5、http協定原理、請求/響應封包格式、SSL會話的原理及https協定;apache基礎、各MPM模型對比、安裝配置及各參數詳解;apache虛拟主機的實作及安全應用(https、suEXEC等);
6、PHP環境配置基礎及與apache整合的多種途徑;MySQL服務入門;LAMP架構的實作;以編譯的方式定制LAMP等;
7、nginx的特性詳解,nginx的基本配置、虛拟主機的實作、URL位址重寫、及安全應用以及LEMP的實作等;
8、web應用架構django基礎概念及其與apache(mod_python及uWSGI等方式)或nginx的整合;
9、×××的基本原理及類型、Open×××的配置及其應用;
10、iptables/netfilter安全體系工具精講;iptables指令的基本應用,如各子指令的功能、通用比對、擴充比對及跳轉目标等;
11、iptables/netfilter進階應用,包括連接配接追蹤、網絡位址轉換、及多種擴充子產品的使用以及七層過濾等進階話題;
12、RPC的基本概念;NFS服務基礎原理及配置;samba服務基礎原理及配置;
13、電子郵件系統原理精講;postfix/dovecot等郵件服務工具的配置和應用,smtps、pop3s、imaps等進階安全應用的實作;以案例為基礎講解postfix、mysql、ldap、虛拟域、虛拟使用者、身份驗證、郵件加密、webmail、POP、IMAP服務的整合應用;
14、nss的原理及配置;pam的基礎概念、常用子產品講解及系統預設的配置講解;
四、MySQL資料庫從入門到精通
1、關系型資料庫系統及SQL相關概念詳述;MySQL特性、發展曆史及體系結構詳解;
2、MySQL及MariaDB安裝:rpm方式、編譯好的通用二進制方式及編譯的方式;單執行個體MySQL服務的啟動及停止等服務控制;
3、MySQL配置檔案格式詳細說明;MySQL伺服器變量、狀态變量的作用域及檢視方式,伺服器變量值的調整方式;
4、MySQL的sql_mod;管理MySQL資料庫、表、視圖和索引(DDL語句);管理MySQL資料(DML語句);
5、多表查詢、聯合查詢及子查詢;
6、MySQL使用者管理:建立和删除、權限的授予及取消、資源使用能力控制等;
7、關系資料庫的事務、在MySQL中使用事務;MySQL鎖及其應用;MySQL隔離級别及其特性詳解;
8、存儲引擎及其屬性配置、MySQL表維護;
9、資料庫配置類型及配置政策詳解;mysqldump、xtrabackup、LVM快照等備份工具在MySQL資料庫備份中的使用;MySQL資料庫恢複;
10、關系型資料庫索引類型詳解;MySQL查詢分析及其索引的定制;
11、MySQL日志檔案管理:查詢日志、慢查詢日志、二進制日志、中繼日志、事務日志及錯誤日志;
12、MySQL複制精講,包括主-從、主-主等架構及基于SSL加密傳輸的實作,其它常見的架構形式及優劣比較;MySQL 5.6基于GTID的複制技術及多線程複制技術;
13、MySQL讀寫分離、連接配接池及sharding技術:介紹mysql_proxy、sql_relay、amoeba及cobar等;以前三者其中之一來介紹讀寫分離的實作;
14、中小型企業低成本的MySQL高可用叢集的解決方案:MySQL+corosync/openais+drbd的原理及其實作;
15、PhpMyAdmin、mysql-gui-tools和MySQL Front等第三方工具的使用;
16、以MySQL應用為中心調優硬體、系統及MySQL服務;
五、叢集/存儲專題
1、詳述Linux系統叢集體系結構、類型及應用方案;
LVS專題
2、Linux虛拟伺服器LVS原理,詳細講解其類型及排程方法等;
3、LVS-NAT、LVS-DR的配置及以之實作apache、nginx、ssh等負載均衡應用,并詳細比較此兩種實作方式的不同及各自的應用場景;
4、LVS持久性連接配接應用環境理論及實作;FW方式實作LVS的affinity應用;
5、編寫bash腳本實作對realserver健康狀态監控,實作realserver故障隔離及自動重新上線等功能;
高可用服務專題
6、高可用叢集原理及Heartbeat、openais/corosync等解決方案原理精講;
7、Heartbeat安裝、配置及以web為例實作高可用環境;
8、Hertbeat資源配置方式及維護;使用heartbeat-gui實作基于圖形化方式對叢集進行管理;
9、Corosync/OpenAIS高可用叢集解決方案原理及實作方法;基于案例詳解生産環境中應用Pacemaker配置實作高可用叢集的方法;(一步步以完全手動的方式實作Linux系統上的HA叢集);
10、資源管理原理、類别、LSB腳本的編寫等及資源管理的定義;基于pacemaker的高可用環境下資源管理詳解;Stonith原理、類别及其實作方法;
11、RHCS叢集套件工作原理精講,并從微觀角度介紹其與前述解決方案的異同;RHCS叢集的部署示範;
12、LVS和corosync內建實作高可用director及負載均衡的大規模應用伺服器叢集,包括ldirectord的應用等;
13、高可用服務解決方案keepalived及其實作,以nginx或haproxy為例講解其雙主模型的實作;
14、RAID、NAS、SAN、iSCSI等存儲原理及基于Linux的iSCSI伺服器的實作及應用;講解openfiler、freenas或Nexentastor等開源解決方案的應用;
15、GFS2叢集檔案系統的原理;基于iSCSI講解GFS2的實作;
六、http代理加速、應用伺服器
6.1 web服務進階應用
1、http協定的緩存原理及常用首部、常用見的反向代了解決方案的功能對比等;
2、varnish服務原理、安裝配置;varnish狀态引擎詳解及VCL程式設計詳解;varnish系統參數高速及生部環境中的部署方案;
3、Nginx upstream和proxy子產品負載均衡和反向代理部署精講;
4、haproxy精講:haproxy功能與特性、常用配置指令、常用排程算法及ACL等;
5、Memcached服務及其在web服務體系中的應用;
6、java、jsp、servlet、HotSpot JVM、J2SE、J2EE及web container等相關技術要點詳解;
7、Tomcat體系結構、安裝配置、連接配接器及與apache或Nginx的整合;Tomcat各叢集模型及其實作案例;
8、各種負載均衡場景中session保持的實作方案及特性對比詳解;
6.2 可擴充web架構
9、分布式檔案系統詳述;常見分布式檔案系統功能與特性對比說明;
10、以MogileFS原理、安裝配置及其應用案例;MogileFS與nginx的整合;
11、CDN技術實作原理;
12、可擴充web服務設計及相關解決方案選擇(日均10萬PV發展至100萬PV,再到1000萬PV站點的擴充思路及部署要點);大規模、高并發、高可用web伺服器群的體系結構、設計及其實作;
13、Web環境壓力測試、系統性能評估、結果分析及優化;
七、虛拟化及IaaS雲技術專題
7.1 Xen虛拟化技術精講
1、X86平台虛拟化技術難點及相關解決方案原理詳解:CPU虛拟化、記憶體虛拟化及IO虛拟化,虛拟化種類及相關特點等;
2、Xen虛拟化基礎;Xen虛拟化技術中排程、中斷、記憶體、IO、網絡及塊裝置的虛拟實作原理;
3、Xen在RHEL6或CentOS6上的安裝、配置及簡單應用;
4、Xen環境中虛拟存儲和虛拟網絡裝置的配置及管理詳解;qemu-img工具詳解;
5、Xen管理工具棧xm及xl從入門到精通;
6、XenServer簡介;
7.2 KVM虛拟化技術精講(12期面授知識及案例大大加強)
7、KVM虛拟化基礎;KVM虛拟化技術實作原理;
8、建構KVM環境:KVM的安裝、配置及應用;
9、基于qemu-kvm指令行工具棧管理kvm;
10、KVM的核心功能:CPU、記憶體、存儲及網絡虛拟化的配置;基于SDL和VNC的圖形顯示功能應用;
11、基于libvirt、virt-intall和virt-manager工具棧管理kvm;
12、半虛拟化技術(virtio)、實時遷移、IO透傳技術及KSM;
13、KVM性能測試及基于KVM應用的Linux系統優化;
14、生産環境中虛拟化技術的應用方案及常用管理工具說明;
7.3 OpenStack雲環境
15、IaaS、PaaS、SaaS雲技術介紹;
16、OpenStack雲棧詳解:Keystone、Glance、Nova、Swift、Horizon等元件的功能、特性及協作流程;
17、OpenStack的網絡模型及Neutron服務;
18、OpenStack的塊存儲服務及Cinder服務;
19、Ceilometer及Heat;
20、具有獨立控制節點、多計算節點及獨立對象存儲節點的全功能OpenStack環境部署案例;
八、自動化運維相關專題
1、自動化運維概述:高效地管理IT資産并滿足複雜多變的業務需求、建構高效IT系統、快速發現和解決IT系統中出現的問題等;
網絡、系統及服務監控類工具
2、SNMP協定原理及Linux系統上的配置及實作應用案例;
3、網絡、系統及服務等相關名額的監控模型及體系結構;
4、zabbix監控系統詳解;(課程内容詳細清單請參見http://mageedu.blog.51cto.com/4265610/1309875;)
5、rrdtool詳解;cacti安裝、配置;編寫腳本基于cacti完成監控功能的定制;
6、Nagios入門、進階及進階應用;nagios監控插件的開發;
預備類工具
7、RHEL/CentOS平台上的無人值守安裝腳本Kickstart;基于PXE完成系統自動化安裝;
8、Cobbler應用詳解:服務原理、配置及應用;
配置管理類工具
9、ansible指令關聯工具的使用;
10、開源的軟體自動化配置和部署工具puppet詳解;(課程内容詳細清單請參見http://mageedu.blog.51cto.com/4265610/1308671)
11、saltstack(相當于Func加強版+Puppet精簡版)詳解;
說明:如果課堂時間不夠充分,第5和個第6個将會以視訊方式提供,而第10個和第11個則隻會選講一個;
九、Linux系統原理基礎及系統調優
1、PC Server結構概述及Linux系統體系結構概述;
2、Linux系統程序相關理論(如排程方法、搶占、優先級、排程類别等),程序性能監控、分析及調優方案;
3、CPU及緩存架構、緩存一緻性算法及記憶體通路模型;
4、Linux記憶體架構體系(如記憶體區域、MMU、TLB、slab、夥伴系統、頁及頁框等相關理論知識),記憶體使用率實時監控、性能分析及調優方案;
5、Linux系統IO體系架構及裝置驅動;磁盤IO體系架構(如緩存架構體系、pdflush、bio、磁盤隊列、IO排程器等相關理論知識),磁盤性能實時監控、分析及調優方案;
6、Linux虛拟檔案系統體系架構及相關理論知識(如塊、inode、日志等)、常見檔案系統類型及使用iozone等工具對檔案系統性能的評估與比較,并結合實際項目需要選擇最佳檔案系統;
7、中斷及異常相關理論知識(如信号、IRQ、程序上半部和下半部、中斷處理器等)及在系統調優中的應用;
8、Linux網絡子系統架構體系及相關理論知識(如socket buffer、NAPI、kernel buffer等),網絡子系統性能的監控、分析及調優方案的設計及實作;
9、基于Linux系統調優理論知識進行實際項目調優,如MySQL伺服器的調優(系統部分)等;
10、系統性能評估方法、名額;
11、常用工具如sar、htop、dstat、iostat、perf、netpef、iperf及iozone等的使用,以之評估作業系統性能的方法;
12、以web服務及mysql服務為例,詳細講解其優化的思路、方案及實作過程;
十、海量資料并行處理系統(根據課程程序,中間詳略會有調整)
10.1 NoSQL
1、CAP理論模型及NoSQL基礎理論;NoSQL資料庫特性、技術流派及代表性項目;
2、MongoDB體系結構、安裝配置及應用;(具體課程清單請參照http://mageedu.blog.51cto.com/4265610/1317270)
10.2 Hadoop
3、MapReduce基礎概念、運作架構、排程模型等;
4、HDFS基礎概念、指令行接口、資料序列化、資料流等;
5、Hadoop僞分布式及完全分布式模型的建構、測試及應用;
6、生産環境中Hadoop多種常用屬性的調優及其注意事項等;
7、Hadoop生态系統及常用元件說明;
8、Hadoop排程算法及其選用;
9、Hadoop硬體選型要點;
10、Zookeeper功能、特性、安裝配置及應用;列式資料庫HBase基礎原理、安裝配置及其應用;
11、資料倉庫Hive基礎原理、安裝配置及應用;
12、講解flume/scribe/chukwa/kafka日志收集系統其中之一;
13、使用工具完成Hadoop自動化部署;
十一、補充類進階專題(根據空餘時間選擇講解)
1、rpm包SPECS檔案詳解、RPM包制作及包簽名的實作;
2、LDAP協定原理及常見的實作;OpenLDAP的安裝、配置及應用;
3、基于busybox和核心定制制作微型Linux系統,并通過編譯的方式為之提供相應的服務以進一步了解Linux系統;LFS系統及其實作;
5、redis體系結構、安裝配置及應用;
6、ats功能、特性、安裝配置及應用;
7、logstash:功能豐富的日志收集分析系統;
8、python腳本程式設計基礎;
十二、職業素質課程
1、個人商業模式模型建構及優勢分析;職場禮儀;