DEV Community

Sunil Vijay
Sunil Vijay

Posted on

What kind of maintenance has to be done for servers ?

I Basically do some sanity check beginning of month for all these 3 servers.

  • App server 🖥️
  • Web server 🌐
  • Database server 🗄️

Note: Asked in an interview

Now would like to know how you categories you maintenance based upon these 3 servers. There is something I need to know, maintenance done in different manner for these 3. Like if your app machine runs a Java server the update process and maintenance is very easy. But in case of your db server requires some care.

Thanks in advance folks.🥰😇👍🏼

Top comments (5)

Collapse
 
brandinchiu profile image
Brandin Chiu

Without specifics it's hard to say, but generic server maintenance that most systems need to do is:

  • log cleaning
  • security patches
  • software updates
  • performance benchmarking
  • disk analysis (free space, performance, etc)
Collapse
 
sunilvijay profile image
Sunil Vijay

That's a cool one actually. Thanks for the update @Brandin 👍🏻

Collapse
 
ferricoxide profile image
Thomas H Jones II

It's an incomplete question. There's no real description of the overall architecture, the criticality of the data, what business hours the solution serves, whether it's hosted on physical, virtual or public cloud, etc.

Though, it's reasonably likely that the specific answer is less important than how you qualify the question (at least, if it's a good interview, question-qualification would be the more-important response).

Collapse
 
sunilvijay profile image
Sunil Vijay • Edited

Business hours is 24*7 , and hosted on some cloud provider like AWS. It's a Monolithic architecture. What's up now ?

Collapse
 
ferricoxide profile image
Thomas H Jones II

If using a cloud provider, some of the traditional maintenance issues can be made to go away:

  • At the database layer, migrate to a managed database service (in the case of AWS, specifically, that means RDS). Things like backups, patching, etc. are offloaded to the CSP.
  • At the web layer, make each server an ephemeral/throwaway component. If you implement something like AutoScaling groups for day-to-day availability, do scheduled scaling-actions to ensure each webserver is regularly replaced with new, fully-patched replacements. For more major upgrades, use blue/green automated workflows (whether with things like ASGs or other methods). Alternately, depending how much business logic you're looking to put in the web layer, you may be able to wholly dispense with it – instead using something like (in the case of AWS) Elastic Load Balancers to front your application-layer ...offloading "web" maintenance to the CSP in much the same way you offload the DB layer
  • Application layer will likely depend on how well the application-layer can be made to bend to the "throwaway component" model. Some applications – particularly scalably-clustered applications – yeild well to this deployment and "maintenance" model. In which case, you can leverage the same deployment/maintenance model used for the web-layer.