Search code examples
enterpriseinfrastructure

What are the most important infrastructure components in large-scale development?


What are some of the building blocks foundational to enterprise business applications? I'm thinking about re-usable components multiple applications share to:

  1. Scale up faster
  2. Speed development by eliminating re-building
  3. Provide a stable infrastructures by minimizing key points of failure

Some examples of concepts I've seen success with centralizing/standardizing:

  • logging
  • queueing
  • scheduling

Solution

  • I'd add GUI widgets that allow teams to maintain the same look and feel across the application(s).

    As well, in a large project where multiple teams must work on sub-systems that are going to plug together at some point a set of design patterns for similar sub-systems is invaluable.

    Additionally, creating a common set of libraries (or better yet in C++ adopting Boost) which are the place to go when a common utility is required has worked well.

    I would also create the testing framework with samples early on. I have found that if you have a template for testing the sub-systems then people will use it. Without any testing framework early on you are bound to get all extremes of developer testing.