How to model an application with a N-tier architecture type?

evdd86
Tera Contributor

Hi, 

Could somebody guide me in the right direction for the modelisation of an application with a N-tier architecture type? I don't seem to find any similar examples to lean on 😞

I have two fictive applications (XFO and XBO). They each have a an Angular frontend (deployed on AKS) and a Springboot backend (hosted on on-prem on K8s). Both frontends communicate with their respective backends via APIs. Both backends rely on the same database (XDB). Keycloak is used for authentication/authorization purposes. 

I have added my attempt as attachment. Does it make any sense? 
In which table would I include a platfrom/framework such as AKS and K8s? - cmdb_ci_appl? 

Many thanks already for any help on this matter, 

3 REPLIES 3

TheJoeDC
Tera Contributor

I'd go one level up on your diagram, XFO and XBO are the business apps I think. The service instances might be Prod and Dev based on your structure. The dependency's might be:

 

XFO Frontend depends on XFO backend (can the frontend run without the backend?). Remember that the service instances are logical representations.

 

For the platform/framework, there is a business application "architecture type" (platform app or platform host) that so I've always thought that is where the platforms go. 

 

Joe

evdd86
Tera Contributor

Thanks for your input, Joe! 

I now have XFO and XBO as business applications and they have a 'consumes' relationship with their prod environment: 

  • XFO (business application)
    • Consumes XFO prod (application service)
  • XBO (business application)
    • Consumes XBO prod (application service)

To show the relationship between front and back end I would do the following:

  • XFO prod
    • Depends on XFO backend (application service)
      • Depends on XFO backend springboot app (application CI)
    • Depends on XFO frontend (application service)
      • Depends on XFO frontend angular app (application CI)
    • Depends on keycloak (application service)
      • Depends on keycloak (application CI)

I don't seem to see the value of having a separate 'depends on' relationship between  XFO front and backend. If either one fails, XFO won't work properly + it doesn't mean the basis of the other is faulty as well? It just won't show properly? 

What do you - or anyone else - think? 

TheJoeDC
Tera Contributor

The Front End/Back End question depends how you use it. 

 

In typical example, your Front End is the web interface (what users see) and the Backend is the data management (provides data to Front End). 

 

As you are building out your CI relationships, each has as separate chain of CIs they depend on. With CSDM 5 you know have more nuance in your application services, you might have your backed be a "Data Service Instance".

 

Where the relationship might be helpful is in the troubleshooting side. Users will probably report errors from based on Front End "Getting broken index errors in XFO". Having that dependency might help analysis "Front End is not logging errors, check back end"