IBM Bluemix – Platform as a Service cloud
It’s 2017 – some cloud platforms are more than a decade old, Amazon Elastic Compute (August 2006) for instance. Others are slightly younger; IBM Bluemix will be exactly three years old this June. We are certain that it’s about time that even serious architects start counting on the cloud paradigm, for several reasons. The most obvious ones are: setting up DevOps development methodology, microservice architecture system development, polyglot programming, implementing agile principles such as building prototipate flexibility in development and deployment. Cloud is not necessary for realization of these paradigms, but it definitely helps. Sometimes, it is the only real option (it saves both time and money). In this article, we will explain how IBM Bluemix can help you with developing your future modern applications.
„Get your cloud together“- bluemix.com
Let’s repeat: IBM Bluemix is a PaaS platform. Bluemix ensures the platform for our applications and services, while we take care only of our application’s code and data layer. In practice, that means that we pack the program code and simply command it to be sent to cloud. After that, it is enough to just click the start button and our application is ready for using. It is as simple as that, no meetings, approvals, deployment servers, waiting for our dearest system programmer to find time for our application, checking if the wanted version has been deployed, and when a bug is found, doing the whole procedure all over again. Moreover, the whole procedure can be even simpler by using Bluemix Live Sync service, that will update the cloud application after saving changes on the development computer.
Bluemix comes in four different flavors: public, dedicated, private and local.
Public Bluemix is the real Bluemix. It is publically available, with the highest number of available services, currently over 130! It is easy to start. You only have to create a user account in which no credit card information is necessary. By creating an account, a trial period that lasts for 30 days starts, in which we can use the amount of 2 GB RAM memory for our applications. After the trial expires, we can continue using the free amount of resources, but now we have to register credit card information. Throughout the calendar month, 375 GB-hours are free. Gigabyte-hour is a payment unit on Bluemix, 375 GB-hours is approximately 31 days of using a half GB container. Naturally, by turning the application on and off you can optimize the resource consumption.
Bluemix services are divided into 12 categories. For better understanding of what functionalities are available, we are listing all the categories: Compute, Network, Storage, Data & Analytics, Watson, Internet of Things, APIs, DevOps, Security, Application Services, Mobile i Integrate. Just by looking at these categories, we can see that functionalities for development of various types of applications are available. If we want to deploy Java, Node.JS, PHP or Phyton application, we just have to take a look inside the Compute service catalog and we will find an already prepared server/container, ready to start our application. If the Public Bluemix is not satisfying our non-functional demands, we have Bluemix Dedicated. To simplify, we can imagine the Bluemix Dedicated as a copy of the public Bluemix, available only to us. With Bluemix Dedicated we have a reserved hardware, separated physically and by network. Because of that, we get a higher security and privacy level and assured performances. When connecting it by VPN to our on-premise IT, we get an extension of our existing infrastructure.
If we’ve already invested into our infrastructure and the application and data can’t get outside our organization under any circumstances, then the Bluemix Local is the option to go with. Bluemix Local is delivered as-a-service. IBM’s employees are delivering it to the prepared infrastructure.
Services. Lots of services.
Today, it is not too hard to put up your own cloud. All you need is some hardware, a virtualization platform or an OpenStack (IaaS) and CloudFoundry (PaaS). Bluemix is based exactly on the combination of OpenStack and CloudFoundry platforms. However, there is a big difference between a local cloud platform and Bluemix. When self-installing the CloudFoundry platform, we get an empty box that we can fill with our services. Bluemix offers us, per login, over 130 quality services, all available for using immediately. We will describe the most useful ones to you in a brief service review. You can read more about DevOps services in a separate frame. It’s advisable to know them because they can be of use. It is important to mention, that you don’t have to use them. Or any other service, for that matter. When choosing a service, we should primarily be guided by our vision of the architecture and the development of every (micro)service. The first choice to be made is in which format will we transmit our applications to Bluemix. Currently, we have at our disposal CloudFoundry, IBM Containers (Docker) and beta-programs IBM Virtual Servers and OpenWhisk. CloudFoundry is the type of container Bluemix has been supporting since day one and in some cases, still the simplest way of delivering applications to Bluemix. On the other hand, if we’ve accepted or want to step inside the Docker ecosystem, IBM Containers is a more attractive option. In that context, we can look at Bluemimx as another Docker host. Application delivery is done in a container form, by which the previously prepared IBM Docker images (even though it is about images checked by malicious code) do not limit us, but we can push our own images.
Virtual Servers and OpenWhisk are beta-options. Through Virtual Servers users are able to create their own OpenStack virtual machines. That option is a good choice if we need full control over the virtual machine’s contents. OpenWhisk, on the other hand, is on a completely different end of the specter. It’s about a very interesting serverless architecture in which our focus is on executing our own code, and everything else is on the platform to take care of. You want to program in Swift? Try out OpenWhisk.
Watson services – brains for applications
Today’s applications are expected to be smarter, to have a built-in knowledge and to „feel“ what we, the users, expect from them. IBM is one of the pioneers in constructing high cognitive possibility systems domain. We still remember the legendary match between Gari Kasparov and Deep Blue from 1997 and the one from 2011 between the best contestants from Jeopardy and the Watson system. In both matches IBM’s technological solution defeated best chess and Jeopardy players. Today, Watson technology is available to us all through Bluemix services. So, we have at our disposal a service that analyzes non-structural text and images. We can teach it terms from our domain so we could get even better answers to our questions. We need to quickly translate a text from one language to another? Language translator service can help us. We can use Text to Speech and Speech to Text services for our application’s audio-possibilities. We can even combine them to Conversation (virtual agents, chatbots) and Tone Analyzer services. Once we’ve seen the Watson services collection available to us, we realize that creating an automated system for helpdesk is reality.
Analytics – let’s analyze while it’s happening
In some situations, we just have to react while they are happening. Let’s take the alerting tsunami danger system as an example. Once the water reaches our necks (literally) it is already too late. We need data collection with a bigger sensor quantities, event correlation and taking action. Bluemix Streaming Analytics service provides us with that. Together with Predictive Analytics service we can enrich our applications with plenty possibilities of making quality decisions.
Data – services that protect our data
Almost every application has a need to protect data. Cloud doesn’t change that fact. What changes is not having only one type of data repository, but more. Sometimes the most elegant alternative is the NoSQL variant, such as Cloudant DB. That service offers us 1GB of free space. It is ideal for when we need the JSON base. Sometimes a graph base (IBM Graph service) will be more suitable, and sometimes a key:value repository such as Redis. Of course, the relation base is often a must, and here we can choose between open source variants (PostgreSQL, MySQL) or IBM DB2 on Cloud.
We’re often not able to move all the application’s components to cloud. Regulatory limits can ban us from saving data to a server outside the country’s territory. In those cases, we can keep data in on-premise bases, while developing the application in the cloud. To protect data in transit, we can use Secure Gateway Service that created a safe channel between applications in cloud and the on-premise component.
With this brief revision of available services we’ve presented only the tip of the iceberg. We’re inviting you to use the free registration trial and to discover all the advantages of Bluemix platform for your new cloud application.
IBM Bluemix DevOps Services
With more serious application development, we have to deal with the development cycle problem, that includes the development itself (programming), code repository, planning and bug tracking, build and deployment. In DevOps world we want to approach the continuous delivery (CD) development model. Good news is that Bluemix DevOps services offer tools with which we can get to the CD development model in a short period. If we’re starting a new project, one of the first things to deal with is the code repository. Bluemix DevOps offers us creating a private Git or Jazz SCM repository in cloud. If we’ve already created a project in GitHun, we can connect the repository to the DevOps service. Once we’ve dealt with the code repository and created our project, we need development tools (IDE). If we didn’t already pick our favorite IDE, the web IDE is ready in the internet browser. It is the most suitable for web developing (JS, HTML, CSS), but it works for other program languages (it supports syntax highlighting) in cases when our favorite IDE is not available. Once we’ve secured the prerequisites for team development, we can deal with the social aspect, i.e. our developing team and problem tasks. Track and plan enables us to create problem tasks (backlog) and to follow notifications on mistakes. Since we’re going to, most likely, be doing it based on the Agile principles, we can plan sprints. We can constantly track the team’s progress. For example, we can keep track of the burn up chart with finished and planned stories’ metrics.
We have to pack and install our code to the executive environment in some way. DevOps Build & Deploy service makes that job a lot easier. That functionality is also called a pipeline, to emphasize the continuous deployment aspect.
Get in touch
Want to hear more about our services and projects? Feel free to contact us.Contact us