Friday, June 17, 2011

What is the Cloud?

Components of a Cloud.
There are three main categories of cloud computing service, called the SPI model (SaaS, PaaS, IaaS).
    Anything as a Serivce (XaaS) is a term used to all of these.

    1. Software as a Service (SaaS) is a software distribution model in which applications are hosted by a vendor or service provider and made available to customers over a network, typically the Internet.
    2. Platform as a Service (PaaS) is a paradigm for delivering operating systems and associated services over the Internet without downloads or installation.
    3. Infrastructure as a Service (IaaS) involves outsourcing the equipment used to support operations, including storage, hardware, servers and networking components.


    What is Infrastructure as a Service (IaaS)?
    Infrastructure as a Service is a provision model in which an organization outsources the equipment used to support operations, including storage, hardware, servers and networking components. The service provider owns the equipment and is responsible for housing, running and maintaining it. The client typically pays on a per-use basis.

    Characteristics and components of IaaS include:
    • Utility computing service and billing model.
    • Automation of administrative tasks.
    • Dynamic scaling.
    • Desktop virtualization.
    • Policy-based services.
    • Internet connectivity.
    • Virtual Servers, and Virtualization

    Sometimes referred to as (HaaS) Hardware as a Service.


    Platform as a Service (PaaS) is a way to rent hardware, operating systems, storage and network capacity over the Internet. The service delivery model allows the customer to rent virtualized servers and associated services for running existing applications or developing and testing new ones.

    Platform as a Service (PaaS) is an outgrowth of Software as a Service (SaaS), a software distribution model in which hosted software applications are made available to customers over the Internet. PaaS has several advantages for developers. With PaaS, operating system features can be changed and upgraded frequently. Geographically distributed development teams can work together on software development projects. Services can be obtained from diverse sources that cross international boundaries. Initial and ongoing costs can be reduced by the use of infrastructure services from a single vendor rather than maintaining multiple hardware facilities that often perform duplicate functions or suffer from incompatibility problems. Overall expenses can also be minimized by unification of programming development efforts.
    On the downside, PaaS involves some risk of "lock-in" if offerings require proprietary service interfaces or development languages. Another potential pitfall is that the flexibility of offerings may not meet the needs of some users whose requirements rapidly evolve.
     

    Software as a Service (SaaS) is a software distribution model in which applications are hosted by a vendor or service provider and made available to customers over a network, typically the Internet.

    SaaS is becoming an increasingly prevalent delivery model as underlying technologies that support Web services and service-oriented architecture (SOA) mature and new developmental approaches, such as Ajax, become popular. Meanwhile, broadband service has become increasingly available to support user access from more areas around the world.
    SaaS is closely related to the ASP (application service provider) and on demand computing software delivery models. IDC identifies two slightly different delivery models for SaaS. The hosted application management (hosted AM) model is similar to ASP: a provider hosts commercially available software for customers and delivers it over the Web. In the software on demand model, the provider gives customers network-based access to a single copy of an application created specifically for SaaS distribution.
    Benefits of the SaaS model include:
    • easier administration
    • automatic updates and patch management
    • compatibility: All users will have the same version of software.
    • easier collaboration, for the same reason
    • global accessibility.
    The traditional model of software distribution, in which software is purchased for and installed on personal computers, is sometimes referred to as software as a product.


    SaaS can be build on PaaS on IaaS


    -------------------------------
    This is still a draft article from here on down.
    I am in the process of still writting.
    John 6/17/2011
    -------------------------------

    Examples:
    • Amazon web services, BeanStalk, Elastic Compute EC2
    • VMware
    • Windows Azure
    • SalesForce.com
    • Google Gmail
    • CloudBees

    Scale out vs. Scale up.

    Tools:
    Enterprise Java three tier application
    MySQL, MongoDB
    NoSQL, CouchDB

    Memory or Cache (Redis, memcached, Gemfire)

    RabbitMQ, AMQP, JMS for messaging in the cloud. 
    Amazon SNS, SQS

    POJO? Apache Hadoop?  HDFS, HBase, Hive

    Makara, an open-source software-project for cloud deployment and management managed by Red Hat

    MAP/Reduce

    CAP Theorem
    C: Consistency: All nodes see the same data
    A: Availablity: Node failure does not prevent survivors from operating
    P: Partition Tolerance: System works even though message are lost

    http://en.wikipedia.org/wiki/Cloud_computing
    http://en.wikipedia.org/wiki/List_of_cloud_computing_providers
    http://en.wikipedia.org/wiki/Cloud_%28operating_system%29

    No comments: