By Richa Bhatia
The space in the cloud computing area is more competitive than ever. Big technology players are investing millions of dollars to gain a bigger share in the market. With players like Amazon, Salesforce, Google, and Microsoft making significant achievements in the race for supremacy in the cloud space, IBM has upped the ante with IBM Bluemix as a Cloud-Foundry based PaaS (Platform as a Service). In this article, I will examine the key differentiators that make Bluemix an ideal solution to develop applications easily and rapidly.
Platform as a Service (PaaS)
Before diving into a detailed look at IBM Bluemix, let’s first review the basics of PaaS. Platform as a Service allows users to create software applications using tools supplied by the provider. PaaS services can consist of preconfigured features that clients can subscribe to. Clients can choose to include the features that meet their requirements while discarding those that do not. Consequently, packages can vary from offering simple frameworks where no client-side hosting expertise is required to supplying the infrastructure options for advanced development. Clients also benefit from the economy of scale that arises from sharing the underlying physical infrastructure between users, a factor that results in lower costs.
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 to deploy web applications. Clients, which range from browser-based apps, mobile apps, external applications, applications that are built on Bluemix or application developers that are using browsers, interact with the Bluemix-hosted applications using REST or HTTP APIs to route requests through Bluemix to one of the application instances or the composite services.
Image source: IBM
Bluemix offers three ways to run code: Cloud Foundry, IBM Containers, and virtual machines.
- Cloud Foundry: In Cloud Foundry or CF, users write application code, which they deploy onto a runtime environment - i.e. programming languages and associated frameworks. Cloud Foundry runs applications in its own containers which are OS-independent, staging the runtime and app code into instances called, “droplets.” These application instances are of a size controlled by developers who can easily compose business applications without the overhead of setting up underlying architecture. Bluemix enables web and mobile applications to be rapidly and incrementally composed from services which can either be provided by IBM or by the open source community. When CF is deployed as a PaaS, it will normally have some built-in buildpacks, but users can also add additional ones through a mechanism conveniently named, “buildpacks.” IBM has created two buildpacks of its own, for Liberty (Java) and Node.js. They also supply community buildpacks, for Ruby on Rails, Ruby Sinatra, Python, PHP and GO. As with normal CF, users can supply their own buildpacks called “runtimes” in the BlueMix portal.
- IBM Containers (BETA): A container is an object that holds everything needed for an application to run. IBM Containers Service lets developers launch Docker containers directly onto the cloud with Docker-native features, standardized interfaces, and orchestration services. Enterprises can use this powerful development combination to create and manage a new generation of portable distributed applications that have a dynamic lifecycle and can scale both horizontally and vertically to run in concert anywhere from the developer’s laptop to hundreds of hosts in the cloud. The IBM containers are based on the popular Docker containers. On a high level, containers are similar to virtual machines (VMs) and have similar advantages like the fast creation of new instances.
- Virtual Machines (BETA): The Bluemix virtual machines infrastructure gives developers the ability to create and manage virtual machine groups on the IBM public cloud. Bluemix also has support for monitoring and logging a VM. One can deploy and manage a virtual machine by using either the Bluemix UI or the cloud's OpenStack APIs. VMs on Bluemix support provisioning of virtual machine groups with auto scaling. This enables the number of instances to be automatically increased or decreased, based on CPU load, or the failure of an instance. Additionally, load balancing is supported on VMs, which enables the assignment of virtual IP addresses when needed.
Simplicity and speed
Continuous delivery is one way this can be provided. The integrated environment provided by Bluemix allows developers to automatically deliver code without the hassle of building and debugging installation scripts, thus reducing the downtime of redeploying applications and puts the code in the hands of the testers and user community faster. The application can be deployed to multiple spaces which allow segregation of environments for development, testing and production.
Bluemix allows developers to scale environments elastically, based on business demand. Instead of manually deploying workloads, Bluemix will automatically redeploy workloads to other virtual machines (VMs) if there is an outage. Users are able to stop or start applications and define how much memory is associated with each application.
Bluemix allows developers to choose the development tools of their liking by providing options that are Command Line, Eclipse, and Web IDE.
Bluemix also comes with integration to several source control management (SCM) systems. These include Git, GitHub and Jazz SCM, which can be configured to deliver application changes continuously. Open source Cloud Foundry applications can be forked and loaded to Bluemix.
Services leverage APIs and software development kits (SDKs) that can quickly and easily be incorporated with Bluemix applications. Bluemix offers an open and flexible ecosystem which allows other companies to provide services that can be integrated into applications. Companies can be both providers and users of services. Two types of available services are:
- Managed Services: These services are available to all Bluemix customers either at no cost or pay as you go basis.
- User Provided Services: These can be added so that organizations can share services within their organization enabling reuse and standardization of services within the company.
By providing a range of services that enable building, extending and scaling up an application, Bluemix makes itself the ideal choice for developers who want to abstract themselves from the infrastructure and focus on application development in the most popular programming languages. To learn more about what Bluemix can do for you, you can reach us on 1300 841 048 or online.