One of the really cool things about getting out and talking with users about different cloud computing approaches is that, in many cases, you get to pose radically different ways of doing things within an organization. In some discussions, you can practically see the wheels turning behind the eyes of the audience as they think what this new approach means to them, their teams, and their organization. This usually results in some fun (and challenging) conversations about what cloud adoption means to the existing operational process of users.
I spend much of my time talking with users about lifecycle management for middleware application environments. Anyone familiar with these environments knows there is nothing trivial about them. They are made up of many different parts (operating system, middleware software, applications, etc.), and each of those parts usually involves their own setup and configuration. Of course, not only does each part require its own set of installation and configuration steps, there is also the need to configure integration between the parts, and there are ongoing operational needs as well. To accomplish the various installation, configuration, integration, and operational activities, companies define processes that they typically assign to different teams, thus leading to the all too familiar organizational silos.
When talking to an organization about the nuances of their approach for managing application environments, I always find it interesting to see how a cloud computing approach affects their organizational silos, and thus their operational processes. While these effects are sometimes viewed in a negative light (mostly because they challenge the status quo), it is the job of the cloud provider to show value and benefits in light of any adoption hurdles.
To consider the operational effects cloud can have on application middleware environments, let’s consider a common scenario: updating a deployed application in a middleware environment. Whether you realize it or not, over the years, the middleware industry has implied a process for carrying out application updates. This process means that users update applications in-place without addressing the underlying infrastructure. This methodology is really born from two historical challenges associated with middleware environments:
- It took to long to install and configure the environments
- It was too hard to consistently configure the same environment
Now, there is nothing inherently wrong with this process of updating deployed applications, and in some cases, it is the right approach. However, in other cases I have heard users express frustration with this approach. In some cases, users want to deploy application updates into a green field. In other words, they want to deploy their newly updated application onto a newly installed and configured set of application infrastructure. This is especially true for development and testing environments where users want to eliminate the likelihood of infrastructure configuration drift, thereby ensuring they are testing only the new behavior of the updated application.
Based on previous techniques for managing middleware application environments, the green field application update scenario was hard to support in a viable manner. On the other hand, I show users quite often how cloud computing solutions make this scenario easy to support from a technical perspective. A cloud-based approach makes it possible for users to define and persist templates or patterns that represent their fully configured application environments. Effectively, when combining these patterns or templates with technologies like virtualization, one can provision updated applications on top of a clean infrastructure install in a matter of minutes. Further, they can rest assured knowing that they can faithfully reproduce these environments repeatedly.
Now, the real fun starts when we consider these technical benefits and the capacity of a given enterprise to absorb such approaches. As I said earlier, often times when I discuss and show these new cloud-based approaches to old challenges, I can almost see the internal contemplation among the audience members. This contemplation is not so much an attempt to grasp any sort of complex technical detail of the cloud-approach, but instead, it is an attempt to reconcile what they see proposed versus what they do now.
Consider the application update scenario again. If I can outline an approach whereby a single user can provision an entire application infrastructure environment, including the updated application, in a matter of minutes, what does that mean to the organization? While it certainly provides a real benefit for some subset of the application update scenarios, it is almost certainly at odds with the current operational processes. Can the enterprise adopt an approach that condenses a set of actions typically requiring multiple teams to carry out multiple steps independent of each other? Ultimately, the success of cloud adoption in many of these cases hinges on cloud providers understanding a potential consumer’s existing operational processes and making a best fit proposal for their new approach. It’s not easy work for sure, but no one will call it boring!