The Case for Adaptive Infrastructure
Everywhere you look today, change is occurring at warp speed. And nowhere is it happening faster than in the business world. Those of us who have ridden out the business cycles of the last two decades understand that change is a given. But, with the rise of the Internet and e-Business, change isn't something that you decide to do anymore: It's something that can be forced on you daily.
You hear a lot of talk about business agility, but what does this really mean? It certainly isn't the ability of the CEO to leap tall buildings in a single bound. Agility means being prepared for change at a moment's notice. It also means you must have the infrastructure in place to support change without throwing away everything and starting over after each change because a completely new start takes too much time and is almost always too expensive.
The reason organizations need an adaptive infrastructure is very simple: More change happens in business than IT or the business can anticipate. To cope with the many unforeseen circumstances and competitive demands, businesses must create and possess a certain flexible, adaptive range.
Developing this flexibility requires an infrastructure planning process that makes it much easier to introduce new business initiatives and to grow initiatives that are already under way.
This chapter explains the fundamental approaches to adaptive infrastructure, so that you can start creating a more focused, organized way of dealing with changes in your organization. An adaptive infrastructure approach requires you to create deliverables in three areasplatforms, patterns, and servicesand follow a five-step process for infrastructure planning. Concentrating on the delivery of solutions or "infrastructure products" and reusable components will provide you with the keys to success.
What is IT Infrastructure?
Before getting started, it helps to agree what the term "IT infrastructure" actually means. Generally, infrastructure is a relative term meaning "the structure beneath a structure." This definition implies different layers of structure, which metaphorically provide support or services, as shown in Figure 1.1.
Figure 1.1 Types of Infrastructures
In the physical world, the term infrastructure often refers to public utilities, such as water, electricity, gas, sewage, and telephone services. These utilities are just more layers of a total structure that includes IT infrastructure. Each layer of infrastructure has certain characteristics, including:
Shared by a larger audience than the structures it supports
More static and permanent than the structures it supports
Considered a service, including the people and processes involved in support, rather than just a physical structure or device
Often physically connected to the structure it supports
Distinct from the structures it supports in terms of its lifecycle (plan, build, run, change, exit)
Distinct from the structures it supports in terms of its ownership and the people who execute the lifecycle
The notion of a separate ownership and lifecycle (especially the design and run phases) is fundamental to the concept of infrastructure set forth in this book. This concept contradicts an assumption implicit in many object-oriented application development projectsthat all reusable components should come from one set of designers, or that all designers should use a common framework such as Java 2 Enterprise Edition (J2EE). Discarding that assumption means you must design with a much looser coupling in mind.
In contrast, those things understood as IT infrastructure (networks, servers, etc.) are already separate in ownership and lifecycle from application development. Expanding the notion of infrastructure is one key goal of an adaptive infrastructure strategy.
The Idea of Shared Infrastructure
When you think collectively of the people, process, and service aspects of a structure, you can more easily refer to it as a system. Not all infrastructure is physically connected to the structure it serves. For example, many people consider mail delivery, fire fighting, police patrolling, and garbage collection to be infrastructure services, yet none of these services must be performed while in physical connection with a building.
Infrastructure is easily described when it is clearly shared by many applications. Strictly speaking, however, many physical infrastructures aren't shared by multiple applications. The notion of infrastructure must also include the idea of an unshared infrastructure, which means every application has its own infrastructure.
Certainly, in some cases, it's best to consider a separate component still part of an applicationeven if it is not shared much. Consider an appliance, which is a bundle of hardware and software that is planned, built, and run as a single unit. Now consider a common off-the-shelf software package that is designed to be deployed and run on any common server type such as UNIX or Windows 2000/.NET Server. Even if the server isn't shared by other applications, it seems odd to think that it isn't infrastructure.
Surprisingly, even if the physical component isn't shared, other types of sharing may still be extremely valuable to infrastructure practitioners. The key distinction is that while the server isn't physically shared by multiple applications, it shares its lifecycle with other servers of the same model, in the sense that it is designed, built, changed, and exited by the server vendor. That server might be installed and managed using shared operational processes. Accordingly, the division between structure and infrastructure is relative, as well as porous.
Shared infrastructures certainly offer some benefits, which usually include lower costs due to greater efficiency, higher quality due to better management, and faster implementation times because it's already installed and available. However, a shared infrastructure is not always better, nor is it always practical in real business conditions. The value of shared versus unshared infrastructure is discussed in detail later in this book, but keep in mind that both kinds exist, and both are still infrastructure.
Creating Your Own Definitions
The previous section discusses one way to define infrastructure, but other definitions abound. For instance, some people define infrastructure as "anything that is shared across multiple business units," which includes large corporate applications, such as enterprise resource planning (ERP), customer relationship management (CRM), supply chain management (SCM), or even e-mail applications. Given that much new development treats these packages as infrastructure to be leveraged, this definition also shows that the job of maintaining applications has passed to a different group of people from the designers and developers of the application. Clearly, ownership of the solution is a key condition when defining layers of infrastructure.
Another common definition of infrastructure might be "anything that isn't fun anymore!" Many application developers and business units that enjoy the planning and execution phases of a project have no interest in actually supporting in-place infrastructure once the operational phase begins. You see this happen also with marketing departments that hastily and gladly give up ownership of the Web site after the first significant infrastructure meltdown. In fact, this kind of thinking is a clear indicator of the need for some separation of ownership and lifecycle.
You can create your own definition of infrastructure, but remember the general rules and cases already discussed here. The next few chapters provide more specifics on the technology side of particular infrastructure components.
Why Infrastructure (Suddenly) Matters
As time goes by, more businesses are buying, commissioning, and even renting applications in one form or another. Meanwhile, fewer companies are building their applications internally from scratch. As a result, an adaptive infrastructure strategy becomes crucial to providing a versatile, flexible, and agile foundation for application deployment.
As business units increasingly make the application selections for their companies, infrastructure becomes a key focus for IT personnel. Therefore, an adaptive infrastructure should exhibit several key traits:
Efficiency. The ability to provide reusable components that are reasonably priced and can be turned around quickly for application development projects.
Effectiveness. The easy integration of all components in a way that supports their robust operation.
Agility. Effective planning and design processes that allow companies to develop new applications quickly and to re-purpose or upgrade their existing infrastructure to support new requirements for existing or new applications.
Infrastructure matters because as your organization turns to third parties for more of its applications work, getting the infrastructure right is what's left for you to do. From a practical standpoint, if you are implementing a major new application package, what differentiates your effort isn't the application itself, but how successfully or quickly you get it running and how well it works. In many cases, these problems aren't application issues; they're infrastructure issues.
Most important, the Internet has made applications and infrastructure increasingly visible to customers and to the general public. Today, much of your organization's reputation and brand identity depends on the quality of your IT infrastructure and operations, not just on your applications.
With the Internet as a common currency in the business world, any lack of integration, robustness, or agility on your part becomes immediately and embarrassingly obvious to key customers, no matter where they are in the world. When you made mistakes in the past, only your employees knew and it wasn't a big deal. Now, if you have problems, the whole world knows. CNN may broadcast a report on how your Web site hasn't been up for five hours! That's definitely poor advertising for the company's brand.
An infrastructure that frequently fails, or doesn't support the traffic load, or can't provide a single integrated view of your complex organization can cost your company immediately in lost sales and lost goodwill. When you realize what's at stake, you begin to see why savvy organizations are investing more to make sure that their infrastructure doesn't lag far behind their business vision and applications. Unfortunately, once your lack of robustness and agility is exposed, you cannot change things very quickly. Having an adaptive infrastructure will ensure that you don't get caught flat-footed when your time comes to shine on the world's stage.
The Clash of Cultures
So you'd like a better infrastructure but you're a little short on cash? IT people realize all too well how difficult it can be to sell infrastructure improvements to the organization. In companies with less enlightened management, any IT department trying to reach the goal of an adaptive infrastructure will encounter two common yet fundamental reactions.
Stability is good. People often feel it's good to have an infrastructure that is stable, unchanging, and predictable. Certainly, predictable, systematic behavior must be achieved at some level. However, infrastructure must also be flexible, even breakable, to be fully leveraged by business.
Infrastructure costs are bad. Second, businesses usually regard IT infrastructure as a cost to be minimized or a necessary evil. However, as business increasingly becomes "informational" in nature, the systems for information capture, management, and delivery become even more central to business success.
A clear misalignment between business and IT organizations dominates infrastructure decision-making. Business is chronically disconnected from what is happening on the infrastructure side. Here's the way it typically works:
High-level executives work with high-level consultants to determine strategic direction. This direction might take the form of some broad initiative, such as becoming more customer-focused, creating unique new offerings, integrating with suppliers, or becoming a low-cost provider.
Usually, this initiative drives some major application development. However, information about these decisions often reaches infrastructure planners in the form of rumors or hearsay and, usually, after the decision has already been made. Infrastructure planners should be involved in the decision-making process. All too often, they aren't.
Meanwhile, the systems and applications are developed and customized behind a wall of consultants and systems integrators. The resulting application code, servers, and other components often show up in the operations center when the application is about to be promoted into production, expecting that IT can support it without any extra costs.
Not surprisingly, this disjointed solution often results in applications that do not perform nearly as well as intended. Such applications can even degrade the performance of other applications, because developers don't understand the complexities of a shared network infrastructure within the organization.
This approach further increases the complexity of managing the whole infrastructure. Fresh applications often arrive with new or different components, which require an already over-stretched IT organization stretch itself further to support these variations.
Unfortunately, the need to support everything often leads to mediocre support at best, or expensive and ineffective outsourcing at worst. For excellence in business as well as infrastructure, you must be able to focus on what's critical to the business. Of course, outsourcing isn't all bad; it's a legitimate business requirement and you must assign skills and effort to this indispensable approach. However, outsourcing infrastructure must be well thought out and not executed only as a reactive or simple coping strategy. Otherwise, the infrastructure becomes expensive, slows things down, and usually ends up generating quality problems.
Finally, this situation places IT in the unenviable situation of developing an ongoing investment strategy with little or no idea of what new applications will look likeor even what type of business they must support. Not surprisingly, this way of doing business can get quite expensive. While technology vendors deliver constant improvements in price and performance, major infrastructure investments are still multimillion-dollar decisions.
The gap between business and IT, as well as between application development and infrastructure within IT, often causes havoc. Some of the issues can be addressed through better communication. Fundamentally, however, infrastructure planners within IT must be prepared to take their own initiatives. To solve the problem, infrastructure planners must introduce standard practices and procedures into the planning, design, and implementation phases. These standards should create and accommodate adaptability.
What's the Problem with Most Infrastructure?
Simply stated, the problems outlined above manifest themselves in many different ways. Do any of these comments sound familiar to you?
Costs too much. You can't get funding, can't figure out costs, or can't articulate value.
Too slow. You can't get applications out the door fast enough to be effective. The time to market must be faster.
Nothing works together. Your systems are incomplete, overly complex, or unpredictable. Data and processes from one application may not be available to another.
Handoffs donít work. Ownership isn't clearly defined. Handoffs don't work between IT groups such as application developers, infrastructure planners, and operations. People are always dropping the ball. Key assignments aren't being made to get work done.
Too much theory, not enough practice. People don't know enough about technology, or they are waiting for technology that will take too long to arrive, so they are paralyzed by uncertainty.
Lack of focus. Planners spend all their time responding to a pager and never have time for key planning activities.
What else causes problems in your infrastructure today? Is it technology, processes, or people? What problems would your IT infrastructure customers identify? You should have a good idea of the exact nature of the problems in your organization before you start suggesting solutions. Then, as you move toward solving problems, you can tie your solutions back to the problems they are meant to solve.
What's the Solution?
Even though your problems may seem unsolvable, in fact you have some very clear and workable solutions to your dilemma. You can stop the vicious cycle of problems described above in various ways:
Plan your infrastructure end-to-end. When you plan infrastructure, you can't just plan a piece at a time and hope it comes together. To be adaptive, your infrastructure planning efforts must become more extensive. They must consider all layers of the IT model and fit new components into a complete infrastructure solution that can service an entire application. This book provides a number of successful techniques, such as categorizing infrastructure into patterns that can help you do a more thorough job of planning.
Design an adaptive infrastructure. Your infrastructure shouldn't just meet today's requirements; it should be ready to scale, adapt, change, or grow to deal with challenges already looming on the horizon. Once you identify these challenges, you must face them squarely and start designing for them immediately. This book explains the fundamental concepts of adaptive infrastructure and explains how to identify your major challenges. The answer to being more adaptive usually involves focusing more on people and processes, instead of focusing only on the infrastructure components.
Execute a reuse-centric strategy. A key reason for building an adaptive infrastructure is that many design standards and actual physical components of the infrastructure can be reused. Reinventing the wheel for every application only makes your infrastructure increasingly unmanageable and slows down its delivery. This book explains how to identify key infrastructure patterns within your organization and how to structure them to leverage a set of reusable adaptive infrastructure services.
Overcome the tech-only focus. Many IT people seem to focus on making product choices or architecture choices, while ignoring the people and processes needed for successful operation. You can make great technology choices, but if you don't have the right people and processes, your choices will be useless and you won't get the success you need from them.
Choose the right technology and products. Of course, striking a balance doesn't reduce the need to always select the best technologies and products for your infrastructure and application delivery needs. The latest, best-of-breed solution might not always be the right one for your organization. Quite often, it turns out that the best engines are not made of the best individual parts as much as they are made from parts that work best together. The same holds true for IT infrastructure.
Balance immediate needs with long-term goals. Few people have the proverbial luxury of stopping the train to redesign the railroad tracks. There simply isn't time to do that in today's fast-paced world, and the costs would be horrendous. To be successful, you must be able to change what you are doing while you are still doing it. This theme is repeated throughout this book. You must strike a balance that helps you transform while you are performing. This book shows you how to create this balance, and it gives you a few specific approaches that can work for you.