5.3. The Software Topology

The software topology maps the applications and components from the solution onto the hardware topology. The idea is to get as much information as possible regarding the software components themselves, where they will be hosted, and their baseline configuration. The software topology has the following benefits:

  • It defines the applications and components that are going to be used and their baseline configuration.

  • It feeds into the installation and deployment process by highlighting the different components, layers, and servers.

  • It feeds into the development, test, and other environments used throughout the project.

  • It assists with identifying key batch, maintenance, and operational aspects of the system.

  • It identifies key security considerations and communications between the software applications.

The software topology covers all the applications and can be grouped into the following:

  • Base operating system (including specific service packs, security patches, and hot fixes)

  • Runtime and framework components (including specific service packs, security patches, and hot fixes)

  • Third-party applications

  • Custom applications and components

The simplest way to start building up the software topology is to list out the applications at a high level using the preceding groups. Most of the high-level information should be available from the requirements and the technology constraints. A typical starting list would look something like the following for this book's case study ...

Get Design – Build – Run: Applied Practices and Principles for Production-Ready Software Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.