1. Fundamental about Linux
2. Fundamental about Distributed Computing
3. Storage
3.1. Architecture/Functional scope
3.2. Fundamentals
3.2.1. Traditional storage solution: SAN, NAS, DAS
3.2.2. Distributed storage solution: NFS, GlusterFS, Lustree, DRBD.
3.2.3. Practice: vSAN, vNAS, NFS, GlusterFS
3.3. Access-layer storage solution: Block, Object, File
3.4. Block Storage
3.4.1. Ceph
3.4.1.1. Architecture/Functional scope
3.4.1.2. Deployment models (practice)
3.4.1.2.1. with SAN, NAS
3.4.1.2.2. without SAN, NAS
3.4.1.3. Tuning
3.4.1.4. Scaling
3.4.1.4.1. HA
3.4.1.4.2. LB
3.5. Object Storage
3.5.1. OpenStack Swift
3.5.1.1. Deployment models (practice with DevStack)
3.5.1.2. Tuning
3.5.1.3. Scaling
3.5.1.3.1. HA
3.5.1.3.2. LB
4. Networking
4.1. IPv4/IPv6
4.2. Fundamentals
4.2.1. OSI, TCP/IP
4.2.2. DHCP/DNS
4.2.3. Firewall (IPTables)
4.2.4. Flat, Overlay (VLAN, VxLAN, GRE)
4.2.5. Bridge, NAT
4.2.6. QoS
4.2.7. Routing
4.3. Linux Bridge/OpenvSwitch
4.3.1. Architecture/Functional scope
4.3.2. Pros/Cons in Comparison
4.3.3. Network Namespace
4.3.4. Bonding/Teaming
4.3.5. Veth
4.3.6. Macvlan, Macvtap, Ipvlan, Tun/Tap
4.3.7. Tunnels
4.3.8. QoS
4.3.9. Practice in KVM
4.3.9.1. VLAN/VxLAN/GRE
4.3.9.2. Tun/Tap, Macvlan, Macvtap, IPvlan
4.4. OpenStack Neutron
4.4.1. Architecture/Functional scope
4.4.2. Deployment models (practice with DevStack)
4.4.2.1. With LinuxBridge
4.4.2.2. With OVS
4.4.2.3. Connect 2 different VM via Neutron
4.4.3. Tuning
4.4.4. Scaling
4.4.4.1. HA
4.4.4.2. LB
5. Virtualization
5.1. Hypervisor
5.1.1. Hypervisor type
5.1.1.1. Full virtualization
5.1.1.2. Para-virtualization
5.1.1.3. Hybrid (PVHVM)
5.1.2. QEMU
5.1.3. KVM
5.1.3.1. virsh CLI (required basic knowledge with XML)
5.1.3.2. virt-manager
5.1.3.3. oVirt
5.1.4. XEN
5.1.4.1. xen center
5.1.4.2. xen orchestra
5.1.5. PCI/USB pass-through
5.1.6. Lab with KVM-XEN (QEMU) in distributed environment
5.2. Container
5.3. OpenStack Nova
5.3.1. Architecture/Functional scope
5.3.2. Deployment models (practice with DevStack)
5.3.2.1. With KVM
5.3.2.2. With XEN
5.3.3. Tuning
5.3.4. Scaling
5.3.4.1. HA
5.3.4.2. LB
5.3.5. Advance with KeyStone
5.3.6. Advance with Cinder
5.3.7. Advance with Neutron
6. Authentication/Authorization
6.1. LDAP (AD), Kerberos
6.2. Token
6.2.1. PKI/PKIz
6.2.2. Fernet
6.2.3. UUID token
6.3. Multi-factor authenticate
6.4. RBAC
6.5. OpenStack KeyStone
6.5.1. Architecture/Functional scope
6.5.2. Deployment models (practice with DevStack)
6.5.2.1. With UUID
6.5.2.2. With Fernet
6.5.2.3. With LDAP/AD
6.5.2.4. With multi-factor authenticate
6.5.3. Tuning
6.5.4. Scaling
7. Infra Architecture
7.1. Sizing
7.2. Monitoring
7.2.1. Monitoring metrics understanding
7.2.1.1. SW Metrics (CCU, Cache, Req/res time, timeout..)
7.2.1.2. HW Metrics (CPU, RAM, IOPS, Network RW..)
7.2.2. Monitoring scope
7.2.2.1. HW
7.2.2.1.1. Servers (physic/virtual)
7.2.2.1.2. Networking (physics/virtual)
7.2.2.1.3. Storage (SAN/NAS)
7.2.2.1.4. DC utilities (Rack, Chassis, Air Conditioner..)
7.2.2.2. SW
7.2.2.2.1. Lower layer (kernel, hypervisor, iptables..)
7.2.2.2.2. Middle tier layer (platform, web server, SDS, SDN, gateway, proxy..)
7.2.2.2.3. Upper layer (appliances, services..)
7.2.3. Monitoring solution
7.2.3.1. Zabbix
7.2.3.2. Prometheus
7.2.3.3. Nagios
7.3. Logging
7.4. Profiling/Benchmarking
7.4.1. Profiling metrics understanding
7.4.1.1. HW
7.4.1.2. SW
7.5. Architecture Design Pattern
7.6. DevOps mindset
7.7. Upgrade/Update
8. Appliance Architecture
8.1. Software Design Pattern specific in Cloud environment
8.1.1. Event Sourcing/CQRS
8.1.2. Circuit Breaker
8.1.3. Retry