Application Platform Introduction

Requirements

  • As IT services become more and more important in our daily lives, the expectations on the Application Platform for the software developer have also grown considerably.

  • Some of these requirements are:

    • Zero downtime

    • Shorter feedback cycles

    • Horizontal elasticity

    • Flexible distributed data back end

In the late 2000 after AWS came on the IT scene, cloud services become more popular, putting pressure on the way software was created. To address these modern application requirements, the concept of cloud-native architecture came about, mostly driven by the 12 factor application methodology. Cloud-native software was thus written to run on such cloud platforms. Cloud-native software now demands a sophisticated application execution platform that is able to provide these functionalities.

Data Back End

As cloud-native architecture relies on applications going stateless, the demands they impose of the back end persistance tier also becomes more sophisticated. Instead of a single, shared database, cloud native applications require:

  • a network of smaller, localised databases that manage data relationships across a federation of data management systems.

  • the ability to store non-relation data without rigid structured table designs

  • handle an ever changing data model

  • able to handle volatile data growth and have the ability to scale horizontally

  • serve a high volume of concurrent users

Given the above requirements, modern applications may be willing to trade-off between consistency and performance for their database. NoSQL databases are designed to address most of these concerns and complement traditional relational databases especially when an application does not require a rigid data structure. You might be suprised to learn that within corporates, around 80% of data is unstructured.