Tango with C4 on Azure
Alfred David
Tech Innovation Alchemist | AI-to-Blockchain Strategist | Building World-Class Engineering Teams | Future-First Leader
The new blueprint for software architects to represent a system architecture that they are designing is through the explosive C4 diagrams.With modern cloud based architectures, blended with microservices, it has become a little difficult and tedious to use the conventional 4+1 architecture representation scheme.
It is not that we are doing something radically different from what we were doing earlier, its just that with so much flexibility and a sea of components on a cloud platform, coupled with distributed hybrid computing , representations conventionally would become more complex and the end result is that can everybody in the audience could get overwhelmed and clouded to understand, As most of the times the audience are our clients, business analysts , champions and product owners .
To make things objective, I’ve designed a cloud based web application which is part of the Azure PAAS Cloud and I can slowly try to decipher this architecture using the C4 diagrams .The usual adage is that it take two to tango; The C4 diagrams consists of three primary diagrams they being System Context, Container and the Component diagram. These three diagrams encompass to adequately outline a cloud based system.Its objective is to give three different levels of the system and its vagaries, so in a matter of speaking it is like seeing a design of the system in different levels of zoom.
Before we start lets first set the context about the application that is being represented.A web application, which has some external interfaces with a content management system , identity management system, some third party external systems such as helix which is a content provider, kaltura which stores videos and makes it available and google analytics. This primary objective of this application is to handle genetic traits data of its customers which is big data volume. The process of handling includes ingestion, sorting, storing and then running a analytics engine on the data , to derive machine learning based predictions of potential diseases against a specific individual set of genetic traits information.
The genetic information is converted to traits data, which is then exposed as an api by helix. This is what is consumed by our target cloud based big data application.This application is a java based application with a some standard use cases such as
- Authentication & Authorization
- Custom content display
- web services orchestration
- Logging
- Auditing
- Batch & scheduling process
- Analytics
System Context Diagram
Container Diagram
Component Diagram
The main objective here was not be as accurate as a patriot missile in detailing the system and all its nuances, but to get the idea of a proposed system to a large varied, differently skilled and heterogenous audience and of course also to touch the chords of the development team; I‘m sure the images have spoken for themselves about the system in context.