Azure Architecture Basics
Today I’ve got a little bit of time to learn about some of the basics of Azure Architecture. Here’s how I got on!
What is Azure Architecture?
Azure architecture is the process of creating, deploying, operating and managing cloud based applications.
It’s important to have good architecture so that your application is scalable, resilient, secure and highly available.
Let’s run through all the things you need to think about when considering your architecture.
When you’re designing your application architecture, you first must consider what “architectural style” you will use. There’s some detail on that here.
Some examples are N-tier (a layered architecture with a web layer, middle layer and a data layer), micro-services (smaller independent services communicating via an API) or event-driven architecture (where events are published and consumed by different parts of the application).
The next step is to have a think about your “compute” services. This is how your application will be hosted.
You can pick from all the different hosting services offered by Azure. There’s a good flowchart here that shows when each might be useful.
As a very brief summary:
- Virtual Machines (‘VMs’) are good when you need to have some control (a type of Infrastructure as a Service, or ‘IaaS’).
- Azure App Services are known as Platforms as a Service (‘PaaS’) and provide you with somewhere to deploy to without worrying about networking resources or the hosting environment (as you would with a VM).
- Azure Functions are a type of Functions as a Service (‘FaaS’) where you do not need any hosting, the code is just run when it is deployed.
It’s important to think about your database and also where other stuff might be stored e.g. logs, message queue info.
Some examples of data stores are relational database management systems, key/value stores and document databases.
Part of your application might need to communicate with another — this can be done via asynchronous messaging. Azure offers Azure Service Bus, Event Grid and Event Hubs as options for this. More detail here.
Choose a reference architecture from the extensive list here. There’s 779 at time of writing. I’ll have a look at the hub-spoke network topology as part of a future article.
Azure also details a few best practises and important principles to bear in mind, as well as software design patterns. There’s lots of stuff to read, which can be found from the documentation here.
Today I learnt a bit about what Azure architecture is and the key things you need to think about when you are setting stuff up — these are the architectural style and the technology decisions (which compute services, data stores and messaging technologies you will use).
There are lots of different reference architectures which are models showing how an Azure application could be set up. Next I’ll look into some of these in more detail. Thank you for reading!