- Learning Microsoft Azure
- Geoff Webber Cross
- 393字
- 2021-08-05 17:45:33
Chapter 2. Designing a System for Microsoft Azure
There are challenges in designing any software system, whether it is a small system with a single website and database backend or a large distributed multi-tier system with multiple applications and storage solutions that span multiple business domains and geographic locations. We face some of the same issues and challenges while designing a system for Microsoft Azure as we would face on an on-premises system, such as how to divide our system into different applications, services, and databases, and we may have some new or different challenges such as making the system scalable (larger organizations often support scalability to some degree with multiple web servers and load balancing, but Microsoft Azure offers advanced scaling options such as scheduled and metric-based scaling) and tackling authentication on a cloud system.
All real-life systems are rarely implemented using the same technology and are likely to incorporate new and legacy subsystems across a number of different platforms, subsystems, and business domains. They are likely to be owned by different business units and may even operate under different IT departments. This is why I wanted a case study with a number of subsystems that belong to different business units. Although we're doing everything in .NET using the latest technologies (because it would take too long to use legacy technologies and different software platforms) we'll design the system to have a flexible, service-oriented architecture allowing it to span multiple business domains and accommodate future developments with minimal disruption to the existing system.
Most of the time, we all use our own experience and judgment to help us design systems, and particularly, on small systems, we don't go through a procedural process. However, I didn't want to just introduce a case study pre-architected without at least explaining the process to come up with a design. This book is not about how to architect a system; that's a topic in its own right; however, it's an important part of systems especially when it comes to working out how to choose the right Microsoft Azure Services.
In this chapter, we'll examine the processes involved to take a system of any size, break it down into subsystems, and select the right Microsoft Azure Services to build it. We'll also cover the environments we may need to support a system during its life cycle.