Archive

Posts Tagged ‘Development’

Time to choose your side – Part 1

June 22nd, 2009
cloud ComputingThe last month or two has been distinctly cloudy, every hosting , telecommunications or commercial company I have spoken to had a single topic on their mind ,cloud computing and what the potential impact will be on their future.The most interesting discussions are with enterprise hosting related companies and shared enterprise data-center operators, where the confusion around “cloud” seem to be most prevalent. Even in this confusion every enterprise co-location, hosting provider and shared data-center owner I spoke to expressed an urgent interest to move into the cloud space, or at least what they perceived to be the cloud space.

The  “xyz as a service” market is currently split into two separate models, with the divide being most clear in the infrastructure as a service (IaaS) market, a market of particular interest to current enterprise hosting providers and shared data-center operators as it has the potential of eroding their current business.

The first model is the enterprise environments as we know today, dominated by large enterprise software providers like Oracle and SAP. The second is the newer market dominated by the Amazon’s of the world. This second market I refer to as Commercial Commodity Computing rather than cloud computing to get away from the cloud confusion. The first trend centers around who leads and who follows in these two markets.

Infrastructure and applications

Trend - Who leads and who follows

Traditional Enterprise

Application Drives Infrastructure Architecture

Application Drives Infrastructure Architecture

In the enterprise market the infrastructure architecture is dictated by software applications. If you plan a deployment for 100 users you buy a small server. If you plan to deploy for 2000 users you buy a large server. There is no getting around this, nearly all popular enterprise applications have been developed to a deployment model where horizontal scaling is not a first class citizen. In this space the application architecture is fixed and the infrastructure deployment variable.

Commercial Commodity Computing

Infrastructure Drives Application Architecture

Infrastructure Drives Application Architecture

In the commercial commodity computing space, the application architecture adapts to the infrastructure. As the infrastructure in this space is mostly fixed in dimensions, the application architecture has to adapt to what is available. A good example of how fixed the dimensions are is Amazon’s Elastic Compute Cloud where you have a choice of small, large or extra-large. The application architecture has to fit in this mold to make use of the service. If an application does not fit in one of these molds the only alternative is for the application architecture to be adapted to make use of multiple “servers” or instances to satisfy the requirement. In this space the infrastructure deployment architecture is fixed forcing the application architecture to adapt.

Trend – Buy vs Build

Buy vs Build

Buy vs Build

As the commercial commodity computing market is relatively young when compared to the established enterprise software market , developing applications is currently much more prevalent than buying commercial applications. This market is in a similar stage to the enterprise market a few years back when large corporations developed most of their systems in-house, from financial systems to human resource and payroll systems. As the fixed deployment infrastructure building block architecture model becomes more wide spread I expect it to mature in a very similar way to the enterprise model. To a stage where the available commercial applications will be naturally suited for deployment in the commercial commodity computing space.

Popularity: 6%

Hein General , , , , ,

Open source and software bloat

June 8th, 2008

An interesting side effect of community developed open source software is that, in general, it produces less bloated and more modular software packages that their binary , commercial only counterparts. Multiple factors are at play that bring this about. These differences can be summarized in three main areas, the development, distribution and deployment models.

Development model

The development model followed to produce software has a large role to play in the characteristics of the end product. Developed in a time when a new functionality release every year or two was the acceptable norm and new functionality directions were known only to to a small group until the big release day, as much as possible had to be crammed into this single event. The functionality released also had to be as feature rich at release as possible, leading to bloat in functionality that might or might not become widely used after release. With the acceptance of the “ Release early, release often” methodology described in “The Cathedral and the Bazaar” by Eric S. Raymond in 1997 now inherent in open source community developed software this all changed. No longer are large portions of the application developed on the basis of market research that everyone hopes would still be valid when the end product is released months or years later. New functionality in community developed open source is incorporated and released on a continuous basis and is usually not feature rich at release. This allows the non critical features to be developed and added only if there is demand for them, leading to a feature set based on constant user feedback and demand. One can however not draw a distinct line between development that started in the traditional model and development that started their existence as open source. Examples of development that had their existence in the long release cycle, binary only model and have successfully emerged into the open source, release often, release early world are available. One such development is the Solaris operating system from Sun Microsystems, traditionally a binary only long release cycle for major changes ( 3 – 5 years) classifies this as a traditional development. Releasing this development effort under an open source license and adopting an open community development model has in a short period of time transformed Solaris into a fast moving, community driven effort that was released as OpenSolaris 2008.05 earlier this year. An operating system with a release plan of every six months and ample opportunity for community involvement and direction.

Distribution model

In a former life in the database world I was amazed when Oracle started delivering just about all their products as 90 day trial versions on CD’s to my office. Not only the products I was licensed for, all products for just about any popular operating system. My office was littered with Oracle CD’s, Personal Oracle, Oracle Transparent Gateways, Oracle Application Server for Windows,AIX,Solaris, HP/UX name it, I had a few. It went so far that we regularly used Oracle CD’s as coasters to put drinks on when we had internal functions. As the software grew in bulk to occupy multiple CD’s per product, the deliveries slowly wound down and eventually stopped, to be replaced by the general availability of Oracle software for download from their website. People still in the database world now report that it is close to impossible to get a DVD out of Oracle for software, the standard answer being “we do not have any DVD copies, ordering will take a few weeks”. This changed things though , rather than leaning over and grabbing the Oracle CD or DVD more and more people now go directly to www.mysql.com and download the latest version. Asking developers why this is the case, the answer comes back as a surprise. I expected a long explanation about how open source is better and all the well known reasonings. Few people mention this though, the more standard answer is even simpler, downloading MySQL, installing and configuring takes 10 minutes. Even less if the operating system you happen to be using already contains a MySQL distribution, which accounts for just about all popular operating systems used as development platforms, with Windows being the exception. The second reason is the download itself, dragging down 1.7 – 2.3GB to satisfy the need for a basic Oracle database is an impossibility while sitting in an airport, where it seems new age developers do a lot of their tinkering.

Deployment model

With access to technologies thrown wide open via the internet distribution model a bigger range of individuals than ever before have access to software components and technologies. No longer is software something that is necessarily supplied with a large vendor pre-sales force to make the first “ have a look” or proof of concept installation work. Software is now downloaded and installed by more students , developers , administrators and end-users than any company can support on an individual bases. MySQL is rumored to have a download rate of 50,000 to 70,000 copies per day, imagine having to hand hold every one of these on a per installation basis. Even if all 386,558 IBM employees were MySQL capable they would have a tough time getting 50,000 – 70,000 of them to a different location every day. There is a whole essay to be written on why people intensive models of deployment is on the road to extinction, but we will leave that for later. The second factor at play is where the software is first deployed, which in the case of freely downloadable software is on what I call the “new reference platform for 1 st deployment”. You might call it a laptop or desktop with medium hardware configuration running Windows, Linux or Solaris. In short the shift towards community developed open source software has, by necessity, changed especially the 1 st level deployment from a people/support heavy activity to a “you can do it yourself” model.

More than just the software has changed

These changes in the development, distribution and deployment models for software has not only changed the nature of the software itself but has also changed the reference platform for 1 st level deployment from a large datacenter installation to what is most accessible to individuals. The new reference platform for deployment is no longer a large Sun , IBM or HP server but rather a common laptop or desktop running either Windows , Linux or Solaris.

Popularity: 16%

Hein Open Source , ,