Posts mit dem Label Cloud werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Cloud werden angezeigt. Alle Posts anzeigen

Mittwoch, 29. Juni 2011

Don't Believe the Hype

Everyone and his dog are talking about cloud computing. This is the future of computing, nobody will have an own server, all data will be send to a hoster, who has unlimited scalability for the given application, the only limitation is the depth of users pocket, but since the resources are shared among multiple users, processing time, bandwidth and memory are much cheaper than having an own server. No configuration, no administration is required, self-healing services allow 24/7 availability of the applications.

Well, this is what we thought, when we started to develop our applications. We are a small startup in Germany and our idea is to provide a new Local Based Service for mobile devices and a portal. When you have a startup you never have enough resources, neither time, nor personal, nor financial, nor lot of experience. Therefore the idea was to use cloud computing as back-end solution. We don't want to have own server, buy expensive upload bandwidth, configure it, administrate it, secure it, backup it. We just want to start programming of our application. We were looking at several alternatives but at the end we decided to go with Google Application Engine. GAE was very intriguing for us, because it offered a Java environment with Google database, fast searching algorithms, low costs and well, this is Google, so what can go wrong? Unfortunately quite a lot.

After installing Eclipse GAE plugin and reading some documentation I was soon able to create first example, test is on localhost and upload it on GAE server and voilá it worked. Encouraged by this success I decided to develop our whole application on GAE.

First difficulties started, when I tried to create references from one object to another and save it in the database. The web is full with happy coders who are praising Google how easy it was to create a 1:1 reference, or even 1:n, but I was not able to create references, which worked flawlessly. At least in documentation it was stated that m:n references are possible just by manual managing of the keys of the referenced objects, so we ended with manual managing of the keys of all objects, so back to the roots. What by the way was cascading?

After a while, the GAE O/R mapper refused to enhance the POJO entities. As O/R mapper GAE is using DataNucleus. Why they are not using widely accepted and proven Hibernate is beyond my imagination. DataNucleus is nowhere as praxis proven as Hibernate and for some coders this might be English humor, but for me the support answers from DataNucleus guys were pure arrogance. After wild configurations orgies finally we gave up the idea of starting the application from Eclipse and started using an ant script, which worked quite nicely as long, as the application had to be started on the localhost.

After our application became more complex and we deployed it more often on the GAE server, so that more people could take a look at the progress, we realized that the starting time of the application were horrible. It took about 15 sec, till the start page appeared in the browser. Last time a webpage took 15 sec for appearing on my browser was in the 90th, when I was surfing for overclocking tips on weird Japanese websites with my 56kbaud modem. After searching in some forums I realized, that I was not the only one affected by the issue. It seems, if the application is not in usage, it disappears from the main memory of GAE server and it takes long time, till it is reloaded (maybe even recompiled) and is ready to serve. On the forum people were discussing how often a client should send a request to the GAE server, so that own application does not disappear from the memory! Seems it is becoming cat and mouse catching between Google and GAE users, because the intervals between the pings are getting shorter and shorter.

After testing on GAE server we started to realize that the behavior of the application on server is different than in testing environment. The application crashed, at situations, where it run flawlessly on localhost. The problem was that the logfile stayed clean, so no indication what might be wrong. Also complete crashes were not uncommon, when not a single user from different locations could access the application. It took me quite a long time to find out how to restart the application after total crash ("appname".appspot.com?restartApplication).

Another problem risen up, when our webdesigner started his work. It is not possible to upload single files, it must be the complete war directory. So even if a picture has changed, the whole application must be redeployed. Why should an external web-designer have access to the whole application code?

Database administration is very basic. Neither it is possible to dump the whole database or delete it completely and start with a new one. A database viewer is available, so it was possible to see, which references again have been either not created or created wrong.

But the biggest issue hit us two weeks ago. For some reason it was not possible to deploy the application on GAE server! Without any reasonable explanation the uploading stopped at 99% and rollbacked to the old version. If such a thing happens during production mode, this is absolutely unacceptable. Two weeks later the deployment is still not possible.

