Cloud Computing

Cloud Computing

  • Reference: http://en.wikipedia.org/wiki/Cloud_computing
  • Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet). Cloud computing entrusts remote services with a user’s data, software and computation.
  • What is a business model? (Answer)
  • Characteristics:
    • Agility
    • APIaccess to software to interact with cloud systems. Mostly using REST API’s.
    • Cost is reduced for some scenarios.
    • Device and location independence use browser to access systems from anywhere without additional software installations.
    • Virtualization allows servers and storage to be shared increasing utility.
    • Multitenancy allows sharing of resources and costs on large number of users.
    • Reliability improved if multiple redundant sites used.
    • Scalability and elasticity
    • Performance  monitored constantly using web services as interface.
    • Securitycan be increased due to centralization of data but complexity of security increases as data is distributed in public cloud. Due to complexity companies moving towards private cloud.
    • Maintenance  is easier.

  • Types of Cloud Computing
    • Infrastructure as a service(IaaS)
      • In this most basic cloud service model, providers offer computers, as physical or more often as virtual machines, and other resources.
      • IaaS refers not to a machine that does all the work, but simply to a facility given to businesses that offers users the leverage of extra storage space in servers and data centers.
    • Platform as a service(PaaS)
      • In the PaaS model, cloud providers deliver a computing platform typically including operating system, programming language execution environment, database, and web server.
    • Software as a service(SaaS)
      • In this model, cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients
      • The cloud users do not manage the cloud infrastructure and platform on which the application is running.
      • Providers provide access to application software and databases.
      • The infrastructure and platform for the software handled by providers
      • Advantages:
        • Lower costs by reducing software/hardware costs handled using cloud provider.
        • Centralized hosting.
      • Disadvantages:
        • Users data stored on provider’s server. Risk of unauthorized access to data.
    • Storage as a service(STaaS)
      • Storage as a service (STaaS) is a business model in which a large service provider rents space in their storage infrastructure on a subscription basis. The economy of scale in the service provider’s infrastructure allows them to provide storage much more cost effectively than most individuals or corporations can provide their own storage, when total cost of ownership is considered.
    • Security as a service(SECaaS)
      • Security as a service (SECaaS) is a business model in which a large service provider integrates their security services into a corporate infrastructure on a subscription basis more cost effectively than most individuals or corporations can provide on their own, when total cost of ownership is considered. These security services often include authentication, anti-virus, anti-malware/spyware, intrusion detection, and security event management, among others.
    • Data as a service(DaaS)
      • DaaS is based on the concept that the product, data in this case, can be provided on demand to the user regardless of geographic or organizational separation of provider and consumer
      • Advantages
        • Agility – Customers can move quickly due to the simplicity of the data access and the fact that they don’t need extensive knowledge of the underlying data. If customers require a slightly different data structure or has location specific requirements, the implementation is easy because the changes are minimal.
        • Cost-effectiveness – Providers can build the base with the data experts and outsource the presentation layer, which makes for very cost effective user interfaces and makes change requests at the presentation layer much more feasible.
        • Data quality – Access to the data is controlled through the data services, which tends to improve data quality because there is a single point for updates. Once those services are tested thoroughly, they only need to be regression tested if they remain unchanged for the next deployment.
      • Disadvantages
        • a common criticism is that when compared to traditional data delivery, the consumer is really just “renting” the data, using it to produce a graph, chart or map, or possibly perform analysis, but for data as a service, generally the data is not available for download
    • Database as a service (DBaaS)
    • Test environment as a service(TEaaS)
      • Sometimes referred to as “on-demand test environment,” is a test environment delivery model in which software and its associated data are hosted centrally (typically in the (Internet) cloud) and are typically accessed by users using a thin client, normally using a web browser over the Internet.
    • Desktop virtualization
      • Desktop virtualization involves encapsulating and delivering either access to an entire information system environment or the environment itself to a remote client device. The client device may use an entirely different hardware architecture from that used by the projected desktop environment, and may also be based upon an entirely different operating system.The desktop virtualization model allows the use of virtual machines to let multiple network subscribers maintain individualized desktops on a single, centrally located computer or server. The central machine may operate at a residence, business, or data center. Users may be geographically scattered, but all must be connected to the central machine by a local area network, a wide area network, or the public Internet.
    • API as a service(APIaaS)
      • API as a serviceis a service platform that enables the creation and hosting of APIs (application programming interfaces).These API’s normally provide multiple entry points for API calls ranging from REST, XML web services or TCP/IP.
    • Backend as a service(BaaS)
      • Web and mobile apps require a similar set of features on the backend, including push notifications, integration with social networks, and cloud storage. Each of these services has their own API that must be individually incorporated into an app, a process that can be time-consuming and complicated for app developers. BaaS providers form a bridge between the frontend of an application and various cloud-based backends via a unified API and SDK.