1. Introduction

All web servers are configured with maximum worker threads which can be created to handle request from the clients. Conventionally the maximum number of worker thread is predefined by the system administrator based on the expected number of request per instance. It works fine as long as number of request is less than total number of worker thread. Once the request per instance is more than total number of worker threads service is unable to handle request from client. Thus, client’s request times out. The situation get worse because user feel frustrated and start clicking on refresh page on seeing the delay from usual from the application. This worsens the situation by increasing the number of requests per instance. This leads to a cycle and in end server fails and completely stops working. One solution is to manually monitor the server and shut it down during traffic burst and increase the number of worker threads and restart the server. This idea is not feasible because business will be lost for the time server is shut down and this will also lead to poor management of hardware resource.

2. Autonomic Servers

The term Autonomic comes from the autonomic nervous system found in mammals and other higher order creatures. This part of the nervous system enables the required body functions, while provided to them, to perform without consciousness. The fundamentals of autonomic computation revolve around system self-management. In this context, cooperation between the internal components is described in a manner of self-management. Autonomic computing aims at reducing human interference in system management and at optimizing system uptime efficiency. To do so, IBM has identified four basic component features: self-configuring, self-healing, self-optimizing and self-protecting.

Reduction of manual interventions in server configuration makes server themselves decide how to adapt to the current traffic makes them adaptive to flash crowd due to Slashdot effect and thus is comparatively more fault tolerant. In theory autonomic servers can tolerate any burst traffic as long as they have underlying hardware to support them.

Just like in Autonomic Nervous System, autonomic servers need to have a monitoring server to act as a load balancer and work dispatcher to decide which service needs to server upcoming requests. This server need to keep health check of all available service ports and perform mainly three operations, as discussed below:

· Health monitoring of all available services

· Dispatching request to accurate service

· Monitoring requests, and hence creating or destroying instances of service as per the pre decided short-circuiting hook

#servers #web-development #software-development #microservices

Designing a Self-Healing Autonomic Server
1.75 GEEK