Homepage

Gossip: Thoughts about Cloud Computing

November 27th, 2008

In previous gossip, we talked about why there is ESB and cloud computing (yep, the almighty cost down).  However, as my friend Tony said long long ago, “ideology is ideal, reality is cruel”.  Once upon a time CORBA talked like the savory for everything but it failed to save itself, and it is just one of the many failures we’ve seen.  So, what are the risks of the new catchy cloud computing?

First of all, the base assumption of cloud computing is that every terminal is connected to the cloud, which implies there are still network infrastructures, firewalls, multi-homing, and stuffs that IT is doing today to keep everybody connected.  In general, it’s not an easy task to calculate the percentage of overall IT cost contributed by network stuff.  Moreover, there will be security issues when something is connected.  Most enterprise security softwares are still based on traditional Windows AD, which means in near future the enterprise still needs to maintain or outsource whatever required by security measures.  As a result, the long term cost savings from adopting cloud computing is not that great as advertised.  What an enterprise saved may ultimately be just some racks of servers, and it still needs to stick with the big IT department.  In this case the best that cloud computing could offer is to host out-facing web sites, since data centers typically have better bandwidth.

Another risk is the risk of development.  Cloud computing is a super new concept so that its development model and companion tool chain are still in the pioneering stage.  From risk management point of view, adopting clound computing in new projects is certainly riskier than matured multi-tier or client-server development, therefore higher cost.  If the cost is high enough to cancel the savings of maintanence cost throughout the life cycle of this project, there is no significant benefit to the enterprise except experience building.

There are some minor technical risks.  For example, bigger data centers invite hackers that are either super rookies or super hot-shots (and no one want to mess up with these guys).  Confidentiality of data is another issue.  Even Obama’s telecommunication records are spied by curious eyes, what makes you think that no one will be reading the classified data of your company?  However, these risks can be identified in the very beginning of the project cycle, and thus considered manageable (at least you have something to put into SLA).

IMO, the critical factor for cloud computing to dominate is how to lower the cost of network infrastructures, otherwise there’s still not enough momentum for enterprises to move their existing systems to the cloud.  If SI or IT outsourcing companies could successfully integrate with cloud and telecommunication vendors, there might be a chance for the cloud to take off provided that cost control is well done within these companies.

Reviews & Comments, Technical | No comments Jump to the top of this page

Gossip: Evolution to Enterprise Service Bus

November 15th, 2008

I was involved in a forum discussion regarding ESB, and I’d like to share a small story here.  Once upon a time, there was a Small Bank which was, small.  It had only 8 branches.  The main transaction system was of course the one run on IBM mainframe.  Nobody got fired by using IBM.  Due to recession of economy, there were a lot of delinquencies for personal loans.  Small Bank would need to pay pretty high percentage of the collected amount if it had outsourced the phone collections.  There were also concerns that third-party collection companies were not friendly and might damage the brand image of Small Bank.  As a result, stingy top brasses of Small Bank had no choice but setup phone collection within the company.  The collection module of IBM system was way too pricy, so they decided to try out a PC-based collection system from the Smart Vendor.

A collection system is a very simple system: it fetches the data from mainframe, shows the data on collectors’ computers, stores summaries entered by collectors, and follows every promise that customers made to collectors.  If any promise was broken, it needs to take corresponding measures according to preset business rules.  Fairly easy isn’t it?  The flavors only consist a simple database, a small workflow, and a little bit of UI development.  That type of system existed long enough using client-server architecture: a database server sit on the backend, workflows were divided into DB batches and UI logic, and a VB-based program installed on every collectors’ computer.  Piece of cake no big deal.

Sounds like problem solved.  Well, was the cost low enough?  Good question.  Databases were priced by seat (at least when I were using them in the good old days).  There were at least 100 users, and the license fee tasted a bit bitter.  Installation of that VB-based client on 100 machines created great chances for collectors to take a long enough tea break, which implied hidden cost.  To make things worse, if the client software had had bugs, the computers needed to be patched, which indeed was not a smart idea.  On the other hand, if the client software was pulling too many data from the DB server, network infrastructure would require upgrade, thus another unwelcomed cost.

To assist with the cost reduction concern, Smart Vendor proposed a solution: multi-tier architecture.  There were middlewares consolidating all DB requests, so fewer seats were needed for DB software.  There were web servers hosting front-end UI, which were now web pages.  Collectors used their browsers and navigated to an URL, then they could start their work.  No more software installation, no more excuse for tea breaks.  The last step was centralizing all workflow into application servers, and streamlined app servers, web servers, DB servers, and the system could light up.  Done, cool, awesome cost-effective.

However, the great recession of economy was unforeseen and Small Bank had to take more aggressive approaches to please the Wall Street.  Small Bank was renowned for their professional banking services, not IT services.  This simple little collection system required a vast infrastructure to operate: computer hardware, software, network equipments, dedicated real estate for the equipments, business class network infrastructure, and dedicated workforce to maintain all these.  Everything in this big chain meant cost!  Could we avoid the costs?

