Learning Microsoft Azure
上QQ阅读APP看书,第一时间看更新

Systems architecture

IT systems can vary dramatically in their scale, the number of business domains they span, the number of platforms they include, and the number of geographical locations they serve. Some parts of the system may need to communicate with each other; some parts are entirely self-sufficient and need no interaction with other systems. When working on a larger system, we are likely to be integrating existing legacy systems into a new system or integrating new systems into a legacy system.

The complexity and size of many systems can reflect the level of automation versus a manual process within a business. Commonly, larger organizations will have the capital to invest in automated systems, which relieve the requirement for a number of manual processes, but will introduce some more specialized administrative overhead.

A large system may look very complicated as a whole, but we can break down any system into smaller subsystems, making it easier to design and helping to create a scalable architecture.

The following illustration shows the steps we'll take in this chapter to architect a system to run on Microsoft Azure:

The steps involved in architecting a system to run on Microsoft Azure are as follows:

  1. Gather System Requirements: Before we do anything, we need to know what the system is supposed to do, who the users are, and what the budget is.
  2. Identify Subsystems: All systems can be broken down into smaller subsystems, making them easier to design and build, and particularly for Azure systems, making them more scalable.
  3. Design Subsystems: Once we have identified the subsystems, we need to design them at a high level, thinking about application types, storage requirements, and security.
  4. Integrate Subsystems: Subsystems need to interact with each other, whether it's through a shared database or messaging across a Service Bus topic. We need to work out the best way to effectively bring the systems together to get them working as an entire system.
  5. Identify Critical Systems: Before we start selecting services, we need to know which of them are business-critical, so we can choose an appropriate service tier and scale it to meet the required SLA.
  6. Select Microsoft Azure Services: This step is where we choose services and service tiers to build the system we've designed.

We'll look at a couple of examples of contrasting systems and see how they can be broken down. The first example is a small business system and the second one is a large business multi-tier system, which form the basis of the book's examples.