Description
The goal of the course is to outline key concepts, principles and approaches used to design applications where high-performance, scalability, and resiliency are first-class quality attributes.
By the end of this course, the candidates will have acquired in-depth knowledge about how to design, implement high-performance, scalable, and resilient applications, and how to create a proper testing plan.
Key concepts covered in this course
- Different metrics are used to quantify performance, scalability, and resilience, such as response time, latency, throughput, percentiles, availability, etc.
- Architectural tactics and patterns to support high-performance, scalability, and resiliency (e.g. synchronous vs asynchronous, data push vs. data pull, caching, circuit breaker, bulkheads, back pressure, throttling, etc.)
- Modern architectural styles that might be used while designing high-performance, scalable, and resilient applications, with their pros and cons (e.g. microservices, event-driven, event-sourcing, reactive, serverless, lambda, etc.).
- Networking assets used to complement the architectural styles (e.g. API Gateway, load balancer, service discovery, content delivery network)
- Advanced high-performance development techniques such as NUMA, large pages, C-states, CPU Governors, RamFS/TmpFS, SSD I/O Scheduler, Kernel TCP Buffers, etc.
- How to elaborate a test plan with a focus on load testing
Agenda
- Architectural concepts pertaining to high-performance, scalable, and resilient applications. Quality attributes metrics
- Architectural tactics, patterns, and styles for high-performance, scalability, and resiliency
- Advanced performance optimizations techniques
- Application load testing
- Examples of modern systems (e.g. Linkedin use case, etc.)
Duration
- 16 hours
Target Audience
- software developers
- technical leaders
- software/solution architects
- test engineers
- business analysts with a technical background or passionate about technology
Attendees’ Feedback
[su_quote]Excellent course content helping me to understand a lot of things, from a very high level and abstract to a very deep and technical perspective.[/su_quote]
[su_quote]I recommend this course if you want to get in touch with real technical topics. The trainer clearly explained to them, even for less technical people.[/su_quote]
[su_quote]The trainer was very well prepared. He answered all of our questions, even if they were not really the subject of the training.[/su_quote]
[su_quote]I liked more the advanced part about how to tune an application, outside of the programming language, to get better performance.[/su_quote]
[su_quote]Interesting and informative course, presented by a trainer who knows a lot of stuff. I got a lot of ideas and techniques that I can use to build more efficient applications in my daily job.[/su_quote]
People from the following companies attended my courses:
Enroll
Note: At the moment this course is available only for companies, teams, or groups of students. The individual subscription (i.e. single person) is not an option at the moment.