The Philosophy of Adaptive Infrastructure
Obviously, developing an adaptive infrastructure isn't something that happens overnight. To create major change within your organization, you must start by changing yourselfby adopting a new way of thinking and a philosophy that will guide you toward your goals.
Striking a Balance
Adaptive infrastructure strategy must include the people, processes, and technologies that provide ongoing support for an organization's applications.
To achieve success, you must strike a balance that doesn't neglect or place undue emphasis on any of these three areas:
Technology. This category includes the hardware, software, and leveraged third-party services that constitute the infrastructure. Too much focus on technology is known as the "silver bullet syndrome," the idea that a particular technology will solve all your problems. In the real world, silver bullets rarely exist.
People. In this category, you can include the roles, skills, and organizational structures involved in the infrastructure lifecycle processes. Over-reliance on people creates a "hero mentality," which assumes that by working harder and being smarter, you can do everything by working around the clock to get it done. This is one of the most pervasive problems in IT departments today. Now that the euphoria has subsided over "get rich quick" stock options in the Internet Age, employees won't work around the clock, and even if they do, it is at a serious cost to their health and well being. Make sure your behavior doesn't reinforce hero mentality. While heroes should be rewarded, the key is emphasizing how things will be done differently in the future, so that people don't have to be heroes and don't have to drive themselves to the point of burning out.
Process. This category includes standards and information that define the lifecycle of infrastructure (design, procure/build, customize, configure, deploy/install, manage, change, exit). Actually, too much focus on process is quite rare. Some companies are a little too process-centered, but many more IT organizations lack a systematic approach.
To strike a balance, you must know enough about technologies to pick the right technology. You must understand the people skills required to get the job done, without expecting superheroes to come in and save the day. Process is an increasingly important focus because it's not enough to have a visceral understanding of adaptive infrastructure strategies; you must focus on process as well. As explained in Chapter 6, you need a set of effective processes and methods that will help you bring about change. Don't try to accomplish important things by chance, and don't make people figure it out as they go. Doing so rarely leads to consistent, replicable success. After all, the goal of a great infrastructure program is not that things go well once, but that everything goes well consistently, from project to project.
Key Organizing Principles
One way to look at adaptive infrastructure is to see it as a set of components, patterns, and services, along with the people and processes necessary to tie them together. These key organizing principles drive much of the content in this book:
Platform is an organizing concept that groups individual component technologies into technical domains (or layers).
Patterns are organizing concepts that facilitate rapid mapping from business requirements to end-to-end infrastructure designs. Patterns structure component selections from many platform layers.
Services are "infrastructure applications" that shift responsibility for certain services out of the application domain into the infrastructure domain. Services provide a set of physically shared components, such as a network or a credit card processing service, which multiple applications can leverage.
Figure 1.2 shows that all the elements of adaptive infrastructure work together to support applications in an organized way.
Figure 1.2 Key Organizing Principles for Adaptive Infrastructure
If applications are the physical manifestation of real business processes, then all the elements of infrastructure must work together successfully to ensure their flawless performance.
The art of adaptive infrastructure, however, is not to cater to every application on its own terms. Doing so only creates more "stovepipes" (or applications resistant to adaptive infrastructure) within your organization. Instead, you can make both the application and infrastructure development processes more manageable by defining infrastructure "patterns" that you can manage more effectively. These patterns are built on a foundation of key services that you have clearly identified as crucial to your business operation. These services, in turn, are based on individual components working together as part of your adaptive infrastructure platform.
On one level, the first step in building an adaptive infrastructure is to identify and catalog all these elements~the patterns, platforms, and services, along with the people, processes, and packaging that will make your IT organization successful. Once you organize your world this way, you can avoid the dilemma of having to start from scratch each time a new application rolls out, asking questions such as, "What exactly do I need for service levels?" or "Which component do I select?" Instead, you will have pre-built solutions that you can apply or adapt at a moment's notice, which will provide your organization with ultimate agility.
Everything you need to create an adaptive infrastructure strategy boils down to the six fundamental concepts discussed on the following pages. These concepts set the tone for your infrastructure planning efforts. They form the core strategies of this book and map directly to the remaining chapters.
1. Identify and Catalogue Technologies
If your decision-making attitude is, "I bought from Vendor X, so now everything is solved," you're probably thinking the wrong way about the problem. The notion of platforms emphasizes organizing hardware, software, and networking components (technologies) into common application runtime targets that maximize component reuse and systems integration while providing a base level of shared services.
To manage your infrastructure well, you must first identify and catalog all the components by their functional categories.
By organizing components into categories, you can assess the complexity of managing hundreds of components. As you begin the organization process, you will start to see the components used to deploy applications fitting into different layers of stacked infrastructure, as shown in Figure 1.3.
Figure 1.3 The Infrastructure Stack
The component items in the layers below the line (e.g., a particular server) are all purchased, not physically built. In contrast, those above the line may be internally developed, particularly if they represent areas of potential competitive advantage. And where the application and the infrastructure worlds intersect, systems integration becomes a crucial element. This integration typically focuses on various uses of middleware to combine applications, processes, data types, and underlying infrastructure as necessary.
Chapter 2 provides more detail about these layers and the organizing principles behind categorizing and managing component technologies.
2. Develop Reusable Infrastructure Patterns
One important way to resolve some problems is to simplify wherever possible. The best way to simplify is to identify patterns within your infrastructure that can be supported, augmented, nurtured, and reused across applications to ensure success during an endless succession of business initiatives and application rollouts. Using these end-to-end sets of infrastructure components (from many platform layers), you can clarify and unify technology, planning, and operational processes, as well as personnel experiences.
It's a losing proposition when you react to the wide variety of application development requests by trying to maintain expertise in every type of infrastructure. To make things more manageable, select a few key patterns to build your expertise around, and then use these patterns to support business projects in a repeatable way. By starting with a core set of patterns and tweaking them as necessary, this makes things easier and less expensive for everyone. In other words, simplify and prioritize.
The old barriers that prevented you from simplifying are starting to fall away. Standardization of network protocols, for instance, not only simplifies your job, but also helps you deliver a better, more focused, and ultimately more credible result to your business managers. Thinking in terms of patterns can help you handle ongoing plan-build-run work quickly and efficiently, even in places where you cannot set standards easilyand particularly at the product level, where technology innovation is fastest and maturity is a distant goal.
If you create standardized infrastructure patterns that are robust, flexible, and reusable, this will help you streamline the process of providing infrastructure for application developers and business units. The infrastructure pattern matching (IPM) methodology, outlined in Chapter 6, will help you work with your internal customers to set infrastructure investment priorities that reflect real business requirements. Figure 1.4 shows how a pattern-based method unites as it simplifies.
Figure 1.4 Goals of a Pattern-based Infrastructure
Using pattern-based methods, you can avoid the old problem of creating internal "stovepipes" that are isolated from the rest of the infrastructure and don't integrate well with the rest of the business. Instead, you will have an infrastructure that integrates much more easily, serves multiple applications more efficiently, and actually outlives the applications it supports. Pattern-based infrastructures reduce the incredible variety of technologies, processes, and people (skills, roles, etc.) that are required for accurate application delivery, which will result in more focused and repeatable excellence.
Chapter 3 explains how to define, categorize, and catalog patterns, and it provides a starter kit of nine patterns that you can use to begin building an adaptive infrastructure.
3. Develop Adaptive Infrastructure Services
The next step in organizing your infrastructure thinking is to structure components from platform layers into various classes of services to be used by patterns. A service exists when someone delegates the responsibility for performing a process to a service provider. A service provider can be any person or system that can perform a task repetitively. In the outside world, service providers include people such as bank tellers and plumbers. In the IT world, a service provider might be a storage area network, a database, or an IT help-desk person. Unlike a component, which is focused solely on technology, an adaptive infrastructure service is a shared set of technologies that is implemented once, with a common set of processes and people skills, to be reused by multiple applications. While these services are not the entire end-to-end set of infrastructure services for an application, they can be reused by such infrastructure patterns.
To be truly efficient and reusable, services must be decoupled and become separate processes from the person or system that interacts with them. By defining services in this way, you can start removing the stovepipes from your IT infrastructure.
The network itself is an ideal example of the concept of adaptive services. The network has been removed from the application for so long that people tend to forget the days when each application required its own special type of network. Today, no one thinks of the network as part of an application; it's a service on which the application runs. No one builds a unique network just to host a single application. Not too long ago, however, such an arrangement was painfully common.
In recent years, IT infrastructure has evolved to the point where most people use a single network service, namely TCP/IP, to support all applications. While networks are still dedicated for specialized applications, such as the wireless networks used in the power industry to dispatch repair trucks, this practice is relatively rare.
Integration is another important area where services are being decoupled from applications. Enterprise application integration (EAI) uses message brokers to move data transfer functions out of the applications themselves and into a reusable service that can be shared by all applications. The trend, obviously, is to turn reusable shared components over to the infrastructure where they can be more easily maintained and shared across applications as services. This is the kind of building block approach that an adaptive infrastructure strategy can help you achieve.
Chapter 4 explains the organizing principles behind adaptive services. Chapter 5 provides a starter kit of services you can use for your own infrastructure, with special emphasis on Transactional Integration and Identity Infrastructure services.
4. Use Good Tools
Once you have identified patterns, platforms, services, organizational issues, and old problems that must be fixed, you should sit down with a robust set of tools and processes and begin the journey toward organization and clarity. Chapter 6 introduces the following processes and methods that you can use to simplify your job.
Infrastructure Pattern Matching (IPM).
If you're an infrastructure planner, what the business really wants from youin addition to credibility and leadership in the IT arenais the ability to quickly estimate the cost, schedules, and risks associated with new projects. Infrastructure Pattern Matching (IPM) helps by providing systematic answers to three fundamental questions: Who are the users, where are they, and what work is being performed? Answering these questions helps you define service-level commitments, analyze costs, and identify the core technology issues that affect the infrastructure's ability to support business initiatives.
Periodic and Annual Processes.
Having structured, repeatable processes with concrete outputs or deliverables will make a difference in terms of the speed, quality, and cost of everything you do. Chapter 6 shows you how to organize two planning processes that you will execute repeatedly. One of them is periodic (or strategic) infrastructure planning to review your standard infrastructure patterns and services on a regular annual cycle. The other is per-project (or tactical) infrastructure planning, which is done for each application or new technology being introduced into the organization. Figure 1.5 shows the relationship between tactical and strategic processes.
Figure 1.5 Tactical Versus Strategic Processes
With a robust set of tools and a well-defined set of processes, your team is able to respond to application support requests in a repeatable, structured way in a matter of hours, rather than in weeks or months. In the process, you will generate enormous credibility for the adaptive infrastructure concept and for your whole IT organization.
Anyone who uses Quicken or Microsoft Money knows that half the battle in financial management involves keeping your planning portfolios up-to-date. Waiting until tax time to update your portfolios can be extremely painful. The key is to apply discipline and a set of easy-to-use tools to continuously update your portfolios. The portfolio concept is also an important tool of infrastructure planning, as shown in Figure 1.6. Infrastructure portfolios keep you organized as you identify, catalog, and manage your patterns, platforms, and services on an ongoing basis.
Once you develop a set of infrastructure portfolios, people will know where to find the details when they need them. A portfolio can be something as basic as a physical filing cabinet with folders in it or a directory structure with word processing documents, spreadsheets, and diagrams. The best way to make a portfolio sharable is to put it on an intranet site using a database or content management system to deliver the information to the widest audience.
The contents of a portfolio are fairly predictable. For instance, in the Pattern portfolio (see Figure 1.6) you might have a Web Publish folder with use cases, architectural diagrams, and service level metrics showing the service levels that the Web Publish pattern will meet. A reference manifest might show the product names and version numbers to be used for the database component of this reference architecture.
Figure 1.6 The Concept of Portfolios
Techniques for building and using portfolios are discussed later in this book. Chapter 6 provides more detail on proven infrastructure planning methods such as infrastructure pattern matching, predictive cost management, and impact assessment labs.
5. Get Organized
For infrastructure planning to work, it has to be more than just a "good idea." It has to become an essential part of your business.
The only realistic way to incorporate infrastructure planning into your business is to create new roles and responsibilities, job titles, and even new groups or departments where necessary. Someone must own the processes of infrastructure planning and development to ensure that it is completed. Staffing with a full-time equivalent person (FTE) will ensure that at least one person is no longer being distracted by day-to-day operational responsibilities. What's more, infrastructure planning roles must be clearly separated from traditional application development roles. Separating the roles allows each group to focus on its particular strengths, particularly if they offer a shared service with separate lifecycles.
Infrastructure developers can be responsible for designing, implementing, and managing the interfaces between enterprisewide resources and the infrastructure shared by multiple applications.
Application developers provide project-related interface requirements to infrastructure developers who ensure that interfaces are implemented efficiently, securely, and with management controls.
At the group level, having a team of infrastructure planners and developers can create priorities across an array of infrastructure projects. The team can make sure that infrastructure standards, including components, patterns, and services, are available. Perhaps more important, the team can guarantee that the infrastructure standards are reused for particular application development projects. Such a group can also identify potential areas for reuse, not only of technologies, but also of project management methodologies, documentation, and some of the processes and people involved.
Within this more refined focus, infrastructure planning professionals can recognize when unique components are required and determine what they will cost. Planners can maintain a longer-term view of infrastructure requirements, and they understand the cost/return dynamics of infrastructure building. They can also shift the focus from an emphasis on particular technologies to continuous improvement of the delivery process.
By focusing on reuse, product or solution delivery, and the other concepts presented here, infrastructure planning becomes a more organized and tangible process. Presenting a range of potential infrastructure choices to internal customers, including application developers and business users, places the ultimate decision with those who are responsible for creating value within the enterprise. Business users can actually start comparing the benefits of one project to the other, ultimately making the determination from a business standpoint. Infrastructure planners indicate the cost options, but business users must determine the benefits.
Obviously, creating this type of organizational structure requires a clear definition of the relationship between infrastructure planners and application developers, as described in Chapter 6. In addition, planners must establish credibility and maintain constructive relationships with the people who manage project teams within the different business units. Chapter 7 gives further detail on how to organize people and processes into distinct roles and responsibilities, as well as how to encourage compliance with adaptive infrastructure standards and policies.
Chapter 7 also provides more detail on the organizational issues that you will encounter and explores alternatives for staffing and organizing your infrastructure team.
6. Describe Value Through Packaging
You can learn all the engineering principles, design methodologies, and pattern approaches that you want. You can create your own infrastructure development group and achieve perfection in all your processes. But if you can't sell your approach to the business and continually show the value of what you're doing, then all is for naught.
Selling is the main idea here. Business unit managers who hold the purse strings must understand the value of what you are proposing. Only when they see value will they be willing to loosen the purse strings and give you the investment dollars and management support that you need.
One of the most important techniques you can use to sell the value of adaptive infrastructure to upper management is the concept of an "infrastructure product." This product is an ongoing, reproducible, and repeatable set of services that your IT organization can deliver to the business.
For example, in a retail store environment, line executives will sign on much quicker for a world-class system that sustains a particular retail function, such as point-of-sale transaction processes, than they would for a world-class systems administration function. Retail executives will always be more interested in the in-store process, which they see as more valuable. When dealing with these types of concerns, your emphasis should be on packaging and pricing infrastructure products that support those efforts. Don't just solve your own infrastructure problems; solve your customer's problems too. At the very least, make a connection that shows how the work you must do to address your own issues will also end up solving their problems.
In addition, business leaders often have specific applications that they will pay extra to see delivered well, such as e-Business systems, enterprise resource planning applications, customer relationship management solutions, collaborative engineering capabilities, or accounting applications. Once you master the quality-of-service issues, you can create premium subscription services for applications, while ensuring that these services are handled in a premium fashion. Such applications can then justify additional expenses such as online backup and around-the-clock support, because of the higher value perceived by the business.
Once your organization accepts the concept of infrastructure as a set of packaged products and services, infrastructure planning becomes an ongoing process of refinement. It focuses more on increasing the service levels offered to the business. As you add more infrastructure and applications, the entire conglomeration starts behaving in an almost organic fashion. The objective is to optimize ongoing investments, while maintaining a balance between what the infrastructure delivers and what applications require.
As with any other business, deliverable products should be packaged in a coherent manner and supplied in a consistent, repeatable fashion. They should be organized to match what the business values. If infrastructure costs go up, you must tie these increases to real business needs and value. With a product-delivery mindset, the idea of reusability becomes more important in your approach.
Chapter 7 explains how to develop packaged infrastructure products and communicate their benefits to managers in a way that will earn levels of funding for future infrastructure development projects commensurate with their business value.