Introduction to cloud computing and IBM Bluemix
This unit covers the following topics:
Cloud overview
Bluemix overview
1.1 What you should be able to do
After completion of this unit, you should be able to:
Define cloud computing
Describe the factors that lead to the adoption of cloud computing
Describe the choices that are available to developers when creating cloud applications
Describe infrastructure as a service, platform as a service, and software as a service
Describe IBM Bluemix
Describe the architecture of IBM Bluemix
Identify the runtimes and services that IBM Bluemix offers
1.2 References
The following publications are useful for further research on the topic that is presented in this unit:
What is Cloud Computing?
Cloud Service Models:
Bluemix Runtimes:
Bluemix Services:
Services by Region:
What is IBM Bluemix?
Bluemix fundamentals: 5 key advantages, from a developer’s perspective:
1.3 What is cloud computing?
Figure 1-1 What is cloud computing?
Notes:
The term cloud is used as a metaphor for the internet and a virtualized set of hardware resources. The term cloud is an abstraction for the complex infrastructure it conceals. The generally accepted definition of cloud computing comes from the National Institute of Standards and Technology (NIST). The NIST definition runs to several hundred words but essentially says that:
“Cloud Computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
Examples of computing resources include:
Networks
Servers
Storage
Applications
Services
1.4 As opposed to…
Figure 1-2 As opposed to...
Notes:
Cloud computing as a deployment model is replacing an older approach where each application that a user interacts with had its own custom built services, networking, data storage, and computing power.
The ability to reuse and repurpose hardware rapidly, and to host multiple applications and systems within a single set of hardware in an isolated fashion, are some of the main characteristics driving the adoption of cloud computing.
In the old approach, the IT staff needs to manage the entire stack, from hardware all the way to the latest software changes. This model does not scale as well as today’s businesses and organizations require.
1.5 Factors contributing to growth of cloud
Figure 1-3 Factors contributing to growth of cloud
Notes:
One factor contributing to the growth of cloud computing is that today’s applications require a short time to delivery. Developers are pressured to get their product to market as soon as possible. They want to get feedback quickly, and then iterate on the idea to make the product better, faster.
Cloud makes hardware resources readily available and quick to configure, which shortens the time required for developers to show a working version of their products. Also, cloud allows the reuse of the same resources for multiple successive projects, which is more cost-efficient.
Another factor contributing to the growth of cloud computing is that developers expect to be able to use many languages and interact with predefined services. Cloud computing provides prepackaged language support, which enables the support of many more languages than the traditional do-it-yourself environment. Cloud computing can also make available shared services that provide an externally managed way of delivering frequently-used functions.
Another factor driving the adoption of cloud computing is that developers want to be able to add more resources to a specific application (scaling up, or vertical scaling), or add more duplicate instances of an application (scaling out, or horizontal scaling) to handle increased customer load. Cloud platforms provide standardized methods to scale applications.
Developers expect the pay-as-you-go utility computing billing method that cloud provides.
1.6 Cloud and mobile computing are changing traditional IT
Figure 1-4 Cloud and mobile computing are changing traditional IT
Notes:
Cloud and mobile computing are changing traditional IT.
Cloud computing is a disruptive change in the IT industry that represents a new model for the IT infrastructure that is very different from the traditional IT computing models. Cloud computing enables ubiquitous computing, where computing is made to appear anytime and everywhere, using any device, in any location, and in any format. The surge of mobile devices is greatly contributing to this model.
This new model demands a dynamic and responsive IT infrastructure due to short application lifecycles. To support this model, new development processes, application design, and development tools are required.
Virtualization and high-speed internet connectivity provided the foundation that enables cloud computing. Virtualization is key to cloud computing. It is the enabling technology that allows the creation of an intelligent abstraction layer that hides the complexity of underlying hardware or software. Virtualization provides the ability to represent physical hardware with software-defined and managed systems.
1.7 Cloud service models
Figure 1-5 Cloud service models
Notes:
In the infrastructure as a service model (IaaS) cloud service model, a set of physical assets such as servers, network devices, and storage disks, are offered as reserved and privately accessible to consumers. The services in this model support application infrastructure. IBM SoftLayer® is an example of an IaaS cloud service model.
Platform as a service (PaaS) is a cloud service model in which application framework and runtime is a self-service, shared, virtualized entity. The goal of PaaS is to enable the developer or team to focus on the application business functions, code, and data, rather than worrying about infrastructure. IBM Bluemix is an example of the PaaS cloud service model.
Most everyday web users are familiar with software as a service (SaaS), although they might not know it. Applications in the SaaS model are provided on-demand to users through the internet, as opposed to desktop applications. Examples of SaaS applications include Salesforce.com, Google Apps, IBM Cloud for SAP Applications, and Facebook.
1.8 Infrastructure as a service architecture
Figure 1-6 Infrastructure as a service (IaaS) architecture
Notes:
Infrastructure as a service (IaaS) is a way of delivering cloud computing infrastructure (including servers, storage, network, and operating systems) on-demand and by using self-service tools. Rather than purchasing servers, software, data center space, or network equipment, organizations instead buy or reserve these resources through an application or API that automatically provisions or reserves the resources and makes them available.
IaaS offerings are built on top of a standardized, secure, and scalable infrastructure. Virtualizing the hardware is performed by a program known as hypervisor. A hypervisor manages virtual machines or virtual servers, which are multiple operating system instances that are running on a specific physical machine. Each operating system appears to have the host’s processor, memory, and other resources all to itself, but in reality the hypervisor is controlling and provisioning access.
Finally, self-service is an important attribute of IaaS. Users do not have to contact support to perform common tasks, such as creating their own server and setting up basic networking.
1.9 IBM SoftLayer: IaaS offering from IBM
Figure 1-7 IBM SoftLayer: IaaS offering from IBM
Notes:
SoftLayer is an IBM infrastructure as a service platform. IBM has more than 20 SoftLayer cloud centers, with automation and standardization across data centers, to provide a seamless global network with access to a virtualized hosting infrastructure. Many organizations favor SoftLayer because of the easy access it provides to “bare metal” servers.
In addition to virtual servers, SoftLayer offers bare metal servers, which provide the raw horsepower that some organizations require for processor-intensive and disk I/O-intensive workloads.
 
