One of the biggest challenges of building a high-performance service is making it scale. To do that, we use IBM’s SoftLayer.
SoftLayer started in 2005 as an Infrastructure as a Service (IaaS) and was acquired by IBM in July 2013. It has grown since then as one of the world largest cloud hosting platforms. Everyone can find a fitting solution there, from small webhosters to huge companies. SoftLayer offers virtual nodes, as well as bare metal servers, both can be fully customized to select the ideal hardware configuration. Except for machines you can also find networking and security hardware there for your cloud solutions. Think load balancers and firewalls here. Creating your own application is cool, building upon a foundation consisting of battle tested services is even better! This is possible thanks to the IBM Cloud Marketplace which contains third-party services that are just one mouse click away from running along your own application.
So, how does all this fit within BitSensor? To achieve a high throughput we need to be able to quickly scale our infrastructure. This is possible because of SoftLayer’s quick provisioning, it only takes a few minutes from ordering a new server to having it up and running. Adding a custom provisioning script to it makes it even easier to get a new server working. When you select a URL at which the script is hosted it will be fetched and executed as soon as the server has finished booting. The script has to be served over HTTPS to prevent someone from intercepting your configuration. Consider hosting the script on a server that is only privately accessible by your machines or fetch the exact configuration later. You probably want to add some users, setup the firewall and create recurring tasks with your script.
Being able to order new devices on the fly is pretty cool, but now imagine you manage over 9000 machines doing 50 different things and you need an extra instance of that oneservice. Who you gonna call? REST service! Because of SoftLayer’s APIs you can integrate control in your existing management application or create your own dedicated client. There are APIs available for multiple platforms, including Java, PHP and python. If that’s not enough it’s also possible to utilize the REST API and use whatever framework you like.
Making your application scalable is about more than having good servers, you will also need to update your services to handle a continuously changing environment. But that’s a story for another time.