Day 26 of my 100DaysOfCloud challenge sees me reflecting on the Architecture best practices with Azure.
Microsoft have developed a concept of a ‘Well Architected Framework’ in order to offer a guide towards ensuring that any Solutions Architecture can conform to best practices around the planning, design, implementation and on-going maintenance and improvement of the solution.
THe framework is set up against ‘5 pillars’ to aid with offering a well balanced solution that covers risk, cost and capabilities.
5 Pillars of the Well Architected Framework
- Cost optimisation
- Operational Excellence
- Performance Efficiency
Microsoft docs contains great information about the Well Architected Framework: https://docs.microsoft.com/en-us/azure/architecture/framework/
When a company adopts Cloud services, typically the cost model switched from Capital Expenditure (CapEx) to Operational Expenditure (OpEx). What this means in terms of infrastructure costs in the cloud is that you essentially pay for what you use. Therefore Cost Optimisation becomes a real valid part of the design od a Cloud solution.
Microsoft offers tooling to help with the management of Costs, from Budgeting through to scaling back or shutting down resources when not in use.
The pillar of Operational Excellence is really based around ensuring that any infrastructure or applications designed and developed in Azure are truly well understood, managed and monitored with Modern practices. Practices such as DevOps have enveloped the modern day ITPro’s practices, looking to build a Continuous Integration / Continuous Delovery (CI/CD) Pipeline for automating and making the process from Developer to deployment as seamless and efficient as possible, without taking away from quality and operational risk.
This pillar discusses how to use Monitoring to gain insights into your infrastructure and applications. Automation should be used to reduce deployment effort and errors as well as completing Testing as comprehensively and efficiently as possible.
The element of Performance efficience discusses how to utilise the tooling and cloud capabilities to ensure that your infrastructure and applications perform at the optimal point using several capabilities surrounding:
- Scale Up / Scale Out
- Network Performance optimisation
- Storage Performance optimisation
- Identity Performance and identifying bottlenecks.
Reliability is still a concern in Cloud platforms. The responsibility of making sure your application and infrastructure is available is a shared responsibility.
Microsoft provide the physical datacentre capabilities, split into various physical racks of equipment that in themselves are still prone to the same reliability issues that have been around for years. Parts wear out, parts and components fail. Microsoft give their customers the ability to architect solutions utilising many techniques and tools to build in reliability to ensure that failure can be efficiently recovered from. Whether this is developing your application with no Single points of failure (SPF), or simply ensuring that your application can operate with minimal risks.
No architecture can be complete without discussing Security. Microsoft offer a multi layered approach to security, with each component, identity, network, compute, storage etc. having its own security features and capabilities.
Defense in Depth is very much a capability and default security posture in Azure:
As well as this, a lot of the available security products in Azure will be designed and available to protect from common Security domain concerns.
I would highly recommend anyone looking to start looking at Azure Design to review this material to understand options and best practices when designing and developing an Azure solution.
My Main ReadMe Page is all set up with a bit about me!
The guys at 100DaysofCloud have set up the GitHub repo to be cloned and also have a great repo containing ideas and areas to collaborate on: https://github.com/100DaysOfCloud/100DaysOfCloudIdeas
My Github Journey tracker can be found here: https://github.com/jonnychipz/100DaysOfCloud
Please Watch/Star my repo and feel free to comment of contribute to anything I push! I really look forward to hearing from anyone who is going to jump on the journey around the same time as me! Lets see where I get to in 100 days!
I would encourage others to jump on this journey, I’m not sure that I will be able to commit every day for 100 days, but as long as I can complete 100 days that will be great!