Cloud Platforms and Infrastructure as Code (6 CFU)

Università degli Studi di Napoli Federico II

Corso di Laurea Magistrale in Ingegneria Informatica

Prof. Roberto Canonico

Course syllabus

A.A. 2024-25

Students are invited to:
  1. enroll into the course here
  2. join the course team on Microsoft Teams by using the code that is accessible here
    (access restricted to enrolled students)

LIST OF LECTURES

Lesson no. Date Topics
1 06/03/2025 Course introduction.
Datacenter architecture and organization. Rack layout.
Air conditioning and cooling plant. UPS and emergency generators.
Energy efficiency of a datacenter. Power Usage Effectiveness.
Datacenter Tiers (UpTime Institute classification).
Modular datacenters.
Small-scale sample datacenter layouts.
Ethernet technology evolution.
Transmission media used in datacenter networking: copper cables (UTP and STP/FTP), optical fibers (MMF and SMF), Twinax.
10 Gigabit Ethernet implementations and media. IEEE 802.3ae, IEEE 802.3ak, IEEE 802.3an.
Transceivers. GBIC, SFP, SFP+, QSFP/QSFP+.
2 07/03/2025 Switching theory fundamentals. Head-of-Line blocking.
Clos networks. Clos theorem.
Datacenter networking infrastructure.
Datacenter networks: access layer. ToR and EoR organizations. Datacenter networks: aggregation layer.
Oversubscription ratio. Bandwidth aggregation techniques.
IEEE 802.3ad Link Aggregation. IEEE 802.1ax Link Aggregation Protocol LACP.
Datacenter network infrastructure evolution.
Leaf-spine topology.
Some examples of leaf and spine commercial switches and large scale datacenter networks.
3 13/03/2025 Virtualization technologies. The virtualization concept.
Different approaches to IT resource virtualization. Type-1 and Type-2 hypervisors.
Different kinds of hypervisors and virtualization platforms. VMware ESXi. KVM. Proxmox.
virsh and Virtual Machine Manager.
Virtual switches in type-1 and type-2 hypervisors.
VM networking in a Linux based host.
Software switches. Linux Bridge. brctl command.
Open vSwitch: features and architecture. ovs-vsctl command.
Macvlan. VEPA, bridge, private and passthru modes.
4 14/03/2025 LAB-01: Creation of VMs with virt-manager and KVM. Use of cloud-init.
Storage technologies for datacenters: DAS, NAS and SAN. SSD disks for datacenter servers.
SCSI. Fibre Channel. Network convergence. Fiber Channel over Ethernet (FCoE).
iSCSI. Implementation of iSCSI in Linux: target and initiator.
5 20/03/2025 Container-based virtualization. Docker. Docker Engine and CLI.
States of a Docker container.
Docker images and layers. Docker build and Dockerfile. Docker Registries.
Persistent data management strategies for Docker images. Volumes.
Docker networking. Use of Linux Bridge in Docker. User-created networks. Bridge networks and port mapping.
6 21/03/2025 YAML.
Docker Compose. Networking in Docker Compose.
LAB-02: Docker Compose demo: deployment of a web app base on 3 containers.
Software routers. Quagga and FRR.
ContainerLab.
7 27/03/2025 More info on Dockerfile syntax. Difference between CMD and ENTRYPOINT instructions in Dockerfile.
Creation of Dockerfile for a containerized Python application.
LAB-03: ContainerLab demo with FRR and OSPF.
8 04/04/2025 Datacenter networks and alternate paths exploitation: multipathing.
Multipathing at Layer 2 in a leaf-spine topology: TRILL, SPB, VLT.
Multipathing at Layer 3. Equal cost multi-path (ECMP).
Improving ECMP load balancing with Flowlets.
Multitenancy in datacenter networking.
Virtual networking techniques in a datacenter. Multi-layer switches and Virtual Switch Interfaces.
IEEE 802.1ad (Q-in-Q).
Tunneling protocols and overlays. VXLAN. GRE and NVGRE. MPLS in datacenters.
LAB-04: Emulation of a Leaf-Spine datacenter topology with OSPF in ContainerLab.
9 10/04/2025 Kubernetes. Components of a Kubernetes cluster.
General Kubernetes entities: pods, services, ingress, config map, secret, persistent volume, deployment, replica set, stateful set.
Intro to Kubernetes design patterns.
10 11/04/2025 LAB-05: Emulation of a Leaf-Spine datacenter topology with BGP, EVPN and VxLAN in ContainerLab.
General ideas of Cloud Computing. Cloud service models: IaaS, PaaS, SaaS.
Cloud deployment models (public, private, hybrid, community).
Elastic computing. Horizontal vs vertical scalability in the cloud.
Cloud standards. Cloud migration.
Introduction to Amazon AWS Cloud services.
11 15/04/2025 Minikube. The kubectl CLI tool. Creation of pods, service, replica set and deployment with kubectl.
LAB-06: Kubernetes demo: deployment of multi-pod applications in a Minikube cluster.
12 24/04/2025 IAM, EC2, VPC and S3.
IAM users and groups. Console authentication with MFA. Access keys.
Amazon aws CLI tool.
LAB-07: Practical demo of Amazon AWS EC2 and S3.
13 08/05/2025 AWS: Elastic Load Balancer.
LAB 08: AWS ELB and dynamic Auto Scaling of EC2 instances.
Introduction to AWS Lambda. An AWS Lambda function in Python: coding and testing.
Introduction to REST APIs.
14 09/05/2025 Microservices orchestration. The workflow concept.
Orkes Conductor. Conductor core concepts: task, worker, workflow.
Creation of a workflow in Orkes Conductor Cloud Edition.
15 15/05/2025 Kubernetes networking. Pod and Service networking. Container Network Interfaces (CNIs).
ISTIO Service Mesh. Some preliminary remarks on Kubernetes in multi-cluster environments and the LIQO solution.
16 16/05/2025 Implementing a REST API in Python with Flask.
Workflow-based Web Service orchestration with Conductor OSS (dockerized release).
Workflows with operators switch and fork/join.
17 21/05/2025 Seminario su Cloud Networking. Cristian Perissinotto (CISCO).
18 22/05/2025 Introduction to OpenStack.
OpenStack: a quick tour with DevStack.
OpenStack dashboard and CLI commands.
19 23/05/2025 TCP performance problems in datacenter networks. TCP Incast.
Datacenter-specific TCP variants: DCTCP.
Evolution of the Dropbox infrastructure.
20 27/05/2025 Seminario "Serverless computing in AWS ed orchestrazione tramite approccio IaC".
Claudio Perrotta e Sabrina Russo (Epsilon).
21 29/05/2025 Cloud Automation. Terraform. LAB: Use of Terraform with Docker and AWS providers.
22 30/05/2025 Network Automation and Network Programmability.
Lifecycle of a network device.
Solutions for day-0, day-1, day-2 and day-n network automation.
NetDevOps pipeline and Continuos Integration/Continuos Development (CI/CD) for network as code.
YANG data models. Encoding of YANG data models: XML vs JSON.
NETCONF and RESTCONF protocols.
Use of the netmiko and ncclient Python libraries for remote device configuration.