1.10 Platform as a service (PaaS) architecture
Figure 1-8 Platform as a service (PaaS) architecture
Notes:
PaaS can be defined as a computing platform that allows the creation of cloud-based applications quickly and easily, and without the complexity of configuring the required hardware and software resources. PaaS typically entails the developer uploading the application code, or pointing to it and letting the PaaS complete the following tasks:
1. Obtain the runtime binaries and dependencies for the application.
2. Structure their application bits into the proper directory tree for containerization.
3. Provision a container (or set of containers) on which the application can run.
4. Automatically generate simple and basic networking configuration for access to the application.
5. Provide automatic and built-in monitoring of the application.
6. Allow you to update and redeploy the application with zero downtime.
PaaS typically involves sacrificing some level of fine-grained control over the application’s environment to gain convenience, ease of use, and rapid deployment by using a predefined deployment process. PaaS also makes use of external services or APIs that allow rapid composition of applications by reusing pieces of infrastructure (for example, a database) that require little to no investment in setup and configuration.
PaaS also gives the developer some automatic method for scaling. For example, consider a situation where the developer wants more hardware resources dedicated to an application (scaling up or vertical scaling) or more instances of the application to handle the load (scaling out or horizontal scaling). PaaS also provides built-in application monitoring. For example, the platform sends notifications to inform developers when their application crashes.
1.11 Software as a service (SaaS) architecture
Figure 1-9 Software as a service (SaaS) architecture
Notes:
SaaS is a delivery model that provides access to capabilities through web-based services. SaaS enables organizations to access business functionality, typically at a lower cost than paying for licensed applications. SaaS pricing is often based on a monthly fee. Because software is hosted remotely, organizations do not need to invest in new hardware to run the application. Saas removes the need for organizations to handle installation, setup, and maintenance.
Sometimes SaaS applications are free and providers generate revenue; for example, from web ads. Alternatively, SaaS application providers generate revenue directly from the use of the service. These scenarios might sound familiar because this cloud service model is ubiquitous. If you use a tax preparation service to file your income taxes online, or use an email service to check your mail, you are familiar with this cloud service model. These types of applications are just two examples. Thousands of SaaS applications are available, and the number grows daily, primarily because of Web 2.0 technologies.
Under the SaaS model, the software provider is responsible for creating, updating, and maintaining software, including the responsibility for licensing the software. Customers usually rent the software on a per-usage basis, or buy a subscription to access it that includes a separate license for each person who uses the software.
In this model, the service user needs only to access the service and not the platform or the infrastructure on which the service is running. The service is usually accessed as a web application, or invoked by using REST or other web-based APIs.
1.12 Split of provider-side and consumer-side responsibilities
Figure 1-10 Split of provider-side and consumer-side responsibilities
Notes:
Figure 1-10 shows the split between the provider and consumer-side responsibilities when dealing with on-premises or “as a service” scenarios.
Typically, the cost reduces as you move to the right in the scenarios that are shown in Figure 1-10; however, the flexibility reduces as well. Organizations or departments within an organization make their own cost-based decision about which delivery model to use for individual applications or projects. Most enterprises end up using some combination of all of the models that are shown in Figure 1-10.
Traditional on-premises environments might not include a hypervisor. Some enterprises use their own internally-managed hypervisor to be more efficient. When they do have a hypervisor, they manage the storage, networking, and physical network on which the hypervisor runs.
1.13 Cloud computing: Benefits for developers
Figure 1-11 Cloud computing: Benefits for developers
Notes:
Cloud computing brings the following benefits to developers:
Provides readily available sandbox and production environments. These environments offer the following capabilities that are attractive for developers:
 – Free trials that are offered with most products
 – Pre-built templates and examples that help developers to get started fast
 – Smaller learning curve to understand application lifecycle
 – The environment to run an application is set up in minutes instead of days
