This is Part 2 in my series of post on the topic of PaaS (Platform as a Service) and in this post I have covered why PaaS for enterprises is more than just DevOps and a larger "technology convergence" in the core "Software Engineering" area is leading this perfect storm called PaaS. The 1st part is: What is PaaS all about? - Part 1 : It's about Abstraction
Before I go deep into this topic, I want to clarify "technology convergence" from "programming environment optimization" primarily in the context of this post. The programming environment optimization is more commonly referred as "DevOps". This picture from Wikipedia describes the problem space of "DevOps". (Check out this post on : What is this DevOps thing, anyway? )
To deliver agile projects with continuous integration approach there are significant coordination that is required between Software Engineering, QA and Release management teams. DevOps tries to eliminate a good portion of manual activities through technology. In the absence of DevOps prior to cloud, these teams use/used disparate tools and technologies that are not integrated/don't talk to each other. Many of the inter-team touch points are managed through processes outside and filled through manual work. Naturally there is good possibility for quite a few things to fall through the crack. DevOps's promise is to fix issues around this area. Without a cloud based Dev/Test/Deploy model (read as pre-cloud era) it is even hard to visualize a solution for those issues. While DevOps is a form of "Technology Convergence" at a lower level of operation/software production, it is not the same kind of "technology convergence" that I wanted to cover in this post. Most of the general purpose PaaS (gPaaS) providers like Google App Engine, Microsoft Azure, Heroku and others cover a portion of the DevOps capability. That is one reason why OrangeScape is different and why we complement and not compete with GAE and Azure. BTW, take a look at this presentation: 5 Cultural Hurdles to DevOps
"Technology Convergence" - I am talking about is in the area of “Software Engineering" for building business applications especially the enterprise ones. For an enterprise class business applications there are a number of puzzle pieces that need to come together. Often times in large enterprise projects different products, each specializing in their own area, are brought together by software system integrators like TCS, Accenture, Infosys, Cognizant, Wipro and the likes. For workflow / business process management (BPM) they choose between Savvion, Lombardi, Intalio and the likes. For Business Rule engines they choose among the likes of Fair Issac, iLog, Pega (now positioning themselves more broadly). For data model/persistence the choices are Hibernate (for Java), N-Hiberator (for .NET) and Oracle's Toplink. For web services/integration capabilities libraries like Apache Axis have to be integrated. For the presentation layer, your choices are various MVC frameworks between JSF, IBM's XPages, ASP. NET MVC Framework, JFace and the list is long. In large end-user companies like Pfizer, Unilever, Coco-Cola there is a very big "Enterprise Architecture" group whose job is to make sure all these pieces carefully handpicked to create a enterprise standard and keep the enterprise standard continuously updated as the technology world changes by the year. Yes - I see what you are thinking, large enterprise applications are one mega gluing projects. Leave alone the technology integration challenges - you have to deal with tons of political and pushing-the-ball-to-others-court issues all the time.Luckily, there are PaaS vendors who go beyond just DevOps and solve the meatier - Software Engineering issues to help enterprises build sophisticated applications with much less challenges. Obviously, OrangeScape is clearly in that list of PaaS vendors who solve this problem very elegantly and I will let you figure out where our competitors stand on this!