Being a new mother has taught me the real meaning of phrases we often learnt in primary school like “Patience is virtue”. After spending a couple of months getting used to the sleep deprivation and the exhaustion that motherhood is blessed with (along with, of course, the toothless little angel in your arms), I had an epiphany.
Motherhood, really, is about following the principles of enterprise architecture in your day to day life! (Well not all of it but a part of it anyway). And I can say from my experiences that a lot of it now makes more sense to me than it ever did.
There are four primary attributes of an enterprise architecture
- High Availability
- Robustness
- Disaster Recovery
- Scalability
High Availability
Any enterprise level setup needs to be highly-available. Come rain, hail, snow, an application needs to be ready and serving customer requests at all times. Quite like a mom, who must feed a hungry baby irrespective of the weather, temperature or the time of the day or night!
Robustness
An application or the infrastructure hosting it can only be called robust if it is able to handle the load of customer requests with optimum response time. Be it in times of large traffic or less, customers should always have the best experience in terms of request and response, without breaking a sweat. Similar to a mother who looks after the house, the partner as well as the infant without losing her calm (remember the sleep deprivation and exhaustion still stays a part of the deal)!
Disaster Recovery
Another term for Being Prepared for the Worst. There should NEVER be a single point of failure for an application. The architecture should be planned and implemented in such a way that the application is available even in times of infrastructural failures. This can be achieved in, one way, by serving the application out of geographically distributed locations to minimise impact. I’ve realised the importance of being prepared, as a mum, with a spare set of baby clothes and “scented” diaper disposal bags in case an explosive poo ruins the pretty dress mommy wanted her baby to wear on their first outing so that they could get good photographs together! Alas!
Scalability
Goes hand in hand with robustness, in fact scalability is what makes an application robust enough to handle customer load. Your application as well as the underlying infrastructure should be able to scale on demand without affecting performance. Much like buying different size baby clothes before your baby comes, in case your baby decided to get bigger, faster or be born bigger or smaller than you’d have thought!