IBM Bluemix offers 3 compute options (a) PaaS built => Cloud Foundry (b) Containers => Docker (c) Virtual Machines => Openstack. This post will give you a high level idea of the VM option available on Bluemix.
Virtual Machine compute option of IBM is in Beta as of Feburary 2016. Since it is still in beta, the cost of using these machines is $0. Obviously for that same reason, you would not want to use this option in your production application. Bluemix VM are available in two regions:
- United Kingdom
- US South (new users not entertained as of Jan 2016)
By default you will be assigned a quota of 2 VMs and 10 floating IP addresses. As of now there are only 2 Operating Systems supported:
- Debian (8)
- CentOS (6.5, 7.0, 7.1)
VM may be created in the Public cloud or the Private cloud. To create the private cloud you will be required to use the Openstack client.
IBM leverages OpenStack for abstracting the underlying bare metal. What that means is that as a developer you can use the open stack client for managing and automating all infrastructure aspects of the virtual machines on Bluemix. E.g.,
- creation of private networks,
- management of VM images,
- creation of security groups
- block storage creation and management
There are many more tasks that you can carry out with open stack, these are just some of the tasks related to VM. For more information please read the documentation available here
Astronaut's view of Bluemix VM
The pictorial below depicts the high level relationship between the various elements of the Bluemix account.
- Organization owner can upload and manage their own VM Images in the private image repository.
- There is also an option to create a snapshot from an existing VM instance.
- Bluemix offers 4 public images (Debian 8x, CentOs 6.5 7.0 7.1)
- In order to create an instance of VM on Bluemix, you will need to select a private or a public image
- Defined as configurations to control the incoming & outbound traffic to VM
- The default security groups allows incoming traffic only from the private network
- Few security groups available out of the box (allow_ssh, allow_https, allow_rdp, allow_all)
- Security groups needs to be managed by using the open stack client as the Bluemix UI/console does not provide any feature for security groups management
- The VM instances are ephemeral & the storage associated with the VM instance is not available after the instance is deleted
- For persistent storage, developer needs to create the Block Storage
- Block storage is allocated at the Space level
- Block storage instances may be allocated independent of the VM instances
- Multiple Block storage instances may be attached to the same VM instance
VM Monitoring & Logging
- By default logging is NOT enabled
- The logging requires the developer to install and enable the Bluemix Logstash forwarder agent. Available as a service.
- Monitoring is enabled and is available in graphical format (uses Graphite) for the cpu, memory & network
The simplest way to create a VM is by using the Bluemix UI/console. The other way to create VM is by using the Openstack client. The user needs to slect the image, security group and VM size as the parameters for the VM instance. Also the user can select to create the VM in a specific private network that has already been created. Typical provisioning time is under two minutes (based on my experience). Once the VM instance is created the developer can use the Bluemix UI/Console for managing the VM (Restart, Suspend, Delete..). The montoring data is also available on the UI console. User can SSH into the VM by either using the:
- SSH key with the default user name = ibmcloud
- or the user ID / Password. This option is not available for the public images.
VM Creation Demo (Video)