This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Tech Community.
When dealing with any large system a common problem is how to evolve its architecture over time. We apply technologies to address a problem; but in the process, we create another layer of complexity that, in turn, causes its own set of issues. Those need to be addressed too. Some issues will become bugs, some other the so-called technical debt.
Some technical debt might be in plain sight: an inadequate data structure might lead to convoluted code, an ambiguous API might lead to unpredicted dependencies. As our architectures evolve, they might contain traces of previous approaches which in turn bend over future ones. Some other technical debt might be more difficult to spot. Every complex system has its blind spots and occasionally, given just the right set of circumstances, they will reveal and fail spectacularly.
"We build our computer systems the way we build our cities: over time, without a plan, on top of ruins."
As architects, we know that and hence we have this notion of “best practice”. A notion that implies there is a correct way of doing things and, by contrast, a wrong way of doing things or "anti-patterns". However, in this word of continuous engineering and delivery, the definition of best practice changes every time a new technology arises and it is subject to the current capabilities of the organization, where they are and where they want to be.
According to Jeff Atwood, co-founder of Stack Overflow, a well-designed system makes it easy to do the right things and annoying (but not impossible) to do the wrong things. If we design our systems properly, our users should be inexorably drawn into the pit of success. Some may take longer than others, but they should all get there eventually.
In this blog, we want to help architects to design solutions based on Azure that easily fall into the pit of success. With a focus on scalability, elasticity, security, resilience, and optimization, we will propose ways to evolve architectures that address business problems and reduce technical debts, that will play with real-world settings, with big data and with the challenges you might encounter on your journey to the cloud.
We are organizing this blog in the following areas:
- Azure Infrastructure: Including all the technologies to build infrastructure in the cloud, like networking, VMs, firewalls, remote services, etc.
- Azure Apps & DevOps: Including all the development technologies to build apps on top of Azure and operationalize deployments and continuous engineering & delivery.
- SAP on Azure: Including all the deployments of SAP technology on top of Azure.
- Azure Data Platform: Including all Azure database technologies like Azure SQL Database, Azure Postgre, Azure Synapse (formerly Azure SQL DWH), etc.
- Azure Advance Analytics: Including all Machine Learning and data processing technologies like Azure Machine Learning Services, Azure Databricks, Azure Stream Analytics, etc.
Hope you enjoy it. Welcome.