Modern Scalable Architecture
Duration: 1 day
Description:
We are on the verge of seeing a major change in the overall structure of software applications. This architecture stands up to demands such as high and elastic scale (in millions of events per second), near-perfect isolation of features, highly testable, functional, etc.
At Ballista, we have developed a recipe and a set of principles that we use when helping our customers.
In this course, we share these principles in a way where everyone from CEO to individual contributors can participate.
Objectives:
-
Learn some of the architectural principles and goals typical in a modern architecture
-
Understand how to achieve elastic and high scale
-
Understand why functional approaches are becoming popular
-
Understand the CAP theorem and why it is important
-
Understand the cloud, on-premise, and edge deployment models and how to build monadic software components
-
Understand the integration story of modern architectures
Audience
Software developers, software architects, and managers of software organizations.
Outline
Challenges and Context
-
What are some common goals of software architecture?
-
Modern challenges
-
What typically fails?
-
Some architectural patterns
Scalability
-
Signs of scalability challenges
-
Amdahl’s law
-
Gunter’s law
-
CAP theorem
-
Lessons from functional programming
-
Best practices
Elasticity
-
What is elasticity?
-
Why be elastic?
-
Options for scale
-
Cost of cloud, on-premise, and edge
-
Moving components around between on-premise, cloud, and edge
-
DevOps challenges and solutions
-
Elasticity triggers
-
Best practices
Availability
-
What is availability?
-
Why availability?
-
How to achieve availability?
-
Handling of external attacks
-
Working around predictable internal failures
-
Handle unpredictable internal failures
-
Importance of testing failures
-
How to test for failures?
-
Best practices
Other Architectural Goals
-
Testability
-
Performance
-
Security
-
Maintainability
-
Extensibility
-
Maintainability
Architectural Template
-
One architectural template
-
What are the variations?
-
How to evaluate the options?