Building Resource Aware Self-Healing Modern Cloud Native Environment on Commodity Hardware for Adoption of Microservice Architecture
Abedin, S M Didarul
MetadataShow full item record
Years ago, even today most of the applications were developed and architected in old school monolithic approach where each of the components of the software are tightly coupled; running on a single process or multiple number of processes spread across several servers, physical or virtual. This server-side enterprise application must support a variety of different clients including desktops browsers, mobile browsers, and native mobile application. The application might expose Application Program Interface (APIs) to consume, also for integrating with other application, accesses the database systems and exchanging messages. Due to the nature of this architecture, the release cycles are very slow and updated relatively infrequent. On the other hand, as the application is tightly coupled, it has much dependency on the operating systems. In case of failure, migrations of application are a daunting task; even also scaling. Though virtualization technology can mitigate those issues like availability on failure or scaling, at the same time it increases the operational responsibilities to maintain. Patching the operating systems, doing vulnerability scan at regular interval, mitigate them where necessary. The whole process makes life harder for developers and system administrator. Moreover, the application is fully dependent on this entire cycle because it is residing on top of operating system and these types of application are not resource aware. Thus, resource optimization is not possible in many cases. Today, these legacy applications, most of them monolithic in architecture, are slowly being broken down into smaller, independent running components called microservices. As microservices are independent and decoupled from each other, they can be developed, deployed, updated, and scaled individually at any time. This enables business to change components quickly and as often as necessary to keep pace with today’s rapidly changing customer requirements and business goals. With the help of few open-source technology, today, we can build a modern cloud native environment anywhere with traditional commodity hardware which allows us to develop, build, run, deploy and scale modern microservices application which are fully resource aware, where microservices scaled automatically based on resource requirement and descale whenever required. At the same time, application by itself can heal whenever required.
- M.Sc Thesis/Project