Smart Vendor heartly understood the requirements of Small Bank and proposed a shiny, new, catchy solution: cloud computing and enterprise service bus.  Smart Vendor provided data center, equipments, software, network infrastructures, and dedicated IT staff.  All that Small Bank needed to do were to pay subscription fee and to build their DB/workflow/UI based on ESB spec.  Collectors of Small Bank might need to connect to a new URL, if that meant anything.  Done, cool, awesome cost-effective.  Small Bank could then sell the equipments, use cheaper DSL connections, layoff IT workforces, and boost stock price.  This solution was so great.  It was more cost-effective than outsourcing and traditional multi-tier systems.  The only drawback was Small Bank now married with Smart Vendor together forever, and divorsing would be as costly as hell … well, this was not really an issue.  Small Bank could never afford divorsing Smart Vendor even with the client-server system.

So the story ended.  La viva cost down!

Reviews & Comments, Software Engineering, Technical | 1 comment Jump to the top of this page

PDC 2008: Day 4

November 1st, 2008

In fact PDC already ended. I was just too tired to blog anything because PDC was a very exhausting event :)

There was no keynote on the forth day of PDC, nor exhibitions. Most attendees were attracted by symposium.  However, I did not want to attend symposium this year.  According to my prior experience, most stuffs talked in the symposium would realize several years later (if realized) and the implementation typically changed a lot.  I went to several break out sessions instead.  The one about the future of CLR 4.0 was very interesting.  Basically, CLR 4.0 is heading towards three directions: better working together with existing code, greater performance for installation and runtime, more support for debugging and code quality improvement.  These factors composed my biggest troubles when I worked on C# programs four years ago, and finally Microsoft took a look at the ground and worked on solving these headaches.

I had also found something interesting about XAML.  I thought XAML was for UI and WPF programming, however, it could do much more than that.  Currently Microsoft is extending XAML to Workflow Foundation and Open Document Formats.  As I mentioned before, Microsoft will be able to create a 4GL that is capable of generating web applications if they could integrate the C# compiler service with the UML modeling in Visual Studio 2010.  The new modeling language, Oslo, and extended XAML for WF were apparantly created for this strategy.  Microsoft not only wants to create a web app 4GL, it wants to create 4GL for Windows Azure web apps!

The last session I attended was about how to create efficient background service under Windows 7.  Microsoft offered a new start type, Trigger-Start, for services.  Currently many programs existed in the form of background service because they needed to capture certain events (for example, plugging a USB device).  If these services were changed to Trigger-Start, system memory and threads are conserved for most of the time.  According to my experience in Symantec, this worked very well.  However, the programmers of these services would need to change their code, which will take years to be popular after the shipping of Windows 7.

Reviews & Comments, Technical, Windows | No comments Jump to the top of this page

PDC 2008: Day 3

October 30th, 2008