Brings a wide range of choices to developers in the following areas:
 – Programming languages and frameworks
 – Services
 – APIs
Facilitates integrated development, test, and debugging:
 – New model is to integrate development and operations teams into DevOps
 – Build engine for compilation and testing
1.14 What is IBM Bluemix?
Figure 1-12 What is IBM Bluemix?
Notes:
IBM Bluemix is the IBM open cloud platform that provides mobile and web developers access to IBM software for integration, security, transaction, and other key functions, and software from business partners.
Cloud Foundry is an open platform as a service offering that provides a choice of clouds, frameworks, and application services. Cloud Foundry includes a scriptable command-line interface (CLI) and integration with development tools to ease the deployment process.
IBM Bluemix is deployed on IBM SoftLayer data centers.
1.15 IBM Bluemix ecosystem
Figure 1-13 IBM Bluemix ecosystem
Notes:
The IBM Bluemix environment is an open ecosystem of services, runtimes, and boilerplates. A catalog of selectable services makes it easy for developers to bind services, such as databases, mobile support, analytics, and security, to their applications. Integration services allow applications to access traditional workloads that are running in the organization’s on-premises environment.
Boilerplates are predefined, preconfigured sets of a runtime and one or more services that work together to show an example of how to compose services into a PaaS-deployed application.
The operational environment is composed of Cloud Foundry and DevOps Services. Cloud Foundry provides the monitoring, deployment, and logging tools. DevOps Services provides an online code editor, a build pipeline, and a version control system.
Solutions show how to weave these various offerings together to create your application and improve the way that you do business.
1.16 Bluemix architectural overview
Figure 1-14 Bluemix architectural overview
Notes:
The IBM Bluemix Architecture is based on Cloud Foundry. Cloud Foundry uses the Diego architecture to manage the application life-cycle for deploying and starting the application on Cloud Foundry. The following notes correspond to the numbers that are shown in Figure 1-14:
1. As a developer, you interact with IBM Bluemix by using your web browser or the CLI.
2. When you push an application to Cloud Foundry, your requests are sent to the Cloud Controller, which is responsible for managing the lifecycle of applications. The CF CLI submits a request to the Cloud Controller to create a record for the application.
3. The Cloud Controller stores the application metadata in the Cloud Controller database (CCDB). Application metadata includes the application name, number of instances that the user specified, and the buildpack and other information about the application.
4. CF send a request to the Cloud Controller to upload all application files.
5. The Cloud Controller stores the application package in the blobstore.
6. The CF CLI issues an application start command.
7. The Cloud Controller issues a staging request to Diego, which then schedules a Cell to run the staging task. The task downloads buildpacks and, if present, buildpack cache of the app. It then uses the buildpack to build the droplet. The task uses the instructions in the buildpack to stage the application.
8. The Diego Cell streams the output of the staging process so the developer can troubleshoot application staging problems.
9. The task packages the resulting staged application into an archive called a “droplet” and the Diego Cell stores it in the blobstore. The task also uploads the buildpack cache to the blobstore for use the next time the application is staged.
10. The Diego cell reports to the Cloud Controller that staging is complete. Staging must complete within 15 minutes or the staging is considered failed.
11. Diego schedules the application as a long-running process on one or more Diego Cells.
12. The Diego Cells report the status of the application to the Cloud Controller and the output continues streaming to the developer.
1.17 Bluemix: Choice of runtimes
Figure 1-15 Bluemix: Choice of runtimes
Notes:
With IBM Bluemix, developers are given a choice of runtimes on which to run their applications. The IBM runtimes include Liberty for Java and the SDK for Node.js. The following runtimes are available for Java:
Tomcat
Tomcat is an open source Java web application server.
Liberty for Java
IBM WebSphere Liberty is another Java EE application server. Liberty can deploy any Tomcat application, but it also offers support for many more Java web features; for example, Message Beans and JMX.
Other runtimes are available and supported through the developer community forums. Runtimes are provided through the use of a buildpack, which is a set of scripts that perform the job of packaging your application and any of its dependencies into the available droplets.
 
