Question & Answer
An overview of IBM Bluemix
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 as well as software from business partners.
Built on Cloud Foundry open source technology Bluemix provides pre-built Mobile Backend as a Service (MBaaS) capabilities. Bluemix offers more control to application developers by using its Platform as a Service (PaaS) offering. The goal is to simplify the delivery of an application by providing services that are ready for immediate use and hosting capabilities to enable internal scale development.
With the broad set of services and runtimes in Bluemix the developer gains control and flexibility and has access to various data options from predictive analytics to big data.
- A range of services that enable you to build and extend web and mobile apps fast
- Processing power for you to deliver app changes continuously
- Fit-for-purpose programming models and services
- Manageability of services and applications
- Optimized and elastic workloads
- Continuous availability
Bluemix abstracts and hides most of the complexities that are associated with hosting and managing cloud-based applications. As an application developer you can focus on developing your application without having to manage the infrastructure that is required to host it. For mobile applications you can use the pre-built services that are provided by Bluemix. For web applications you can upload your application to Bluemix and indicate how many instances that you want running. Then Bluemix takes care of the rest. After your applications are deployed you can easily scale them up or down when the usage or load of the apps change.
Bluemix also provides middleware services for your applications to use. Bluemix acts on the application's behalf when it provisions new service instances and then binds those services to the application. This process enables the application to perform its real job which leaves the management of the services to the infrastructure.
At its core Bluemix is an environment for you to build applications and use services when you develop applications. Bluemix also provides an environment to host application artifacts that run on an application server such as Liberty. By using SoftLayer Bluemix deploys virtual containers that host each deployed application. In this environment the application can use pre-built services (including third-party services) to make application assembly easy.
As a developer you can interact with the Bluemix infrastructure by using a browser-based user interface. You can also use a Cloud Foundry command line interface called cf to deploy web applications.
Clients which can be mobile apps applications that run externally applications that are built on Bluemix or application developers that are using browsers interact with the Bluemix-hosted applications. Clients use REST or HTTP APIs to route requests through Bluemix to one of the application instances or the composite services.
How Bluemix works
- For a mobile application Bluemix contains an artifact that represents the mobile applications back-end such as the services that are used by the mobile application to communicate with a server.
- For a web application you must ensure that information about the proper runtime and framework is communicated to Bluemix. Then it can set up the proper execution environment to run the application.
- The load already on the machine
- Runtimes or frameworks that are supported by that VM.
You can have one or more instances running for your application. When you have multiple instances for one application the application is uploaded only once. However Bluemix deploys as many instances of the application as requested across as many VMs as needed. Instances of the same application can be on the same or different VMs based on the load of the VMs. Bluemix manages the deployment of the instances so the application developer is unaware of the choices.
In each VM an application manager communicates with the rest of the Bluemix infrastructure and manages the applications that are deployed to this VM. Each VM has containers to separate and protect applications. In each container Bluemix installs the appropriate framework and runtime that are required for each application.
Each application can have one or more URLs associated with it. However all of them must point to the Bluemix endpoint. When a request comes in Bluemix examines the request determines which application it is intended for and then selects one of the instances of the application to receive the request.
Bluemix is designed to host scalable applications and application artifacts. When the load of your application changes instances of your application might need to be created or deleted. Therefore any instance of your application might be terminated deleted moved or re-created on a new VM or container when it is required even if your application has only one instance. Because it might be removed at any time your application needs to save all persistent data in a data store that is outside of your application for example on one of the data store services that are provided by Bluemix. Any data that is stored locally to your application such as in memory or on local disk is removed when the instance of your application is removed.
Bluemix consists of applications services buildpacks and other components.
- Mobile apps
- Mobile apps run outside of the Bluemix environment and use services to which the mobile apps are exposed. These services typically act in concert? and represent the back-end projection of that application. Bluemix can also host application code that the developer would rather run on a back-end server in a container-based environment.
- Web apps
- Web apps consist of all the code that is required to be run or referenced at run time. Web apps are uploaded to Bluemix to host the application.
A service is a cloud extension that is hosted by Bluemix. The service provides functionality that is ready-for-use by the app's running code. The predefined services provided by Bluemix include database messaging push notifications for mobile apps and elastic caching for web apps.
You can create your own services in Bluemix. These services can vary in complexity. They can be simple utilities such as the functions you might see in a runtime library. Alternatively they can be complex business logic that you might see in a business process modeling service or a database.
Bluemix simplifies the use of services by provisioning new instances of the service and binding those service instances to your application. The management of the service is handled automatically by Bluemix. For all available services in Bluemix see the catalog in the Bluemix user interface.
An add-on is a Bluemix extension that manages and monitors applications. Add-ons are not used by the running code but provide functions to manage the application. You can use add-ons to provide many application management functions that you might otherwise have to code into an application yourself. Some of these functions include:
- Auto scaling to automatically increase or decrease the platform capacity by adding more application or service instances
- Monitoring response time performance and availability
- Agile application development planning
- Secure integration with on-premises systems
- Continuous delivery through automatic building
08 December 2018