Thursday, April 28, 2011

Cloud Computing

Cloud Computing IMHO is a key part of the next generation of modern computer systems today.  There are many definitions of “Cloud Computing” depending on who you are talking to, but in the purest sense it is one or more servers operated by an independent hosting company where you host Web 2.0 based applications. 

You pay a monthly fee that varies from vendor to vendor but includes the use of dedicated or virtual servers (processor and memory).  You most likely pay a fee for data storage and bandwidth to access the server.  The most reputable vendors provide capacity on demand configuration options where you can use an on-line configuration tool to add resources as needed, and some will even dynamically increase your resources based on your workload. 

In the purest form of Cloud Computing, you rent raw computer resources from a hosting vendor such as LiquidWeb or Rackspace.  These vendors provide all of the hardware, operating systems (usually Linux or Microsoft Windows with SQL Server and other resources) as well as all of the disk storage and bandwidth you need to run web based applications.  Many of these vendors also provide the LAMP stack with PHP, MySQL or Tomcat and Java along with other open source middleware such as web content management systems like Joomla or Drupal.  In other words they provide a completely configured environment upon which you can install application software that you create or that you buy, or obtain from the open source community.

Some people have commented that Cloud sites are vulnerable to attack and you lose control.  A reputable vendor will have highly skilled security specialists protecting not only your site but the entire complex 24/7.  These specialists are generally of a much higher calibre than any you could afford to hire for a typical enterprise.  Additionally, it is unlikely you would be able to afford 24 x 7 protection.

The bottom line for cloud based hosting is that you rent the capacity you need as you need it.  You have no worries about hardware or software upgrades, no worry about disaster recovery or high availability.  You can be assured that backups are taken and sent off site. 

The second level of Cloud is Software as a Service (SaaS) hosted on a cloud server. The reason this is all called cloud is the fact that you have no idea where the servers are, what servers you are running on and simply don’t care.  All you know is that your applications are running in a LINUX based environment or Windows. You can run any application that runs on either platform. 

Some vendors like Salesforce.com run a private proprietary application on their servers which you access via the web.  It is a form of cloud, but not as flexible as using a hosting company with your own software, open source, or third party software in the cloud.

IBM and other vendors are offering hardware software combinations that claim to be providing cloud services.  The combination of hardware and software tends to be extremely costly with no measurable advantage over other commercial cloud hosting companies. 

Here is a list of 90 cloud computing companies:  http://raydepena.wordpress.com/2011/01/01/90-cloud-computing-companies-to-watch-in-2011/




When you combine cloud with open source you have infinite possibilities to replace old legacy systems with state of the art software at an extremely low cost. This model applies to the largest of enterprises as well as extremely small businesses. 

Sunday, April 10, 2011

Do you need computer equipment, networks, and people to support them?

IMHO, we have reached a point in time where today's business enterprises need to carefully evaluate the money they are spending on computer systems or "IT" and the ROI that they are getting from traditional business as usual IT.

In today's world you must ask yourself if you are really getting your money's worth from your IT organization at all and begin to look at the alternatives.

I suggest you create a clean slate as if you had never had any internal computer systems. Then carefully evaluate what you need, what kind of people you need, and how to proceed to develop a Computer systems support structure that makes sense for your organization.

One of the first questions I ask you to consider is whether you need those expensive mainframe, mid-range, or server farms of Windows or Linux based computers that you have at various locations throughout your  organization. 

To analyze hardware costs and effectiveness, what is the total annual cost of your hardware including your amortization or depreciation if you purchase the equipment?  What is the annual hardware support costs for theses systems? 

What is the software cost of the Operating Systems and/or utility software for backup, software management, and many other internal tasks that have no direct business return?

How many people do you have on staff dedicated to maintaining, operating, or supporting the machines and their operating software that provide no direct benefit to the business?

For a large organization this number can exceed $50 Million per year.  In mid-size organization it can easily reach $1 million.

Add to this mix the cost of your internal computer networks, leased telephone lines, connections by an Internet Service Provider to the Internet, and the people required to support your networks? 

Thus far, we haven't talked about a single penny that has a direct ROI to the business.  This often huge expense is related to providing a computing environment upon which to run 3rd party software or your own internally developed software.

So you say, what is the alternative? 

Simple, cloud based hosting with  reputable cloud based hosting company. 

You can get all the benefits of in-house computer systems and actually much more by outsourcing your computer hardware to a third party cloud based hosting company.  Please note that I do not recommend any particular vendor, but here is what I would look for:

  • Ability to run PHP & LAMP stack based applications
  • Ability to run Java applications and support common XML based communication protocols such as SOAP.
  • Ability to support and host Microsoft Windows applications in a virtual hosting environment, [eliminate the need for Windows servers and support staff], enable support for mobile devices like the iPAD, Blackberry, iPhone, Android devices, etc.
  • All User interfaces should be via the Internet.  Note: internally all you need to do is establish wireless networks to enable your business users and their computers or devices to connect to.
Your Vendor should provide:
  • Daily backups of various types.  
    • Server backup optimized for rapid restore.
    • Your data back up with the ability to down load to your location daily.
  • Replication to a physically separate data center (in a geologically safe location -- two centers in Los Angeles would be vulnerable to earthquake, two in close proximity in Florida may be subject to hurricane, two in St. Louis, Missouri would be subject to flood, etc. 
  • Highspeed maximum capacity bandwidth on their internet connections.  
  • Dynamic configuration so you can increase computing capacity, memory, bandwidth, etc. both on an as needed basis as well as a fixed allocation basis.
  • 24 x 7 x 365 help desk and support 
    • Hardware, software, and operational issue support
    • Internet support such as spam protection, assistance with avoiding spam blacklists.
    • Domain names and services
You will find that a good reputable hosting company (there are several very large and reliable companies) can provide all of the services that your own people and systems provided, usually at a fraction of the cost.  Additionally, there are no huge budgetary battles when you need additional capacity as these vendors sell you what you need and enable you to easily add more capacity on demand.

I'm going to stop here in this post, but in my next post we will talk about your systems development organization, programmers, and all of the technology that vendors want to sell you to support your business applications.