ARCHITECTURAL APPROACHES TO THE DEVELOPMENT OF SCALABLE WEB APPLICATIONS
DOI:
https://doi.org/10.28925/2663-4023.2024.24.341350Keywords:
scalability; web applications; microservice architecture; cloud services; system reliability.Abstract
This article explores modern methods and technologies for creating scalable web applications. The need for such systems is constantly growing due to the increase in data volumes and the number of users, which requires high performance and reliability. This article is devoted to the study of modern methods of scaling web applications, which is becoming one of the most pressing problems of modern programming due to the rapid growth of data and the number of users. Scalability determines the ability of a system to efficiently handle an increasing load by adding resources (processors, memory, servers) without compromising performance. Failure to comply with the principles of scalability can lead to slowdowns, failures, and loss of users, making the development of scalable web applications a priority for software engineers. This article discusses the key challenges faced by developers, including increasing server load, ensuring uninterrupted operation during peak loads, optimizing resources, and ensuring high data availability. The authors analyze and compare various architectural approaches, such as microservice architecture, use of cloud services, caching, load balancing, and asynchronous message queues. The authors provide examples of successful application of these approaches in companies such as Netflix, Spotify, Facebook, Amazon, and LinkedIn, and offer practical recommendations for choosing the optimal architecture for different types of projects, taking into account their features and performance requirements. The authors emphasize the importance of careful architecture planning at the initial stages of web application development to ensure scalability and efficiency. Prospects for further research include the development of new methods and tools to improve the efficiency of existing architectural approaches, the integration of different methods to create flexible and scalable solutions, and increased attention to security and resource management.
Downloads
References
Kleppmann, M. (2017). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media.
Siriwarden,a P., Indrasiri, K. (2018). Microservices for the enterprise: designing, developing, and deploying. Apress.
Newman, S. (2015). Building Microservices: Designing Fine-Grained Systems. O’Reilly Media.
Davis, C. (2019). Cloud Native Patterns: Designing change-tolerant software. Manning.
Petoff, J., Murphy, N., Beyer, B., & Jones, C. (2016). Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media.
Abbott, M. L., Fisher, M. T. (2015). The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise. Addison-Wesley Professional.
Atchison, L. (2020). Architecting for Scale: How to Maintain High Availability and Manage Risk in the Cloud. O’Reilly Media.
Ejsmont, A. (2015). Web Scalability for Startup Engineers. McGraw Hill.
Abbott, M. L., Fisher, M. T. (2011). Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional.
Netflix. (n.d.). Microservices. https://netflixtechblog.com/tagged/microservices
Google. (n.d.). Microservices architecture on Google Cloud. https://cloud.google.com/blog/topics/developers-practitioners/microservices-architecture-google-cloud
Spotify on Google Cloud. (n.d.). https://cloud.google.com/customers/spotify
Facebook. (n.d.). Scaling Memcache at Facebook. https://research.facebook.com/publications/scaling-memcache-at-facebook/
Huang, Y., et al. (2007). Achieving Flexible Cache Consistency for Pervasive Internet Access. Fifth Annual IEEE International Conference on Pervasive Computing and Communications (PerCom'07). https://doi.org/10.1109/PERCOM.2007.6
Google. (n.d.). Integrating Redis with Cloud Run. https://cloud.google.com/memorystore/docs/redis/connect-redis-instance-cloud-run
Microsoft. (n.d.). Load Balancer documentation. https://learn.microsoft.com/en-us/azure/load-balancer/
Netflix. (n.d.). Chaos Monkey. https://netflix.github.io/chaosmonkey/
Google. (n.d.). Cloud Load Balancing overview. https://cloud.google.com/load-balancing/docs/load-balancing-overview
Amazon Elastic Load Balancing. (n.d.). https://aws.amazon.com/elasticloadbalancing/
Brief History of Scaling Uber. (n.d.). https://www.linkedin.com/pulse/brief-history-scaling-uber-josh-clemm-dfqgc
Streaming logging pipeline of Home timeline prediction system. (n.d.). https://blog.x.com/engineering/en_us/topics/infrastructure/2020/streaming-logging-pipeline-of-home-timeline-prediction-system
Lytvynenko, L., Skliarenko, O., & Kolodinska, Y. (2020). Logic of building interfaces in the software. Bulletin of the National Technical University «KhPI» Series: New Solutions in Modern Technologies, 1(3), 54–59. https://doi.org/10.20998/2413-4295.2020.03.07
Published
How to Cite
Issue
Section
License
Copyright (c) 2024 Олена Скляренко, Ярослав Савченко, Леонід Литвиненко, Орест Сушинський
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.