Note: IBM Bluemix and Cloud Foundry support more runtimes through the Community Buildpacks. This open-source community has written buildpacks for virtually every language. For more information, see Using community buildpacks, which is available at the following website:
1.18 Bluemix: Services
Figure 1-16 Bluemix: Services
Notes:
IBM Bluemix services provide the building blocks for delivering great applications. Too many services are available in IBM Bluemix to show in one figure. Figure 1-16 shows only the services that are available for Mobile developers. IBM Bluemix provides a broad range of pre-built services that can be used when assembling your application. The following service categories are available:
Data & Analytics
Watson
Internet of Things
APIs
Network
Storage
Security
DevOps
Application Services
Integrate
1.19 Bluemix: Regions
Figure 1-17 Bluemix: Regions
Notes:
An IBM Bluemix region is a defined geographical territory to which you can deploy your applications. Select the region that is nearest to your users, and deploy your applications to this region to achieve low application latency.
Different countries with different data security requirements might require you to run your IBM Bluemix application in a different region. Running your application in multiple regions also helps make your application highly available. If your application fails in one region, it is still available from another region.
You can switch between IBM Bluemix regions easily within the IBM Bluemix web interface. You can also browse IBM Bluemix directly for each region by using the URLs that are listed in the column “Point your browser here” in Figure 1-17. You can point your command-line client to a specific IBM Bluemix region by using the URLs that are listed under the column “Point your CLI here” in Figure 1-17.
 
Note: Not all IBM Bluemix services are available in all regions.
1.20 Unit summary
Figure 1-18 Unit summary
Notes:
In this unit, we defined cloud computing and described:
The factors that lead to the adoption of cloud computing
The choices that developers have when creating cloud applications
IaaS, PaaS, and SaaS
IBM Bluemix
The architecture of IBM Bluemix
We also identified the runtimes and services that IBM Bluemix offers.
1.21 Checkpoint questions
Figure 1-19 Checkpoint questions
 
1.22 Checkpoint answers
Figure 1-20 Checkpoint answers
 
 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.107.193