H2 Heading
Let’s start with a quick refresher on the “Traditional” application architecture so we’re all on the same page.
- There was hardware. Servers with operating systems and software running on them and networking gear and storage. This was all hosted in a private or co-located data center.
- There were a few web servers behind a load balancer. The web servers talked to the app servers which in turn talked to databases hopefully running on a different server.
- There were firewalls, DMZs, yada, yada, yada.
Then there was the client. The client talked to port 80. It was a simpler time. And SSH.
You get the picture. Now, fast forward to today and we’ve got, what at present time is referred to as modern, cloud-native application architectures! Let’s take a look:
- Microservices, tons of them, running in a public cloud, probably in a Kubernetes cluster.
- Microservices are talking to each other, chatting with 3rd party services and getting data from at least two different datastores.
- There are firewalls.
- There are the clients. Browsers, native apps, javascript snippets, and other internal and 3rd party services. And SSH.
H2 Heading
H3 Heading
The Cloud: Modern applications live “in the cloud”. Cloud providers offer different levels of abstractions (IaaS, PaaS, SaaS) but long story short, these apps run in the cloud.
H4 Heading
Business Logic is Highly Distributed: Applications are decentralized with business logic spread across services.