Abstract
Software architecture has experienced quite significant changes in the last decades thanks to advancements such as multi-cloud, edge computing, and the need for global-scale applications. To this end, this paper discusses how software architectures have evolved to harness the various characteristics of modern computing models. Whereas multi-cloud is flexible and redundant, it also brings new complexities of how to manage it, how to keep it secure, and how to manage data within it. On the other hand, edge computing minimizes latency and optimizes offline data analytics by decentralizing workloads nearer to the user ends. In contrast, it makes the architectural design, scaling, and synchronization of various networks and systems a larger challenge. While enterprises are aspiring to go global, the software architectures that may support them have to be the most efficient, reliable, and affordable. This article offers a detailed analysis of these challenges, coupled with a discussion on new architectural paradigms, including microservices, serverless, and containers, that define the future of software engineering in the multi-cloud, edge computing realm. The paper also analyses how the latest developments in artificial intelligence (AI) and machine learning (ML) are impacting software architecture decisions to allow systems to self-adjust and self-learn, predicting and preventing failure and adapting to changes in the overall environment. A review of related studies describes the recent advances and successful strategies in achieving good architectures; the method section explains how organizations can evaluate and implement architectures for application at the international level. Lastly, examples of organizations that successfully use these modern architectures describe the outcomes of employing these new architectures and key experiences. This paper also discusses the direction in which software architecture will move in the future in light of a rapidly evolving technological environment, suggesting that future trends may include the integration of cloud-native development and the progressive use of artificial intelligence for the automation of architectures.
View more >>