Tuesday, June 11, 2013

Cloud Computing - Buyer Beware

I feel that Cloud Computing is a huge part of the Next Generation in Modern computer systems.  

Cloud computing can mean many things depending on who you talk to.  To me Cloud represents a web based system that runs on a vendor like LiquidWeb.com, RackSpace, or Amazon where you can rent dedicated or shared virtual hardware and middleware for a small monthly fee.  The vendor provides and supports the servers, operating systems, communications, and in many cases much or all of the middleware needed to run your applications. A cloud hosting company generally has multiple geographically separate redundant data centers with fully replicated systems to provide uninterruptible availability.

If you eat organic food, you know that there is no official definition of "organic"!  Likewise, there is no official definition of "cloud".  Therefore anyone who provides some kind of hosting or applications run on computers that they own on your behalf can claim to be "cloud" providers.

Captive Proprietary Systems

The biggest one claiming to be a "cloud" provider is Oracle who runs their application software on their machines and rents you the use of their systems.  A similar company is Salesforce.com offering their CRM systems which are hosted on their computers.  The downside of both companies is the fact that both your data and their applications are stored on the vendor's computers.  If you wish to move to another vendor or application package you may have issues in retrieving your data and you most certainly will not be able to utilize their software.  In other words you are locked into the vendor and their system.  I've only mentioned two large vendors, but there are hundreds exploiting this model.

Note that what I consider a viable alternative to the model described above is Software As A Service where you store data on your systems, but link out and run programs on the vendors systems creating a hybrid, but not true form  of cloud.

Disaster Recovery Systems

Some disaster recovery companies including huge companies like SunGard, VMWare, along with many others are offering varying degrees of what they call cloud computing.  There are various limitations of these solutions.  They are design to provide a disaster recovery solution for companies who have their own hardware.

One company in the Southern United States specializes in supporting IBM Power Systems including support for the IBM i operating system.  This company helps you replicate your IBM i data to one of their systems and assists you in switching to their system in the event of an emergency or disaster.  The biggest limitation of this vendor is the fact that they have only one data center located in a major Southern city where many of their clients are located.  It is entirely possible that a hurricane could destroy both the vendor's data center and their customers data centers leaving the customer completely under water with no back up system.

A major disaster recovery system needs to provide geographically secure computing facilities that most certainly will not be affected by the same event that caused the customer's outage!  Think hurricane, earthquake, tornado,  and other natural disaster.

Hosting With No Failure Proofing

Some small ISV's (Independent Software Vendors) of specialized software, especially companies who have specialized in OS/400 or IBM i applications written in RPG over the years are now claiming to be "cloud" providers and hosting customer systems on their computers in their single data center with no disaster recovery or realtime back up.  These companies lack expertise in hosting as well as cloud or disaster recovery.  You are most definitely putting yourself at risk by trusting a small ISV.

The Problem
Cloud computing as I define it is running your own custom software, third party vendor supplied software, or open source software on computer resources that you rent from a reputable cloud provider. To meet my definition of reputable, the vendor must operate not less than two and preferably more data centers that are geographically dispersed to insure that a single natural disaster will not disrupt your business operations.

Theres vendors should provide all of the hardware and software technical support necessary for you to keep your applications running so that all your users have to do is use an Internet browser or VPN client to access them.

A viable vendor will provide real time data and application replication so that a user may access any computer where your application is located regardless of physical location.  In fact the vendor's Internet routing should find the best path to the servers.  Your applications may be running on multiple servers at the same time and replicating data between the servers.  This approach will provide a 24 x 7 uninterruptible computing environment.

These vendors will enable you to eliminate the people on your payroll that support your computer systems including but not limited to network specialists, computer operators, system administrators, system programmers, etc. often offering you huge savings in labor and benefits.  Note these savings are not available at all in the alternatives described above.

Private Cloud and other Variants

While I do not rule out the idea of private cloud, I do see that very few companies can benefit from this as a computer strategy.  Generally, private cloud means building your own cloud environment and hosting applications for people within your enterprise.  This often means hiring specialists or spend large sums on consultants with expertise in setting up a cloud based environment.  You not only continue to support all of the people you currently employ, but will very likely increase your staff.

Buyer Beware

Do not let cloud computing be an IT based decision!  It is most definitely a business decision and must be carefully evaluated with an eye towards risk and cost savings.  I am a strong advocate of publicly hosted private cloud environments hosted by a reputable vendor at a reasonable price and eliminating all of the overhead of your computer operations and technical services organization within your IT organization.

Keep in mind that you may very well be able to pay for a switch to cloud in testing and test systems alone.  With a could environment you create a test environment when a project requires it and you discard it when you are done testing.  You pay only for what you use and the cost disappears upon project completion.

If you are like many companies you may very well be buying computers, and licensing software for testing purposes and this equipment rarely ever goes away!  The cost is generally absorbed into the project in substantial amounts.

Be smart buy carefully and you will enjoy the benefits of cloud computing.




Can Your Current Computer Systems Utilize Today's Computers Effectively?

I just read a fascinating article in IBM Mainframe Extra supplement to the IBM Mainframe magazine.  It seems that IBM is concerned about the fact that they can increase computing capacity by adding processors to their systems, but can no longer deliver significant increases in processor speed.

For years customers have waited for the next set of processor chips which were significantly faster than the last set.  While multi-processor systems have been around for about 2 decades, many business applications have been unable to take advantage of these systems.

Many business applications are designed to single thread (process sequentially one instruction after the other) from start to finish and are unable to utilize multiple processors in a multi-tasking or multi-procssing environment as modern applications written in C, C++, or Java can!

COBOL and RPG, FORTRAN, or PL1 applications process one instruction at a time until an IO event occurs when the program stops and waits for the the relatively slow IO event to complete.  The program is then queued for the next available processor and continues to execute one instruction at a time until the next IO even or until the program completes processing.

Modern applications consist of a number of small routines that can process in parallel without having to wait on other parts of the program.  Various processes or tasks may complete and are then assembled into a final result, but the program can actually run its pieces on many processors.

The older programs represent a problem for a number of IBM Mainframe and Midrange customers where workloads are increasing, demands for more processor speed are increasing, and yet programs are constrained by their architecture and programming technique in many cases.

If you have not all ready made a commitment to move away from legacy languages and technology, the time is now.  Develop a migration plan and move away from RPG, COBOL, PL1, etc.

Read the Mainframe Extra article at: http://ibmsystemsmag.com/mainframe/trends/IBM-Research/cmos_slowdown/