Thursday, January 3, 2013

Introduction to CloudBees, Developer's perspective

Thanks to my leftover PTOs (vacation days of my company), I got time to revive my personal projects. So far, my code is on my personal laptop and I have been spending time to research right SVN host, Amazon EC2 instances. And CI tools, Maven repos were kind of out of scope for now. Then I decided to try CloudBees tools.

So Why CloudBees?
Lets begin with situation of typical solo developer or solo start-up teams. Generally, you start with your favorite IDE and as soon as something is working, you start thinking about managing whole project life cycle.  You wish for these things.
For your day-to-day development
  • At least, you ( or your team) wants to commit changes to external source control. (svn, git etc.)
  • You should be able to preserve and release artifacts. (Our favourite tool is Maven.)
  • It would be nice, as soon as you commit (or regular intervals), some external CI tool, takes update from your SCM repo and do build. (And publish to private maven repository too). 
  • And don't we feel productive, if we have task management system to align with personal or team goals. (if agile tools available, even better.) 
For your testing and production servers. (application servers)
  • You may want one 24 x 7 running development integration server, who is always running HEAD (aka snapshot) of your code. 
  • Once you are ready to release your application to world, you should be able to deploy your code to load-balanced servers. 
That's where CloudBees comes into picture. CloudBees is trying these two categories of problems by offering two different suites of tools. 
  1. CloudBees DEV@cloud (or BUILD) provides tools for CI, SCM & Maven Repositories. 
  2. CloudBees RUN@cloud (or RUN) provides pre-installed java application servers, ready to run your JEE compliant code. 
How I use it?
I am sure, first thing you will do, go to cloudbees.com. Don't get temped with their sophisticated UI landing pages. Looks like lots of work and some complex process. (I wish, I could change their landing pages to be more KISS compliant, anyways). Main thing is, first you open an free account, with their FREE tier. (yes FREE option to try out every tool). As soon as you do that, you will have access to their tools which follows simple URLs. For example, if your account id is johndoe, then typical urls looks like
  • https://forge.cloudbees.com/a/johndoe/  - for SVN repos and Maven repos. You get 2GB free, combined for both. 
    • https://svn-johndoe.forge.cloudbees.com/project01
    • https://repository-johndoe.forge.cloudbees.com/snapshot/ (& release too.)
  • https://johndoe.ci.cloudbees.com/  - Jenkins landing page. Create jobs, configure it. Very much intuitive.
  • (Hopefully in future) https://johndoe.tasks.cloudbees.com/
For you run time needs
  • https://run.cloudbees.com/a/johndoe#db-manage  , yes you DB too. Free 5MB of MySQL, to get you started. If you already have big data set, I will recommend to keep Amazon RDS (or Xeround) in mind.  
  • https://run.cloudbees.com/a/johndoe#app-manage You can provision Tomcat or JBoss (and some other kinds too. Here is list
Apart from these in-house tools, CloudBees provide 3rd Party integrations. It's good to have integrations with other hosted solution providers, who are already market leaders. Here is complete list.

End Note:
We are living in age of cloud computing and there are lots of services are popping up. Also it has become important for us that we realize the real value & utilize cloud-based-services and more focused on actual productivity. In my case, I would have spent weeks in perfecting Jenkins (or Hudson), installing Subversion server, installing Maven repositories on Amazon EC2 infrastructure, but now, I have spent 2 days in navigating CloudBees and now I am thinking more of functional goals, not infrastructure tasks.

I have argued with myself, in self-hosting tools, I get much cheaper & unlimited CPU time. But I will be wasting my 80+ hours on perfecting it. Plus reliability of self-hosting service is definitely questionable.

Links to bookmark

No comments: