Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Development of Cloud Native Network Functions

    A tantárgy neve magyarul / Name of the subject in Hungarian: Cloud Native hálózati funkciók fejlesztése

    Last updated: 2024. március 27.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics
    Computer Engineering, BSc
    Infocommunications Specialization
    Course ID Semester Assessment Credit Tantárgyfélév
    VITMAC12 5 2/2/0/v 5  
    3. Course coordinator and department Dr. Sonkoly Balázs,
    4. Instructors Dr. Balázs Sonkoly, associate professor, TMIT
    István Pelle, research assistant, TMIT
    Felicián Németh, assistant research fellow, TMIT
    5. Required knowledge Programming, Communication networks
    6. Pre-requisites
    Ajánlott:
    Mandatory: Programming 1-3, Communication Networks
    Recommended: Software Techniques
    7. Objectives, learning outcomes and obtained knowledge

    The aim of the course is to introduce the "Cloud Native" paradigm, which can be used for the development of modern network functions, and to discuss operational methods applicable in cloud environments. These network applications are capable of exploiting various services offered by cloud systems and are inherently optimized for cloud environments, based on new development methods and design patterns. In addition to the platforms provided by major public cloud providers (Amazon AWS, Google Cloud Platform, Microsoft Azure), open-source solutions (such as Kubernetes) are also available, which provide various programming interfaces ("cloud APIs") to developers. This alleviates many burdens from the programmer's shoulders and enables the rapid development of network applications capable of serving millions of users or devices. The course aims to showcase these toolsets and development methods through concrete examples. Furthermore, to develop good software for this new environment, it is essential to have a basic understanding of how these systems operate, the new computing models (e.g., Serverless, Container as a Service, Function as a Service), as well as the networking solutions ensuring continuous connectivity of components and the constraints arising from them. Through practical examples, students gain proficiency in using the tools introduced, experimenting with them on leading cloud platforms (e.g., Amazon AWS) and the open-source Kubernetes platform.

    Upon successful completion of the course, students will:
    • (K2) Understand the fundamentals of the Cloud Native concept and the new computing models (Serverless, Container as a Service, Function as a Service), as well as the networking technologies supporting them.
    • (K1) Familiarize themselves with the available major public and private platforms and their main characteristics.
    • (K2) Understand and comprehend the basics of operation of a public and an open-source platform, the impact of platform and network operation on software.
    • (K3) Be able to independently design and implement microservice-based Cloud Native applications.
    • (K3) Acquire and utilize the tools, cloud APIs that facilitate the development and operation of Cloud Native network applications.
    • (K3) Be capable of independently debugging, monitoring, and performance testing of Cloud Native network applications.
    • (K2) Understand and comprehend the operational tasks of Cloud Native network applications.
    • (K3) Be able to independently estimate the operational costs of Cloud Native network applications.

    8. Synopsis The detailed topics of the lectures are as follows:

    1. Introduction, historical overview. Introduction to Microservice-based software design, benefits, drawbacks, and consequences. Practical examples of Microservice-based applications.
    2. Cloud Native and serverless computing, different implementation options: container-based (CaaS) vs. function-based (FaaS) models. The role of the Cloud Native paradigm in 5G and future 6G mobile networks.
    3. Public CaaS/FaaS platforms (AWS, GCP, Azure) and private, open-source solutions (Kubernetes, Knative). Hybrid deployments. Benefits, drawbacks.
    4. Security issues, access control (between users and software components). Practical examples - AWS: EC2 (Elastic Compute Cloud), Security Groups, VPC (Virtual Private Cloud), Identity and Access Management. Practical examples - Kubernetes: Pods, Services, API Server.
    5. Edge cloud extensions to CaaS/FaaS platforms to support latency-sensitive applications, the convergence of 5G/6G mobile networks with cloud systems. What this means for applications.
    6. Basic network technologies and functions for CaaS/FaaS platforms: address translation, packet filtering, DHCP, DNS, Software-Defined Networking (SDN), Network Function Virtualization (NFV).
    7. Using different platform services and cloud APIs in applications, available SDKs. Presenting concrete solutions through examples in different programming languages.
    8. Storage and Database services. Practical examples - AWS: EBS (Elastic Block Store), S3, DynamoDB, ElastiCache (Redis, Memcached).
    9. Event-driven programming in the cloud environment, FaaS model and practical implementations, benefits, drawbacks. Presenting application examples from various domains.
    10. Practical examples - AWS: Lambda, API Gateway, SQS, SNS, Step Functions. Practical examples - Kubernetes: Knative, Kubeless.
    11. The impact of the cloud platform on the application, performance issues. Monitoring, debugging, troubleshooting techniques.
    12. Practical examples - AWS: X-Ray, CloudWatch. Practical examples - Kubernetes: Prometheus, Grafana.
    13. The effect of physical and virtual networks responsible for connecting components on the application, performance issues. Network monitoring and troubleshooting techniques.
    14. Pricing models, cost optimization opportunities. Design patterns, best practices, case studies with concrete application examples.

    The detailed topics of the exercises/labs are as follows:

    1. Basics of public cloud platforms. For example, AWS: EC2 (Elastic Compute Cloud), Security Groups, VPC (Virtual Private Cloud), Identity and Access Management.
    2. Virtualization technologies: virtual machines and containers.
    3. Using an open-source private cloud platform. For example, Kubernetes: Pods, Services, API Server.
    4. Basic network functions and technologies, demonstrating their operation in Kubernetes environment (address translation, packet filtering, SDN, NFV).
    5. Storage and Database services in public cloud environments. For example, AWS: EBS (Elastic Block Store), S3, DynamoDB, ElastiCache (Redis, Memcached).
    6. Database services in private cloud environments. For example: Redis, Memcached.
    7. Developing example network applications using the technologies introduced so far.
    8. Practical applications of the FaaS model in public cloud environments. For example, AWS: Lambda, API Gateway, SQS, SNS, Step Functions.
    9. Practical applications of the FaaS model in private cloud environments. For example, based on Kubernetes: Knative, Kubeless.
    10. Development and testing of FaaS example applications.
    11. Monitoring, troubleshooting in public cloud environments. For example, AWS: X-Ray, CloudWatch.
    12. Monitoring, troubleshooting in private cloud environments. For example, Kubernetes: Prometheus, Grafana.
    13. Network troubleshooting and monitoring in private and edge cloud environments. For example: Lightweight Kubernetes (k3s), AWS IoT Greengrass.
    14. Development, testing, performance measurement, and cost planning of complex cloud applications.

    9. Method of instruction The course material is presented in lectures and practical sessions, scheduled for 2 hours each per week. During the lectures, theoretical concepts are introduced, and high-level overviews of the materials necessary for the practical sessions are provided.
    The practical sessions involve guided problem-solving with the assistance of instructors. Practice exercises are assigned to deepen understanding, which can be completed in provided work environments. Optional homework assignments issued during practical sessions can earn bonus points, up to a maximum of 10% of the exam score.
    Part of the practical sessions takes place on a public cloud service provider platform, utilizing recommended training materials (e.g., AWS Academy: Cloud Foundations, Cloud Developing), for which a virtual work environment is provided.
    The other part of the practical sessions occurs on open-source platforms (e.g., Kubernetes) in a virtual work environment.
    Certain practical sessions are conducted in-person, while others are held online.
    10. Assessment During the semester:
    During the semester, obtaining a signature and being admitted to the exam requires at least a satisfactory completion of the midterm exam. The midterm exam is conducted online on a platform (e.g., Google Quiz) but may also require physical presence.
    During the exam period:
    During the exam period, the written exam takes place online on a platform (e.g., Google Quiz) but may also require physical presence. The exam includes theoretical test questions and personalized practical tasks for everyone, which can be solved in the provided work environments.
    11. Recaps A failed midterm exam during the semester can be made up for during the makeup exam. The unsuccessful makeup exam can be retaken once during the makeup week for an additional fee.
    12. Consultations Based on individual consultation with the instructor.
    14. Required learning hours and assignment
    Kontakt óra56
    Félévközi készülés órákra24
    Felkészülés zárthelyire16
    Házi feladat elkészítése
    Kijelölt írásos tananyag elsajátítása
    Vizsgafelkészülés54
    Összesen150
    15. Syllabus prepared by Dr. Balázs Sonkolyassociate professor, TMIT