Scaling Applications with Azure Redis Cache and Machine Learning
In a multi-tier application, bottlenecks may occur at any of the connection points between two tiers: business logic and data access layers, client and service layers, presentation and storage layers, etc. Large-scale applications benefit from various levels of caching of information for improving performance and increasing scalability. Caching can be configured in memory or on more permanent forms of storage, in different sizes and in diverse geographic locations. Redis, the open source engine, as implemented in Azure, allows for an intuitive configuration of management of all these aspects, and utilisation from a variety of programming languages. At EF Education, our applications are used by hundreds of thousands of students and staff daily in 150+ locations worldwide. How do we scale to this mass? How do we optimise performance across regions? We’ll present design best practices and code examples for implementing the Azure Redis Cache and tuning the performance of ASP.NET MVC applications, optimising cache hit ratio and reducing “miss rate” with smart algorithms processed by Machine Learning, for automating and monitoring the deployment of the Redis cache across different tiers, persistence layers and replicated nodes.