Thursday
Jul072011
PaaS for Enterprise - make it simpler and it will happen


Departmental App growth leads all enterprise adoption and developer productivity has led


A typical departmental app for an F1000 company might cost $1.5M. Not having to spend $500K on hw helps a lot but we still have to do business requirements, training, docs in that budget also. Your going to put a dev team of maybe 5-6 for a year - maybe - within that budget. Is one of them a cloud architect? Or a tools master? If you do have a cloud architect, that person is also the data architect and team lead. And the tools master? Probably the guy no one trusts to code.

You’ve got legacy code you have to refactor or encapsulate, API’s to code to existing apps, performance tests to write, status meetings, etc.
Fast forward 20 years and now LAMP has made developers lives easier. Rails too. But even the best of the Cloud frameworks - CloudFoundry and Eucalyptus come to mind - are still to focused on Ops. At least they enable choice for the developers but it’s up to the developer, not the framework or tool, to ensure success. The burden of analysis and knowledge is too high on the typical business development team.

What do we need to make this EASY?
Truly automatic instance deployment and tear down
Make it happen, the right way, without me worrying about it at all. AppForce (SF.COM) and AppEngine (Google) are here. Heroku and Jenkins/Hudson maybe, but one still has to do too much thinking about this. Why does a developer need become a sys admin to make things scale?
Distributed Data without a religious war
Data consistency requirements aren’t necessarily known at the time of application architecture and there are cases that often emerge where the consistency varies based on business rule not data field (inventory, stock pricing are two examples that come to mind.) Having the flexibility and tools to understand data aging, identify bottlenecks and make tradeoffs just
isn’t there today. Hadapt and Clustrix both have some interesting approaches here. Others are just building things in a very soft manner but if the app actually involves the real world, sometimes real concurrency is actually needed. People are deploying NoSQL often because it’s open and they feel like it can scale, not because the app is suited to that particular data store or because they really understand the concurrancy requirements. Why do they have to?
Scalable code for mere mortals


While it’s possible to build a scalable system in Java or C, it requires a bit of care to avoid the pitfalls. Does that mean we all need to code in Erlang or Haskell? No. But the platforms need better/easier frameworks to implement what we need. Maybe more clojure and less node.js...still, again, it’s all too esoteric for the typical enterprise business programmer. Why can’t the systems enforce atomicity and statelessness? The logic pieces are seldom that complex.
Current Status/Predictions
The technology providers who make life easier for developers will win. But it’s too hard to implement the cool public-cloud PaaS products inside the enterprise for trust and security reasons. So, Eucalyptus/AppScale and CloudFoundry and other inside the firewall cloud platforms need to succeed. But also, we need better frameworks on top of the cloud

Reader Comments