H9Labs

September 2009 - Posts

  • Cloud Computing Explained

    Cloud Computing is an often cited and very confusing term in the market today. To try and clear things up a bit, I'm going to try and define and explain Cloud Computing from several angles. To do this, first I will define Cloud Computing. Cloud Computing is defined as the use of compute resources that are dynamically made available based on a request for a service provided by that cloud. This is similar to the definition that wikipedia provides. Breaking this definition down to a few core phrases should make things easier to understand. First, Compute Resources are the elements used to provide the service. Examples of Compute Resources are CPU, Memory, Disk, Network, all of which are often supplied through a virtual machine or some type of abstracted compute fabric (think a custom grid like Google). Next, we define Dynamic, meaning changing. In this case the change is driven by a request for some type of service. This service is provided by the Cloud and comes in several flavors including Infrastructure (IaaS) , Platform (PaaS) , and Software (SaaS). Why the word Cloud? Cloud originated as a way of describing something that was overly complex and should just be looked at as a "black box". The term was frequently used in the Telecom Industry and then was adopted by Networking (Specifically WANs - Wide Area Networks). WANs leverage the Telecom Industry Platforms, so hence the connection.

    Compute Resources

    CloudComputing-Resources-1
    Above is a Diagram of the core pieces that make up Resources in the Cloud. Note: I did not say Compute Resources, however everything in the stack ultimately relies on Compute Resources.

    The use of these Compute Resources is where the magic happens. Different combinations of these resources make up the three types of Cloud offerings available today. They are:
    • SaaS - Software as a Service
    • PaaS - Platform as a Service
    • IaaS - Infrastructure as a Service
    Below we will cover a bit of detail on each of these. The architectures are not important right now, simply the concepts should be focused on.

    Software as a Service (SaaS)

    CloudComputing-Resources-SaaS
    Software as a Service goes back to 1998/1999 when there were ASPs (no not Active Server Pages or Average Selling Prices) - Application Service Providers. ASPs provided applications to customers by leveraging remote display technologies such as Citrix. This was later superceded by Web based solutions, the most well know and successful being Salesforce.com . SaaS normally offers a multi-tenant based solution where users login and work with the application being provided. SaaS is either free or offered on a subscription basis (Monthly or Yearly are common).


    Platform as a Service (PaaS)

    CloudComputing-Resources-PaaS
    Platform as a Service is based on leveraging APIs to write an Application without the need to create or manage the resources beneath it. In some cases SaaS vendors allow developers to create new applications that leverage their underlying platform APIs.

    Infrastructure as a Service (IaaS)

    CloudComputing-Resources-IaaS
    Infrastructure as a Service provides the raw compute resources and allows the user (the developer or administrator) to decide what should be layered on top. This originates from the classic hosting world and allows the greatest flexibility, however it is also the most complex to manage from the user of the service (user being the developer or administrator).

    A View of the XaaS Stack

    Cloud Computing Explained-Companies.003
    It is important to note that this is not a comprehensive list of players in these different layers, this is simply a snapshot of some of the major market players in these areas.

    Resource Links:

    SaaS


    PaaS


    IaaS


  • Mac OS X Snow Leopard : Log Files Required

    I was having a whole series of odd behaviors on my Macbook Pro yesterday. These included:



    • PKG and MPKG files running through installation and then failing at the "Complete/Finish" Screen



    • Eclipse Ganymede and Galileo both having problems rendering WSDL files under JVM 6 (32 or 64bit) but working fine with JVM 5



    • Installer intermittently becoming unresponsive before installation launch

    This was causing quite a few headaches. At Andrew's suggestion, I ran Disk Utility and checked permissions and the Volume. No real problems of consequence were found in either scan.


    Next Andrew suggested that I look at the Logs. First I went into the Console utility, normally this would be populated automatically with a large number of log entries. My Console just continually "searched" the System.log file. After trying to see if there was some other problem I could find without access to the logs, I decided to see if I could fix the log problem, which would then (hopefully) help me identify the problem with the PKG/MPKG files.


    After much Googling, I came across a mention of a utility called "newsyslog" . After looking at the man page and experimenting I found that newsyslog has a newsyslog.conf file that associates which log files it should check for and if they exist, it can be configured to automatically roll the log files off (to keep sizes down). What interested me more, was the ability to have newsyslog CREATE log files if it is unable to find them. To gain visibility into what it could and could not find, I simply set it into verbose mode (the -v option) and combined this with the create option (the -CC option). Watching the output, it created a series of logfiles including the System.log file (which was apparently missing).

    Once the System.log file was created, I launched the Console utility again and BINGO! Log Messages!


    Now for the fun part, I decided to run the VMware Fusion Installer (a MPKG file). Normally I would get all the way through the serial number entry, after populating and clicking continue it would fail. This time I wanted it to fail, because I could finally capture the failure point in the System.log file. Just like when you take your car to the mechanic and hope that it makes that clunking sound (which it does all the time), it remains running silently. In my case, I ran the installation and it completed! I then checked a few other applications that were failing when they would launch the Installer application (they worked fine too). Finally I later launched Eclipse and lo-and-behold, it was able to render WSDL files regardless of the JVM being used!


    In a follow-on post next week, I will post directions on how to make Snow Leopard run both JVM 5 and JVM 6 (default after an upgrade is JVM 6 32/64bit is all that exists)


Bookmark and Share