Yes, yes, FiFo is still down and customers are crying their eyes out, and I have listed the various alternatives to FiFo in my last blog, now - which one of these options would satisfy all our needs?
None.... so my solution is; write a new GUI ourselves, I mean how difficult can it be? My argument is that since we only need basic functionality to start with, then all we have to do is write some kind of webified wrapper for imgadm and vmadm which seems easy peasy.
As soon as I had finished my thought, the young office punk started to argue that it was a complete waste of time. It is much better to contribute to the existing FiFo project in unison with all the other contributors and reap all the inherent benefits of a real open source project he argued. But I was not entirely convinced, the FiFo project has already grown out of proportion and I was confident that no one else would subscribe to my minimalistic approach.
In the above picture the resident office punk is in the process of convincing me (it's me on the floor) about all the happy joys and benefits of Open Source and that sharing is caring. After being overwhelmed by loving arguments, I agreed to publish the source code on Github if ever I got around to program the darn thing.
In an effort to keep things simple and not fall in the same pitfalls as FiFo it is nessecery to keep ambitions to an absolute minimum, or even better, don't have any ambitions at all. In any case the ambitions or lack of same amount to:
Simple Graphical User Interface written in node.js running in a single SmartOS Zone. Management is done via SSH into Global Zone. All machine and User infoirmation are stored in JSON files.User sessions are tracked with a single cookie.
User Access Control
Virtual Machine administration
- Snapshot create delete rollback
- Get VNC info
- Automatic IP delegation
As you can probably see from above, it is very lightweight; hence the name LightlyCloudy for this project was born. There is only one external dependency which is SSH2 and it's used for the purpose of SSH'ing into the Global Zone and execute the imgadm and vmadm commands. And you will also notice the complete lack of a backend database, there are simply no justification for using a database and add unnecessary complexity with the amount of users we plan to support.
Since we have no immediate plans to save the entire world within the next weeks, there are some features that will have to wait for version 2.0 of LightlyCloudy. They are, just to list a few; support for multiple hypervisors, virtual network administration, prerequisite checks, and performance considerations.
Now with a clear plan in mind I started to write the all the code by myself, I'm still looking for voluntary contributors, but haven't found anyone yet, I'm considering to adopt the convincing methods I've learned earlier.
Anyway, stay tuned for next episode, where I will share the code and experiences gained with anyone interested.
In my last blog we saw how to manage the private cloud, and now the unthinkable happend, suddently our management system called FiFo stopped working all by it self...When clickking on the tabs it does not display any content, and below is a screenshot of what the js console reports:
Fortunately the underlying SmartOS and all the Virtual Machines keept on working as if nothing happend at all.. But now our users are unhappy because they can't manage their Virtual Machines through a GUI, I think the below picture tells more than a thousand words :-(
That's me on the right, trying to comfort one of our dearest customers...
Obviously we sought help in the FiFo googlegroups, and the guys there are pretty fast to respond and offer suggestions. We started to debug as per their suggestions and this checklist, but as we soon discovered, it was an insurmountable task due to the complexity of FiFo, even the log files did not give any hints as to the root cause of the problem.
So we abandoned the attempts to recover FiFo and decided to go for a new install, but unfortunately the FiFo database would also be overwritten by a new install, so this was not a viable option as we have a lot of user information in the database. Subsequently the new install attempt was also abandoned.
As a last resort we followed the upgrade guide from a-z, the upgrade was successful - but FiFo refused to restart after the upgrade, and our customers remains unhappy, what to do? Obviously FiFo is time being not the ideal way for us to pursue, we have to look into alternatives.
So what are the alternatives? well, if we look in the market there are OpenNebula, OpenStack, CloudStack and obviously SmartDataCenter. SmartDataCenter is not really an option, since it costs a lot of money, and we can't justify such expenses at the moment. What concerns the first three alternatives there are no support for the SmartOS hypervisor and there are no current plans to support SmartOS.
We could contribute to the efforts by Hendrik Volkmer to port openStack to SmartOS, but completion is no where to be seen as people also have dayjobs to care for and the task is complex, and then there are all of the subsequent maintenance to secure continued compatibility.
OpenNebula, OpenStack, CloudStack all support the AWS EC2 API, which means that we could write our own web service that runs on SmartOS and is EC2 compatible. Again the task is complex, and then there are all of the subsequent maintenance to secure continued compatibility.
We could also contribute to the FiFo project - but again, it's complex and FiFo tries to be omnipotent just like the other four alternatives, and we don't have time to wait for a workable product when our customers demand it now and not tomorrow!
Stay tuned for the next exiting part in this series, to see how we solved the problem.
In my last post I covered the process of seting up a private cloud. Ok, so now we have the darn thing up and running, and the big question remains, how do we sell it to our internal and external customers?
As with all things you must give the people what they want and they will come, and only thereafter you can sell them what they yet don't know they need. So, in Anno Domini 2014 the customers crave virtualisation because then they can continue using their familiar legacy environmets.
Fortunately SmartOS have KVM feature that supports virtualisation of most types of OS'es, which is all fine, but how can you provide that all important self-service to your customers? most of our end users are command line impared, so what we really need is a fancy GUI that will enable customers to easily create and manage their virtual machines on a wholesale basis.
There are currently only two such cloud orchestration products available, the first is Joyents propritary solution the SmartDataCenter, which is a complete enterprise solution, and then Project FiFo which also is enterprise (like) and at that also open-source.
The choise was fairly simple for us, since we time being can't justify the purchase of a copy of Joyents SmartDataCenter, we are left with only Project FiFo. We downloaded version 0.4.1 - "Hopping Husky" and the installation was simple and straight forward, and we had a usable GUI up and running in absolutely no time.
FiFo want's to do everything you would ever need when you have a private cloud to manage.... except serving virtual machine images. What FiFo does instead, is to connect to e.g. datasets.at and datasets.joyent.com but none of those servers offer Windows images for obvious license reasons, since our marketing stategy is to proliferate our private cloud among Windows developers too, we need to create our own image server.
If you wan't to make your own image server there are two alternatives. The first solution is suggested by Joyent Creating a Poor Man's Image Server, but FiFo is only compatible with the new API so this solution is not workable. The second alternative is Setting up a local Dataset API repository for SmartOS (dsapi) the setup is fairly simple and straight forward.
The only minor complaint about this image server is that it is using memory ad libitum, you need to allocate memory that is twice the size of your image file. In our case we have a 8Gb Windows Server 2012 image, so we need to permanently allocate 16 Gb of RAM, which is kind of a waste of memory.
Now we have our private cloud completely up and running, and everyone is happy. Above is a picture of me (left) with one of our numerous happy users.. to be continued.