This was the last drop, therefore say hello to MySQL, hello to Hibernate, hello to Tomcat, hello to BlackHats.

The idea of cloud computing is great, just upload your code, the provider cares for the rest. But praxis shows completely different picture. Cloud Computing must be taken with a very big grain of salt, currently only for testing, at least GAE has still a long way to go, till it can provide a viable alternative to an own server.

Is the Desktop Becoming Legacy?

A few years ago I wrote on OSNews several articles (1,2) about workstations. After three years I had to stop, because there were no workstations left on the market, they became legacy and were not sold any more. Now with the rise of mobile devices with touchscreen and wireless network connectivity virtually everywhere, the question becomes valid, what will happen with the desktop computers, are they still needed, or will they follow the workstations on their way to computer museums?
First we have to understand why the iPhone, iPad, and so on are better suited for the avarage user than desktop systems. Why has Microsoft's strategy of propagating the PC as the "digital hub" mostly failed? For years, especially Microsoft (but also Linux and Mac evangelists) told us to use a PC or a Mac for sharing media and devices, for creating content and consuming media, for storing selfmade videos and photos. But this strategy has two weak points.

First, to be able to accomplish most of these tasks a PC must be switched on 24/7. Only very few heavy users are really using their PC as a server. It is expensive, a PC can be noisy, the hardware is not really optmized to run round the clock and because of lot of security updates there is still lot of administration required. So the idea of having a home server is not really catchy.

Second, even with a home server it is quite hard to share the media outside the home. Sure, there are tricks like DynDNS or port forwarding, but only very few users do understand these technology and are using them. Even worse, by opening the server towards the Internet, it becomes vulnerable, which means additional administration efforts.

Sharing media is becoming more and more common. People are putting their photos on Flickr and their videos on Youtube and send the URL to their friends. Try this with your media hub at home. This is possible, but how much more effort and knowledge is needed? Regarding copyrighted content - it is no longer necessary to have it stored on your home server. Music and videos can be stored on portable devices as well, since they have enough storage.

So the remaining points are content creation and consuming and sharing of devices. For device sharing, specialized boxes like FritzBox in Germany are much more suited than a full-fledged PC. A FritzBox, which you get as part of your DSL contract, offers a few LAN ports, wireless access point and a USB port for printer and USB hard disk where you can put all the media which is then accessable from all devices in the network. The web-based setup is very simple and still powerful; virtually zero administration is required and the power consumption is very low.

For content consumption there are devices like iPad with no boot time, with an excellent screen, which are transportable, consume very little power and the input possibilities are sufficient to enter a URL, write a short comment or chat. It is possible to connect these devices to your TV or HiFi set, so no PC is required here.

So now comes content creation. This is the area where PCs are to stay. Writing long articles, media production, coding, this is where PCs are strong and will stay for a while. But now there is a fact, that in social networks only 10% of the users are creating the content, the rest is consuming. Also these 10% are not creating all the time; they are also heavy consumers, therefore they will probably have two devices, one for consuming and one for creation, which they have to switch on, to wait the boot time, to start correct program and then start creating. So content creators will still buy a desktop, but it will be a tool for clearly defined tasks, for everything else there will be a consumer device.

Legacy does not mean that a device will disappear. Desktops and their operating systems are and will remain in businesses, they form the backbone of lot of companies and Microsoft will still remain one of the most valued companies and earn lot of money. There will still be lot of Windows versions to follow, but the excitement about them will not be much stronger than excitment of new version of AIX.

Windows vs. MacOSX vs. KDE vs. GNOME vs. BeOS wars are thing of the past. The future discussions and most exciting developments will happen on mobile devices. So watch out for iPhone OS vs. ChromeOS vs. MeeGo (and probably Microsoft if they get their act together with Windows Phone 7 and Slate). For Intel and AMD this development means that they should concentrate on server processors and very low power processors for the consumer devices, since this is the area with the most demand in the future.