Cloud application architecture - course RUB 44,900. from IBS Training Center, training 25 hours, Date November 26, 2023.
Miscellaneous / / December 05, 2023
This course is the starting point for learning how to design cloud systems. The main goal is to introduce the listener to the features and challenges of the cloud, as well as show how to use the basic cloud tools. This is all - both in theory and supported by the practice of designing an application in teams.
After an introductory lecture on “where to find the cloud” and what types there are, and a brief overview of the main technologies at the heart of cloud computing, we will move on to system design.
Planning points of presence, organizing incoming and outgoing traffic, content delivery - these module topics are about building virtual cloud networks and serving users. Next, we will study how functional elements are deployed: server and serverless options. Let's consider options for working with constant data, and which DBMS are applicable in which case. Let's complete our introduction to the building blocks by solving integration problems.
Scalability, performance, security and fault tolerance - we will study and apply the basic tactics for achieving these system qualities.
Automation is important for efficient operation of cloud systems. IaaS/PaaS providers allow us to automatically allocate and maintain resources, organize monitoring and reactions to changes in the application and failures. We will look at the most important scenarios.
Topics covered:
1. Cloud Computing Basics
What is the “cloud” and where is it?
Types of "clouds".
Technologies behind cloud computing.
New service models: IaaS, PaaS, SaaS.
Cloud economy.
2. Cloud Application Design Principles
Minimal cloud application.
Building blocks of cloud applications.
Types of “building blocks”: computing, storage, network infrastructure, managed services.
Cloud-native applications.
Multitenancy.
Design challenges: communications, scaling, working with state.
3. Designing Application Boundaries
Types of traffic, virtual networks.
Routing with and without virtual private networks.
Regions and areas of presence.
Processing external requests: dynamic and static content.
Processing requests from internal clients.
Traffic payment models. Billing structure.
4. Compute Design
“Classic” servers, “elastic” servers, application execution environments, containerization, serverless computing.
Basic patterns: scalable monolith, composite application.
5. Persistent Data Design
Basic storage capabilities: block, object and file storage.
Key factors for evaluating data storage methods: presentation model, consistency, fault tolerance and availability, load.
Available database options: relational, key-value, document, column families, others.
Storage options.
6. Solving problems of coordination and integration
Remoting calls.
Synchronous and asynchronous communication.
Brokers, Queues, Kafka, API Gateways and Service Mesh.
7. Automation
Briefly about the possibilities for automation in development and operation.
Selecting metrics.
8. Addressing system qualities
Network performance, traffic localization.
Security, fault tolerance.
Prevent cascading failures.
9. Some architectural methods for designing cloud applications
The Twelve-Factors App, Well-Architected Framework.