There was not too much to talk about for sessions I attened in day 3. I took a look at the replay of Anders Hejlsberg’s lecture regarding the future of C#, and I’d like to share some of my points:

  • Hejlsberg mentioned that the trends of programming language will be declarative, dynamic, and concurrent. For the world of web applications, it is true for the rise of declarative and dynamic languages. It makes sense for C# as the main language of .Net, but not neccessary for all programming languages. However, programming languages have so many varieties of applications and web is only one of them. We still should teach procedural programming languages in school, and provide students opportunities of learning functional, declarative, and dynamic languages.
  • Hardware industry hit bottleneck regarding to single core performance, and thus concurrent programming would be the answer for multi-core era. Current technologies had problems to deal with heap object concurrency automatically, which put languages featuring automatic memory management (e.g. Java and C#) in a disadvantageous position. As a result, one should be aware that C# might have higher development cost than C++ in the areana of concurrent programming.
  • I guessed Microsoft finally realized versioning hell in a hard way themselves. As a result, many efforts were put to deal with side-by-side and COM Interop issues in CLR, C#, and even Windows 7 OS loader. These efforts should be very effective against reducing the working set consumed by managed process and easing the flow of development and installation.
  • C# compiler will be rewritten in managed code and will be more transparent regarding to its internal handling. Besides of making dynamic programming possible, I saw some great potentials with it. Visual Studio team will provide many UML related functionality in 2010 version. It is possible to have a real modern 4GL combining the modeling tool in Visual Studio, C# compiler service, Oslo and Windows Workflow Foundation. I don’t think dynamic C# will replace Javascript due to compatibility issues among browsers.

C++/C#, Reviews & Comments, Technical, Windows | No comments Jump to the top of this page

PDC 2008: Day 2 Keynote

October 30th, 2008

World-famous PDC keynote marathon was held on day 2, which filled the whole morning with keynotes! The first part of keynote was the announcement of Windows 7. Microsoft disclosed their goal to be complete user experience where PC, web, and cell phones worked together. Lot of time was spent to demo new features of Windows 7. Most of these features were minor or cosmetic, in fact, some already existed in current Vista SP1. Windows 7 shared the same kernel with Windows Server 2008 and Windows Vista SP1. Major improvement of Windows 7 will be performance and resource efficiency, which implied that Microsoft had intimate knowledge about Vista’s problems. What I found more interesting as “new” features were multi-touch support and home networking. Some programs will be much more fun to use if via multi-touch. I was not quite impressed when I saw multi-touch during the keynote, however, my view was completely overthrown when I played Tetris on Surface. It is REALLY FUN!

Windows 7 had a super cool feature: it could mount VHD directly, and it could boot from VHD volume. It will be revolutional for system backup and restore. There will be reverting to a snapshot just like what we did everyday with VMWare, COOL!

The second part of keynote was Live Services and Office. I was bored out so I skipped it, grabbed some coffee, and enjoyed a little break. Final part of keynote is the talk show hosted by Don Box and Chris Anderson … err … I mean, the demo of coding Azure. It was a nice, knowledgeful, and humorous talk. However, I’d suggest people to do their homework and pilot run a bit before really adopting or coding Azure. It definitely won’t be that simple as demonstrated in the keynote. It’s like swimming in the ocean: it’s only fun and safe if you know how to swim and you are well-prepared.

Technical, Windows | No comments Jump to the top of this page

PDC 2008: Day 1 Keynote

October 28th, 2008

Today is the first day of Microsoft PDC. As usual, the weather in Los Angeles is hot and bored and the traffic of Los Angeles is packed and, bored. The first thing in the morning is the keynote. Ray Ozzie announced the cloud computing platform of Microsoft, Windows Azure. You may find it confusing that Microsoft already had some offerings like Windows Live, and what is this Azure for? Well, this is the real “platform”, so to speak. The business model of Azure is subscription-based: Microsoft offers a cloud platform for subscribers to publish their web services. In a word, Microsoft offers all infrastructures, including data center service (hardware, network, maintainence) and computation platform/services (e.g. web, SQL) so that subscribers can publish their web applications. It operates just like a outlet: Microsoft is the property owner, and you lease a space to do your business. This is the most popular strategy that we could found among software companies: stickiness. It keeps the customer on board and make it hard about jumping ships :)

As usual, Microsoft offerings all share similar characteristics: they claim to work with existing offerings seamlessly (e.g. Active Directory); they use Visual Studio for development; and, they look very cool and cripsy in the demo. Windows Azure currently contains four base services, which are identity services that integrates with AD, Dynamics CRM, SQL, and SharePoint. Apparently, the Azure is targeting at replacing the business solutions currently in use within enterprises, and it hopes to migrate these solutions onto Microsoft clouds. There are several demos provided during the keynote, however, it’s way too early to tell if Azure will take off based on these puppy shows :) One thing for sure that Azure is not a simple idea to move things like Word or Excel onto the cloud. Microsoft is very ambitious about replicating its own success of Windows; this time PC hardware is replaced with cloud network and data centers, and desktop Windows is replaced by Windows Azure cloud OS.

The audiences of Azure are mainly customers that want to be Web-enabled/empowered without the hassle of data center/IT management. For example, start-ups or companies that does not treat IT as their core business (e.g. Coca-Cola). Startups that lacks capital to build data centers could utilize Microsoft services with confidence in mind that Ray Ozzie promised of competitive pricing. There are other big-names on the market who have similar business models, however, it is worth keeping an eye on the competition when Microsoft jumps into the arena. Microsoft is famous for its rich development eco-environment and now also is showing cards of price wars. As Ray Ozzie mentioned, Microsoft is betting its own future on the Azure platform. It is critical for the monotholic to repeat its own success again in the post-Bill-G era, and we shall be eyewitting the results very soon.

Update: My friends pointed out that Azure is very similar to Amazon Web Services :D

Uncategorized | No comments Jump to the top of this page

PDC 2008: Pre-conference

October 27th, 2008

I’ve attended pre-conference of PDC 2008 today. The first thing for excited attendees is to cool them down with long lines of registration check-in … well, not really the case today. What really surprise me is that Microsoft is giving shopping bags from 99 cents store as conference bag.

pdc08bag

I was wondering that if this is the reflection of sluggish stock market and Wall Street storms. The other funny thing is that PDC 08 T-shirts have HP/EDS trademark instead of Microsoft’s.

The session that I stayed in whole day today is Advanced Windows Debugging. It’s a nice session, however, the speakers are not able to cover too many topics nor dive in deep due to time and audience limits. I would prefer running the session in a hands-on lab so that people could just follow and learn one topic deep enough. Anyway, I still learned quite a few during the session.

Reviews & Comments, Technical, Windows | No comments Jump to the top of this page

Arthur’s “always-under-construction” blog

Archives

Blogroll

Meta