The Guide to Practical and Pragmatic IT Architecture Design

How to design an IT Architecture

Once you understand the IT Architecture framework and have identified the technical requirements, you can start designing the technology blueprint of your solution. It is a very straight forward process and follows an "outside-in" approach.

There are basically seven basic steps and is as following and shown in the picture below:        
  1. Identify the channels and which groups of users (internal and external) need to access application,
  2. Identify what functionalities they need to access,
  3. Interconnect these functionalities where they have interactions and/or dependencies,
  4. Identify the data entities that are needed to make the functionalities work,
  5. Identify the integrations with external systems that are needed,
  6. Identify the platforms and hardware on which the software will run, 
  7. Iterate the design to comply with the identified (technical) requirements.
Design IT Architecture


To show how it works we will use a case study based on a real life example:
Case Study:
  • A company wants to build a website where clients can view and buy bikes;
  • They want clients to Access the website with a mobile application, website and call center;
  • The users should be able to browse a catalog and see specificiations, able to search bike models and buy 
  • The shop has bikes from different vendors and the specifications from each model can be found with the vendors´ websites
  • Once they select the bikes, they can pay with bank creditcards and mercadopago.
  • The shop has an inventory of which bikes are available
  • As the company wants to see first the success of the website, it has decided not to invest yet too much in it. The site has to work only during working hours,  5 days a week and if the site goes down, a manual restart is required. 
  • However, the company expects that 95% of users will look at the catalog and check availability without buying.
  • The company supports use of open standards and open source technologies. They also use an API management platform to expose its APIs to its digital channels and to third parties.

Let's follow the methodology and see how this process works to design an technology architecture:

Step 1: Identify users and channels

In this step we start with drawing the application box and identify according to the case study that there are the following users:
  • clients who access through web and mobile
  • call center employees accessing through internal website
  • administrator also accessing through internal website 
We get the following diagram with step 1:
Design IT Architecture



Step 2: Identify Functionalities

In this step we need to identify for each of the users what functionalities they need to access. We can do that with the following:

Clients and call center employees need to be able to:
  • see a catalog of products (catalog functionality)
  • look at specifications of products (product functionality)
  • able to search (search functionality)
  • register him or herself (client registration functionality)
  • able to buy if there is inventory availability (buy, pay and inventory functionality) 
So with this step we can see the following diagram:


Identify functionalities


Step 3: Interconnect functionalities

In this trail we need to interconnect the functionalities identified in step 2 and also understand any dependencies. The functionalities catalog, search, client registration and buy are the flow that users go through when buying a product on the website. Furthermore, the catalog module is connected to the product module because it needs to show the product details. And when buying a product, it depends on inventory availability and payment modules. So we will get the following diagram: 

interconnect functionalities


Step 4: Identify data entities

We need to identify the data entities that are needed to work with the functionalities, and in this case study we need a table of products with specifications and prices, a table with clients and a table of inventory. It is not that important to have all data entities right, as during later iterations, we can correct it. With this information we can draw the following diagram: 
Identify data entities


Step 5: Identify External Integrations 

The following step is to identify integrations with external systems and applications. In this case, we will have to integrate with banks and Mercadopago for payments. And there is a second integration with bike providers to obtain product specfications. We get the following blueprint:
Identify external integrations


Step 6: Identify platforms and hardware

Here we have to look at what programming or application platform we want to build the application. We can look at off the shelf software products from IBM, Oracle, SAP or other vendors. Or we can decide to build it ourselves on Java, .Net or other programming language. In this case we decide to build the application on Java as the company follows open standards. We get the following diagram:   
Identify platform and infrastructure architecture


Step 7: Iterate with Requirements

In the final step we review the technical requirements such as required availability, performance, recovery times, security and other aspects and try to adjust the design to comply with these specifications. For instance, we know that some functionalities have a 90% higher load than others, so we can leverage a microservice pattern for those specific services. And also we know that they use API management platform, so we expose the APIs for the web and mobile channels through the API management layer. With these requirements we get the following design: 
 
iterate architecture with requirements

So after first iteration, we have the following Technology Architecture design which forms a good base to continue iterating during the design phase:

IT Architecture design


With this base we will iterate steps 2 to 6 to ensure all requirements can be met to get the final IT architecture design.
Iterative IT Architecture design


We show here some examples of an IT architecture blueprint design in process:

IT Architecture blueprint Design Technology Architecture Blueprint


And below we show a completed Technology Architecture design:

Technology Architecture Design

1 comment:

Charles said...

I have read your blog and I gathered some new information through your blog. Your blog is really very informative and unique. Keep posting like this.