A Blueprint for Enterprise Architecture
Creating and maintaining a complex information technology environment is a lot like building a city. There is underlying infrastructure, support services, functional structures, zoning rules and traffic management. The metropolitan infrastructure is like physical hardware, support services are like technology platforms, the buildings are like software applications and traffic management is like data integration flows. No one would attempt to construct a building, let alone a whole city without a plan, the result of such unintentional, organic designs would be a mess. An intentional city design can be thought of as a blueprint with multiple levels ranging from overall municipal layouts down to individual structural plans. An enterprise architecture blueprint can be thought of in a similar way with architecture strategies standing in for the municipal layouts and architecture patterns for structural plans.
The purpose of an architecture blueprint is to bring together strategies, roadmaps, patterns, technology stacks and standards aligned to business goals and outcomes in order to maximize the value of IT services for the enterprise. An effective architecture blueprint defines the overall architecture for the cross-cutting domains of business, data, security and infrastructure as well as line of business applications and platforms. The intent of a blueprint is to assist in technology portfolio planning, inform technology investment decisions and guide solution architecture formation. The blueprint should includes sections for strategies, roadmaps, reference architectures, patterns, standards and technology stacks. A blueprint should be a living document that is tied to real architectural models that are continuously updated as business needs and technologies evolve. A blueprint should be used as a guide by solution architects, technology leaders and business partners alike. Once established it needs to be reviewed and updated by enterprise architecture on regular cadence.
A blueprint is an architectural tool created to establish architecture strategies, lay out roadmaps for realizing those strategies, define patterns to guide implementation and create technology standards to promote consistency, resiliency, security and efficiency. These elements will assist portfolio planning, enable optimization of IT services, inform technology investments and guide organizations in the implementation of technology solutions that will efficiently and effectively solve business problems.
The desired outcomes of an architecture blueprint are to provide standardization of common technologies, define technology strategies and reduce technical complexity while enabling technology optimization and innovation. Key blueprint objectives include:
- Defining key architecture strategies to enable digital transformation
- Standardization of common, non–differentiating technologies
- Providing direct and practical guidance for architects and engineers
- Reducing technical debt and architectural complexity
- Facilitating engineering skills development through technology standardization
- Enabling IT to better serve business needs through standardization & strategic alignment
- Supporting engineering agility, innovation, resiliency and scalability
- Improving IT efficiency and reducing time to market for new capabilities
- Communication of architecture standards, strategies and guidelines
- Guidance for architects, engineers and IT leaders on strategies, roadmaps and patterns
A blueprint should provide high-level strategic direction (i.e. strategies and roadmaps) as well as more low-level, platform specific guidance for system implementation based on strategic context, reference architectures, patterns, standards and technology stacks.
An critical component of an architecture blueprint are the technology stacks. The technology stacks define standards for common technology software and services needed to implement technical capabilities defined in the strategic reference architectures and patterns. The scope of technology stack definitions are necessarily limited to what is “significant” in terms of cost, scope, impact and potential for economies of scale and optimization through reuse. This generally should include:
- Development tools and languages (Java, JavaScript, Python etc.)
- Development frameworks (Spring, Express, Angular.js, React.js)
- DevOps tools and services (Jenkins, SonarCube, Artifactory)
- Security Tools and Services (Key management, Secrets mgt, SSO)
- Operations tools and Services (logging, monitoring, alerting)
- Application Runtimes (CaaS, PaaS, FaaS, IaaS)
- Cloud Service Providers (AWS, Azure, GCP)
- Infrastructure (compute, storage, network, VM)
Taken as a whole an architecture blueprint helps to fulfill the fundamental mission of enterprise architecture, which is to ensure the alignment of business and technology strategy in order to maximize the value and efficiency of IT for a company. It should be structured to provide both high-level, strategic guidance to leaders similar to how a city plan guides civil engineering as well as more detailed design and implementation guidance to solution architects and delivery teams similar to how structural plans and building codes guide building construction. Using the blueprint as a tool, an enterprise architecture team can collaborate with organizational partners to build a scalable, technology future that effectively meets the needs of the business in our disruptive and confusing world of fast paced digital transformation.