Monday, February 11, 2013

AM as a Service (AMaaS) is Critical for Future PaaS

Its becoming evident that the industry is undergoing adolescence challenges with both IaaS and PaaS. Only in the past month we could read across the blogosphere about changes in both HP's cloud leadership as well as with Eucalyptus's top management. We could also notice the continual investment in the numerous IaaS open-source projects. With just naming a few of the current players such as OpenStack, CloudStack, Eucalyptus, OpenNebula and the various companies building on top of them such as HP and Rackspace, the open IaaS landscape seems becoming a bit overcrowded. And with so many players, providers struggle for differentiation, while consumers are a bit overwhelmed with their choices. ...

Tuesday, February 5, 2013

Social ITIL

A frequent argument related to DevOps and agile release management is the one doubting the relevance or validity of ITIL nowadays. The claim is usually revolving around the fact that agility requires much shorter release cycles. And in the view of many, ITIL symbolizes an obsolete process paradigm which is no longer relevant or applicable with the agile DevOps mindset. But there is one basic caveat in that argument, which is that ITIL is a process framework rather than the implementation of the framework. And while we surely have an agile gap with how we manage enterprise IT processes today, ITIL is not the cause of the problem. Please notice that I am not making any argument here about ITIL's content or its potency compared to other enterprise process frameworks (as there are surely other such frameworks, e.g. COBIT, CMMI, etc). This is merely an observation of where we should look for the solution.

But the problem doesn't originate only from the way that we have implemented traditional ITSM products. Even with DevOps release solutions we are still lacking the promotion of a true agile process. Surely most new DevOps release products introduce a host of collaboration and easy to navigate processes. But in general the industry is still falling short on delivering agile processes that would enable complete freedom of navigation between the processes themselves as well as between their many steps.

Today the common hand-off and collaboration between products (or even within their own suites), be it enterprise ITSM or so called agile DevOps products is through predefined integration. Thus visibility of information is limited to only that amount of data which was deliberately sent through the integration channel. Moreover, the process is usually flowing in a single direction and lacks the desired elasticity. Adding or altering the process dynamically is completely out of the question as integrations are imposing a tightly coupled eco-system of solutions.

One of the directions to remediate the current state as articulated above is to adopt a truly social approach to IT process management. Consider your IT processes connecting and collaborating via a social framework that is similar to the way that you consume your personal social networks. In that case data could be shared from process to process freely using open constructs such as walls and discussions. Decisions would be open across organizations through polls. And a user would be able to follow a breadcrumb of social connectivity from any process to any related one just like that. Loosely coupling the processes through social network collaboration could pose the new horizon for DevOps process management. One that would influence both the enterprise suites as well as the new agile solutions. And once we may have achieved that vision, one could argue that ITIL is again relevant for our day to day via its new social incarnation.

Elastic Cloud Applications, Or the Lack Thereof

Application elasticity is probably one of the most misunderstood topics in both AM and cloud management today. Elasticity is addressed by the various cloud solutions through automatic scaling. And while cloud promotes automatic scaling of both infrastructure and applications, it is missing on a true application scaling mindset.

In today's cloud landscape we are usually talking about horizontal vs. vertical scaling. With horizontal scaling cloud can control the number of replicas of VMs or application containers. Without a doubt this is a must capability as there will always be a limit to the amount of resources that one can hand to a single replica / instance. Thus scaling horizontally is the only way to keep on adhering to higher application demands (of performance, capacity or availability). The complementary scaling method is to vertically optimize the current replicas / instances. The rational behind vertical scaling is that adding instances is a somewhat wasteful operation, and should be avoided if possible, due to the overhead of the resources consumed by both the VM itself as well as by the application server container. In that regard cloud solutions typically provide a way to increase or decrease the resources allocated to the VM. And this is where application management comes to mind, as this type of vertical application is still a pure infrastructure solution.

Monday, February 4, 2013

NoOps Application Management

When we browse the web nowadays it sometime feels as if AM is more of Application Monitoring than Application Management really. The question  is whether focusing on monitoring and alerts resonates well with the need (as articulated in the previous posts) to automatically manage applications in the cloud as well as support agile release cycles. It seems that AM may need to evolve in order to address these new challenges.

It is not that suddenly management tools do not require these monitoring capabilities. Its just that its no longer enough and its not an unfair question to also ask whether the data that AM solutions provide today is somewhat wasteful in the new cloud ecosystem. In traditional production environments before cloud, we could consider  AM solutions to operate the same way in production as in pre-prod and dev/test. Meaning that the same exact type of data would have been useful and productive for both operation roles as well as for developers and testers. A classic example for that can be the AM transaction tracing layer. This AM layer provides a view into a problem and the entire associated transaction stack / path, from the end-user experience and through the various backend hops (middleware). Lets put aside the fact that this might be one of the most complex and cumbersome solutions in AM for production environments. The question remains whether this type of solution actually addresses the new cloud and agile challenges as articulated above. It could be that in pre-prod and production, unlike dev and test environments, instead of providing deep understanding of the problem for a human review, we may now need to shift our focus to fixing the problem in an automated NoOps manner, fit for the cloud.

DevOps is a Catalyst in AM Transformation

As mentioned Devops is about the promotion of three key (sometime overlapping) concepts: application centric management, agile development, and hybrid cloud automation/NoOps. DevOps puts the application in the center.  Therefore one of the questions arising from DevOps is how it is going to affect and change the traditional Application Management (AM) market. We can get a good sense of the answer by examining the relevance of the two other pillars of DevOps in the context of AM.

Agility is a powerful driver in DevOps. It is best articulated as enabling ever shorter release cycles. And while in the past we could be talking about release cycles spanning over months of development and test, today's agile development is enabling weekly release cycles. The projection and goal though is achieving soon (within a couple of years), the nothing less than amazing standard of daily release cycles. With some companies, namely Facebook, leading the industry in that regard already. It is obvious that getting there requires a new breed of solutions. And AM is no different as it is a key element in the chain of release.

Cloud is another prominent driver of DevOps. The cloud brings with it a new type of environment for applications, but just as well a new "NoOps" mindset. Connected and overlapping with the agile concept, NoOps promotes completely automated cloud management. And by that it challenges the core essence of what AM is today. Applications should be provisioned and managed automatically. Moreover, cloud introduces the concept of elasticity in general and application elasticity in particular. This is a totally foreign concept to traditional application development and release, where one can not fully anticipate and test the environments (e.g. the infrastructure scale) to which the application will be assigned to.

Applicable DevOps

DevOps is many things. Its usually that way with emerging markets. But while the industry is relatively unified regarding the problem that it is supposed to solve, its not that obvious yet whether DevOps is really a market of its own. DevOps basically promotes bridging the gap between dev/test and ops/production. It covers both the tool chain aspect as well as the human collaboration factor. Thus we can find DevOps mentioned today cross many domains. On the dev side we can find it related to managing documents, projects, tasks, requirements and bugs and all the way to tool chains of IDE, source control, build, test and agile automation. On the ops side DevOps is mentioned in relation to ITSM, cloud management and enterprise automation.

But as DevOps is spread so wide across the industry, maybe we should simply consider it as a concept. One that is best explained as promoting a combination of three key ideas. Namely - application centric management, agile development, and hybrid cloud automation/NoOps. Now it is up to each of the relevant markets to figure out how to adopt a DevOps strategy within its own domain. And Thus one of the main themes in this blog would be covering the challenges that DevOps is bringing to Application Management (AM) and how these challenges may become the catalyst to propel AM forward.