Lecture notes

Lecture notes will be made available at my official web page in the "Course Materials" section (link)

Suggested textbooks

  • Cloud Native Data Center Networking: Architecture, Protocols, and Tools (1st Edition).
    Dinesh G. Dutt.
    O'Reilly Media, 2019
    ISBN: 978-1492045601
  • Network Programmability and Automation, 2nd ed..
    Matt Oswalt, Christian Adell, Scott S. Lowe, Jason Edelman.
    O'Reilly Media, 2023
    ISBN: 978-1098110833
  • Cloud Networking: Understanding Cloud-based Data Center Networks.
    Gary Lee.
    Morgan Kaufmann Pub, 2014
    ISBN: 978-0128007280

Supplementary readings

  • Learning OpenStack Networking (Neutron): Architect and Build a Network Infrastructure for Your Cloud Using Openstack Neutron Networking.
    James Denton.
    Packt Publishing, 2014
    ISBN: 978-1783983308
  • Cloud computing per applicazioni web.
    J. Barr.
    Apogeo, 2010
    ISBN: 978-8850329083

Standards documents

Commercial Building Telecommunications Cabling Standard - Part 1: General Requirements
Commercial Building Telecommunications Cabling Standard - Part 2: Balanced Twisted-Pair Cabling Components
Commercial Building Telecommunications Cabling Standard - Part 3: Optical Fiber Cabling Components
Telecommunications Infrastructure Standard for Data Centers
(SP 800-145) Peter Mell (NIST), Tim Grance (NIST) - September 2011
Virtual eXtensible Local Area Network (VXLAN):
A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks

Further references

Useful references for running Open vSwitch containers in GNS3

Papers

Web sites of interest

News

Photo galleries

Videos of interest for this course


Exam schedule a.a. 2024-2025


roberto.canonico at unina.it

Last update: June 3, 2025