Cloud Applications Architecture

Get an overview on cloud application design. This training covers the basic principles of building cloud systems and the primary building blocks offered by IaaS/PaaS/SaaS vendors (as well as methods and specifics of using them). You値l practice building a virtual network, outline the application structure, and make designs to ensure quality attributes.
Code: ARC-016
Duration: 25 hours


Our training is a starting point for learning how to design cloud systems. Its main goal is to give you an introduction into the specifics and challenges of cloud and how to use the primary cloud toolset. We値l start with the origin and types of cloud and an overview of the main technologies that enable cloud computing and then move on to designing cloud applications.

We値l look at building virtual cloud networks, where we will discuss planning points of presence, organizing inbound and outbound traffic and content delivery. You値l learn how to deploy the app痴 functional elements both server-based and serverless options. We will review capabilities of working with persistent data, selecting DBMS for various cases, and complete the introduction to cloud app building blocks (by solving integration tasks).

We値l also be covering how to study and apply the main tactics for achieving system qualities such as scalability, performance, security, and fault tolerance. Automation is extremely important for efficient operation of cloud systems. IaaS/PaaS providers enable us to automatically provision and manage cloud resources, set up monitoring, and react to changes and failures in our application. We値l discuss the most important automation scenarios.


Cloud computing fundamentals
  • What is cloud and where is it located?
  • Technologies that enable cloud computing
  • Types of clouds
  • New service models: IaaS, PaaS, SaaS
  • Cloud economy

Principles of cloud application design
  • A minimal cloud app
  • Cloud application building blocks
  • Types of blocks: computing resources, storage, network infrastructure, managed services
  • Cloud-native applications
  • Multitenancy
  • Design challenges: communications, scalability, handling the state

Designing application boundaries
  • Types of traffic, virtual networks
  • Routing with and without virtual private cloud networks
  • Regions and points of presence
  • Handling external requests: dynamic and static content
  • Handling internal requests
  • Traffic payment models
  • Billing structure

Designing computations
  • 鼎lassic servers, 兎lastic servers, application runtime environments, containerization, serverless computations
  • Main patterns: scalable monolith, composite application

Designing persistent data stores
  • Basic storage capabilities: block, object, and file storage
  • Key factors to assess data storage methods: data model, consistency, fault tolerance and availability, load
  • Available DB options: relational, key-value, column families, etc

Solving coordination and integration tasks
  • Challenges of remote communication
  • Synchronous and asynchronous communication. Brokers, queues, Kafka, API gateways, and Service Mesh

  • Overview of automation capabilities for design and operation
  • Metrics selection

Addressing system qualities
  • Network performance, traffic locality
  • Security, fault tolerance
  • Preventing cascading failures

Methods for cloud application design
  • The Twelve-factor App, Well-Architected Framework


  • Understand cloud computing, its economic foundations and technologies
  • Learn how to plan a high-level structure of cloud apps (network, computing resources, and storage), finding the balance between cost and implementation time
  • Learn how to build reliable, flexible, and scalable systems
  • Identifying potential bottlenecks and points of failure
  • Get prepared for further specialized and related trainings (high-load systems, Big Data, distributed DBs)

Target Audience

  • Software Architects
  • System Designers
  • Technical Leads / Senior Developers
  • Cloud Project Managers
  • Business Analysts
  • Analysts


  • Fundamentals of application architecture
  • Basic knowledge in TCP/IP networks, virtualization principles

Trainer in Online
Radu Stefanescu Senior Java Developer
Radu is an expert developer and has been working in the tech industry for more than 10 years. During the course of his career he has held several roles ranging from Senior Consultant and Development Team Lead to Senior Java Developer. He has worked with various technologies such as Java 8, Spring/SpringBoot/SpringCloud, RESTful API, RxJava, Java for Android, MongoDB, Python, Tensorflow and many more.

His passion for teaching was born during the time he spent as a Team Lead mentoring his colleagues. His activities in teaching include not only training facilitation but also being involved in organizations such as TedXBucharest and Code for Romania.

The experience he has gained in all this time makes him uniquely qualified to deliver edge cases and best practices for various programming fields such as: Java/C++ Development, Database Programming, Design Patterns and Clean Code.
Schedule in Online Prices
Course is scheduled in: Online
16.08.2021 - 20.08.2021
Time: 09:00-14:00
Timezone: UTC +3
City: Online
Duration: 25 hours
Language: English
Radu Stefanescu
Senior Java Developer
-15% €500
Register for the next course
Registering in advance ensures you have priority. We値l notify you when we schedule the next course on this topic
16.08.2021 - 20.08.2021
Time: 09:00-14:00
Timezone: UTC +3
City: Online
Duration: 25 hours
Language: English
Radu Stefanescu
Senior Java Developer
-15% €500
Register for the next course
Registering in advance ensures you have priority. We値l notify you when we schedule the next course on this topic
Online €500
Bucharest €500
Krakow €500
Wroclaw €500

Invoices for the course will be issued in local currency. All fees above can change according to training location and delivery mode and are subject to change while scheduling. Price does not include VAT.

Courses you may be interested in:

Sign up

Choose dates
First Name*
Last Name*
Your Comment
Still have questions?
Connect with us
Thank you.
Your request has been received.
Thank you!
The form has been submitted successfully.