Hi.
I am wondering the same of @Marcelo. In fact, I am wondering the archtecture difference from Openruko. Looking at Tsuru code and Openruko archtecture at
http://www.slideshare.net/slideshow/embed_code/18758349?rel=0&startSlide=57, I can say that: (please correct me if needed)
- Tsuru is mainly Go. Openruko is mainly Node.js
- Tsuru uses Juju or Docker. Openruko uses low-level LXC
- Tsuru usas Gandalf to "receive the push". Openruko uses Gitmouth
- Tsuru uses Hipache to route the crowd. Openruko uses Httprouting
- Tsuru uses docker or docker-related stuff. Openruko uses LXC or LXC-related stuff.
- Tsuru uses tst, tsuru-collector and tsuru-api to "manage" the stuff. Openruko uses heroku-cli, rukorun and apiserver.
What I see as positive on Tsuru:
- Hipache is considered better, even from Openruko people, that now aims to adopt Hipache
- I could expect docker-related stuff to be better supported than LXC-related stuff
- Tsuru have Globo.com sponsoring. Its a huge plus IMHO
- Aims to be a flexible PaaS
- Have a try-before-you-buy website (
try.tsuru.io)
What I see as positive on Openruko:
- Have an archtecture diagram (!!!)
- Aims to be a Heroku copycat PaaS. Yet CLI-compatible!
- Bigger community (at least making more noise ;)
- Have a vagrant machine AND instructions about how to use it
Juju and Docker vs just LXC can be a good or bad thing, as Tsuru needs to support 2 technologies instead of one, both Juju and Docker are well maintained by 3rd party. So lets take this as neutral.
Do you agree? Is there some important topic that I missed??
Then I started asking myself, and now asking you:
1) Why Go ??
Lets assume that is easier to code Python or Ruby than Go. I see a need for massive usage of coroutines on Gandalf, on tsuru-api and on Hipache, but not on tsr or tsuru-collector. Lets say that Go excels on this task AND Python+Gevent is not a more maintenable and equally good option. People on Openruko is considering to replace Gitmouth for Gogit, and this maybe makes me sense, but why tsr and tsuru-collector uses Go too?
2) Why not to fork Openruko?
(Disclaimer: I am a Python fanboy)
Still as a Python fanboy, I am thinking why is better to start over instead of forking Openruko and then replacing the parts that I dont like there. Maybe I am asking this because I have no historical background of both projects, and no archtecture schema of Tsuru, but I still keep asking myself this one.
Please dont take me wrong. I liked Tsuru a lot, and want so much the value that this delivers. From a long time. Just wanting to understand the design/community decisions to help better.
Cheers,
Alan.