Scaling with Techcello
Scaling with Techcello
Cello based applications can be scaled either by scaling up or scaling out. Scaleup is straightforward. Let us see how the different layers of the cello based application can be individually scaled out.
Web Layer
This is responsible for rendering the user interface. TechCello advocates the following principle to scale out this layer.
Session Usage
Cello does not use session for storing any data. If the application needs to store session CelloSaaS mandated out-of-proc session storage. This ensures that the application is stateless and hence can be easily scaled out
Cache Usage
Cello uses Appfabric distributed cache as the caching layer. This ensures that the memory state of cache is centralized and hence the application becomes stateless which is necessary to be scaled out.
Application Layer
This is responsible for the web service driven business layer. Cello advocates the following principle to scale out this layer
Per Call Services
All services are per call instances and hence can be scaled infinitely.
Cache Usage
Application Layer also uses centralized caching mechanism of Appfabric which ensures that the application layer is stateless and hence can be scaled out.
Cache Layer
CelloSaaS uses Distributed cache – appfabric. This ensures that the cache layer can be scaled out by adding more nodes if there is a higher memory requirement for cache.
Database Layer
CelloSaaS supports database sharding by Tenant + module combination. Data of a module + tenant can be partitioned and can stay in different databases. For example Module1 data of Tenant 1 and 2 can be on DBServer1 . Module 2 data of tenant 1 can be on DBServer2 and Module 2 of tenant 2 can be on DBSever 3.