Architecture – Applications Architecture – fewer big systems vs more smaller systems

applicationsArchitectureenterprise-architecture

re: Applications Architecture, that is, "the science and art of ensuring the suite of applications being used by an organization to create the composite application is scalable, reliable, available and manageable."

When looking at a range of applications in an organisation, I can see various reasons for merging apps together, but sometimes also good reasons for keeping them separate.

In general, what are the pros and cons of having fewer big systems versus more smaller systems (bearing in mind that many of the systems will exchange information).

I'm thinking things like: fewer, bigger apps means less plumbing between apps, but more smaller apps means more flexibility for individual departments.

Is there any literature on this, or has anyone got a list of pros and cons that they've discovered?

edit: In my scenario, a lot of the apps might be customisable off-the-shelf ones rather than in-house developed, but feel free to consider more general scenarios.

Best Answer

Just off the top of my head

Smaller Systems

  • Pro - Scale up on commodity hardware, or cheaper virtualized environments.
  • Pro - Can implement on demand scaling in a Cloud.
  • Pro - Fewer intra-system dependencies, ie. 1 service per server.
  • Pro - HA/DR (High Availability/Disaster Recovery) is typically easier to implement
  • Con - Has to be horizontally scalable
  • Con - The more systems, the more interconnects the more complicated management is

Larger Systems

  • Pro - Fewer interconnects which usually mean it's less complicated
  • Pro - Responds faster to high peak usage if it's within the tolerance.
  • Pro - Fewer resources to manage
  • Pro - More efficient resource usage (assuming relatively constant usage)
  • Con - More complicated intra-system dependencies, ie. N services per server
  • Con - HA/DR is typically harder/more complicated
Related Topic