Kubernetes cluster made easy with Vagrant and CoreOS

Lately, I’ve been playing with Kubernetes. But it hasn’t been an easy ride! The guys running the project are really awesome and supportive, but they just can’t maintain documentation on the myriad of providers they’ve been able to use to provision a cluster.

Given this, I’ve tried to make it easy for people like me, the day-to-day developer that just wants to try out this amazing technology or develop apps on top of it. And so I did. Here you’ll find a quick and simple way to bootstrap a Kubernetes cluster on top of Vagrant (Virtualbox) and CoreOs.

Give it a spin and let me know what you think.


Clustering Hazelcast on Kubernetes

I’ve had experience with clustering Hazelcast in Google Cloud Engine before, but right now, in the advent of containers, Kubernetes is becoming a standard for app/container orchestration and therefore my previous effort has become somewhat obsolete – unless you’re limited to VMs and have to use TCP-based clustering for Hazelcast, since multicast traffic may be blocked (it is on most cloud providers).

Given this, I’ve assembled a Dockerfile which will run a small app (hazelcast-kubernetes-bootstrapper) on boot. This app queries Kubernetes API to discover all nodes in the [Kubernetes] cluster that are acting as an Hazelcast node, retrieves their IP addresses, configures and instantiates Hazelcast with TCP configuration, accordingly.

Please test it and give me feedback. All you need is Docker and a Kubernetes cluster (I’ve tested it locally and in Google Container Engine).

More information, including step-by-step instructrion can be found at https://github.com/pires/hazelcast-kubernetes.

Paulo Pires

John Dvorak is an avid follower of this blog!!

Doubt it? Check the picture in this post!

Obviously he has read the amazing review of the Nokia E71 written by yours truly.

Oh and btw, I was also present in SAPO Codebits 2008. Good organization, nice idea on the RFID, good catch on the free food, drinks and tooth-brush. Poor presentations! Please spare us the intro and history stuff, and show us the code.. or at least something that’s actually worth the event itself.

* OpenMoko – Totally SUCKED! Compiling stuff directly in the device using distcc was the only amusing part, even that it’s so totally fucking stupid.

* Java HA – Left 3 minutes after starting. Was expecting something like HADB, clustering hacks and stuff like that. But all I saw was file parsing.. Perhaps I wrongly got in a PERL intro.

* CoachDB – I was expecting something more, but all in all it was refreshing.

* Server-side Javascript – nifty concept but not for me!

* Technology in a start-up – now that’s something I wasn’t expecting to attend given that Java HA happened at the same time, but as I left the latter I thought why not rant a bit with the tech leader of the Biker Mice from Mars crew, aka 7Syntax? And so I did! Unfortunately such individual is not open to steady smart questions and the answer was always “NO!” whatever the context might be! Very interesting, though, is the chunk of frameworks they use to bring Handivi to life.. and just look at it, very attractive look, isn’t it?!

Oh well, people were nice! We could almost see some fight between Microsoft guys and Nuno Dantas because of him trying to take a picture of a Windows Vista crashed system.. and just for that it was really worth it. Can’t wait for 2009 edition!!


Solaris + Ubuntu == Robust server, Take 2

Hi fellow geeks,

One year and some months ago, I posted about an Ubuntu-based distro for OpenSolaris, Nexenta. Back then it was versioned as alpha7, but it has now reached 1.0.1. A 2.0alpha1 release is also available, featuring the upgrade to Ubuntu 8.04 LTS (Hardy Herdon).

For those of you, ZFS-DTrace-Zones lovers, there is a review at OSNews that’s worth reading.

Here’s an excerpt that will make you forgive me the lamme linking attitude.

apt-clone = system clone + apt-get

so a command apt-get install apache2 is equivalent to

zfs clone beforeapache2 rootfs
#add grub lines to boot to ‘beforeapache2’
apt-get install apache2

Portas, estou contigo!!

Acabo de ler no Público um artigo a expôr a opinião do nosso, em tempos odiado Paulo Portas, no que toca a medidas para combater alguma da criminalidade em Portugal. Lê-se, e passo a citar:

O líder do CDS-PP defendeu hoje o julgamento imediato dos delitos em flagrante, a retirada do rendimento social de inserção a quem cometa crimes e o repatriamento de imigrantes que cometam actos ilícitos.

Sr. Portas, subcrevo completamente! E como eu, outros Portugueses o farão concerteza! Apelo a todos que de uma forma ou de outra, espalhem a opinião deste deputado sobre um assunto que há já muitos anos nos fustiga.

Obviamente isto é só parte do problema, mas já é um bom início! Pessoas que queiram trabalhar, ficam e são ajudadas. O resto, desapareçam daqui, seus parasitas!

Hudson – Continuous Integration made easy.. and free!

Some of you, developers, are acquainted with Continuous Integration, others do not, but one thing both have in common: the need of an easy mechanism to perform and monitor repetitive tasks in one or several projects. From building to testing, from keeping your project and dependencies versions right to logging the entire process, everything together is a task, an integration of from-development-to-deliver processes.

I didn’t know Continuous Integration itself, but everyday I have been dealing with something that resembles it. Man, it is a pain in the ass..

My employer made some colleagues of mine to use a tool – which name I can’t recall – but they keep complaining about it. So I wandered through the Web searching for something better. I found Hudson!

Hudson is a Java Web application very easy to “install”. All you have to do is to run java -jar hudson.war and there you go, point to http://localhost:8080 and you’ll have a very friendly management Web UI. Another way of running Hudson is through Java WebStart by running this file or installing it into a servlet container, like the one provided by Glassfish.

After you get it up and ready, you can start configuring you Hudson instance to match your development environment. For instance, let’s say you use:

  • Maven/Ant/Nant – build tool;
  • CVS/SVN/Git/Mercurial/Clearcase – SCM;
  • JUnit/NUnit/Test-NG – unit-testing;
  • Emma/Cobertura – code-coverage;
  • Many others including Checkstyle, IRCbot or Jabber build triggers, e-mail and IM notifications and even the ability to fire-up a VMWare virtual-machine, build your project and shut it down.

Well Hudson is able to do that and much more, just check out their plug-in list! My favourite is the JIRA plug-in but unfortunately I haven’t been able to find a Bazaar plug-in and be truthfully happy.

Also it supports distributed builds and tracking dependency and release binaries versions. Isn’t it amazing? Well JBoss guys think so!

Give it a try and give me your feedback 😉