As in many technology organisations, product choices and operational practices have been developed in an ad hoc fashion without reference to an overarching organisational architecture.
Technology choice which is based on ease of use, availability or specific functionality is not always the best approach within a large enterprise. While it will make one project on-time, or achieve its design goals, it potentially creates sprawl and a diverse technology landscape which will become full of technical debt and hard-to-maintain services. What might be best for developers can cause real headaches for operations who have to run systems in production.
However, the imposition of a specific set of products as part of a top-down roadmap (driven from Enterprise Architects or the Operations team) can also be counter productive as it restricts innovation and removes a level of autonomy from project teams and developers. A happy medium occurs when regular dialogue between teams and enterprise architects make a superset of technologies available to teams delivered via a Platform-as-a-Service. This ‘walled garden’ ensures enterprise ready software and a limit on proliferation.
This ‘walled garden’ needs nurturing on a regular basis, where development teams and enterprise architects, along with the operations teams do weeding (of out-of-date components) and planting (of new tools and platforms) on a regular basis. Everything in the garden should interoperable with the other components and be developed by the Operations team. These artefacts would be developed using a Continuous Integration for Infrastructure approach, so that Operations themselves would become more developer centric.
This wall garden of choice is something that predicated solutions like Red Hat Open Innovation Lab (RHOIL) offer as part of its infrastucture, covering application platform, development tools and infrastructure components.
Figure : Component List of RHOIL
The challenge for an architect is in part putting the tooling in place to make sure that:
- an easy to use tool for selecting components from the walled garden for a project
- a means of ensuring new tools can be chosen and added to the selection list
- a means of planning and then carrying out the deprecation of components in the garden
Figure: Selection form to create a ‘walled garden’ infrastructure.
The environments will not just define the components but also the size. A predefined PaaS environment would offer set sizes, locations (on premise, public cloud) and other environmental options.