
Tsuru - open source platform as a service (written in Go) - goodwink
http://globocom.github.com/tsuru/
======
uniclaude
This is a good occasion to read the source code of a non-trivial piece of Go
code. The documentation of the project seems rather sparse, but at least, the
app has readable tests.

That said, if you are looking for an open-source platform as a service,
OpenShift, or as others mentioned, CloudFoundry are more mature options.

~~~
scottmp10
I had the same impression. I have been working on a very early prototype of
something very similar to this and was curious the know the general
architecture of the system but there doesn't seem to be any documentation
covering that.

I wish that more of these projects were more general like Mesos as opposed to
just replicating a service across machines.

~~~
fss
When using the work-in-progress lxc provisioner, tsuru will behave like Mesos,
but it's no that stable yet. First we worked on getting it working with EC2
instances, and now we are working on lxc and frontend integration.

~~~
shykes
Hey guys, want to collaborate with <http://docker.io> on the lxc provisionner?
There are a bunch of "heroku-in-box" building on top of it already.

~~~
andrewsmedina
Hi, I'm andrewsmedina on github. I want to help. When docker will be
opensourced?

~~~
fss
Today :P

------
StavrosK
Can someone explain how this (or other tools like this?) work? How do they
install services, ensure they start up, handle upgrades, etc? I am utterly
confused by all these PaaSaaS apps.

~~~
tombh
I think the basic concept to understand is that of the 'dyno'. Although a term
from the Heroku platform, I believe it applies to most of the other platforms
too. A dyno is a container (sort of like a VM but without hardware
virtualisation, see LXC or OpenVZ) that isolates system resources. You can
have multiple dynos on any given server and you can have lots of servers. Each
dyno contains the entire environment needed by any given app, so it'll contain
the specific binary version of ruby or node for example and it'll also have
unique copies of all the dependencies, managed via bundler or npm for example.

Scaling your app simply means having more running dynos that are load balanced
by a centralised load balancer used across the entire platform. So yes,
interestingly there is a lot of duplication of the code base.

Services, like databases, are managed on their own separate servers/clusters
and allow multiple connections and can be scaled/sharded separately from the
dyno farms. Therefore they can be monitored, maintained, upgraded, etc,
separately as well.

I'm a small-time contributor to <http://github.com/openruko>, an opensource
Heroku clone.

~~~
StavrosK
Oh, that makes sense, thanks. I was under the impression this managed
everything (including DBs and other services), so I was wondering how this was
possible.

I guess this ties in with another post I saw the other day, which was a
lightweight container format you could add your environment to and deploy (and
sounds like a game-changing idea). If we have a functional, standardized,
self-contained container format that provides reasonable security and that you
can install an environment to and just deploy to a server, it would pretty
much mean that you can pick your app up and copy it to another host and be
running in five minutes.

~~~
shykes
That is correct :) Are you thinking of the post about <http://docker.io>? If
so, I concur: Tsuru + Docker seem like they would be an awesome match.

~~~
StavrosK
Yep, that's the one! Man, I'm so excited about docker, even if I have to
deploy it manually.

------
rjsamson
This is really interesting. It appears to be a lot easier to get started with
than CloudFoundry, but it is difficult to tell at this point how well it
compares. Very cool none-the-less!

------
gnuvince
Confused me with Tsuru Capital [1][2], a trading company that uses Haskell as
their main programming language.

[1] <http://www.tsurucapital.com/en/jobs.html> [2]
[http://tomschrijvers.blogspot.ca/2012/12/haskell-tsuru-
capit...](http://tomschrijvers.blogspot.ca/2012/12/haskell-tsuru-capital.html)

------
wheaties
I don't get it. I'd understand more if there was a service being sold or if
they said you could use it to set up your own. Can anyone from the project
explain the what, why, and where of it all?

~~~
goodwink
You can use it to set up your own, see <http://docs.tsuru.io/en/latest/>

EDIT: I'm not from the project, I just found it interesting and posted
it...there probably isn't anyone from the project watching this thread.

~~~
flaviamissi
We're here! Preparing responses ;)

We have also created some docs issues[1][2] on our repository based on some
questions posted here.

[1] <https://github.com/globocom/tsuru/issues/367> [2]
<https://github.com/globocom/tsuru/issues/366>

------
knodi
Loving all this Go news lately.

------
kapilvt
Based on juju, so i assume you can use all the various charms that juju allows
for.. <http://jujucharms.com/charms/precise>

~~~
flaviamissi
You can, but in order to deploy applications you should use our own charms,
it's explained in our chams repository[1].

Tsuru is based on Provisioners, our default provisioner is juju, we also have
a on going development of a lxc provisioner[2].

You can also build your own provisioner (docs coming).

[1] <http://github.com/globocom/charms> [2]
<https://tsuru.readthedocs.org/en/latest/lxc.html>

------
robotmay
I always like seeing people use beanstalkd. It's a great bit of software which
seems to have been largely overshadowed by redis these days, which is a shame.

------
Xanza
I'd be interested in seeing an automatic deploy script for this service to
teraform a new dedicated server instance.

~~~
fss
This is on tsuru's roadmap. We want to make it easier to install and manage.
Thanks!

------
Lexarius
In Japanese, "tsuru" can refer to a type of crane, which is likely related to
the origami crane on the page.

Depending on the kanji, it might also be a few different verbs:

吊る: to hang; to suspend (something from something); to be hanged (by the neck)

釣る: to fish; to angle; to catch;

攣る: to cramp; to be cramped; to contract

------
yarapavan
Another interesting project, Appscale (<https://github.com/AppScale>) from
UCSB, is a GoogleAppEngine PaaS clone

------
Ziomislaw
why does every such service forces you to use git?

git is not a deploy tool!!

~~~
fss
git works as a deployment tool, but not in all cases. It's useful to deploy
code, but when writing Java or Go, you usually don't deploy the code, you
deploy compiled binaries. Currently, tsuru forces you to deploy your code (you
can create a git repository versioning the binaries, and do some local magic
to compile your source, put it in the repository and push it - like creating a
"deploy" target in your Makefile, but that's an ugly workaround).

In the future, tsuru will probably support other ways of deployment.

------
moondowner
How does this compare to CloudFoundry or OpenShift? I guess they all try to
solve the same problem, but I'm really interested..

------
roma1n
Will that include addons, for instance a mobile backend-as-a-service, Parse
style?

~~~
fss
Yes, tsuru calls that services. They're behind an API. Enabling the deployment
of services without API's is already in our roadmap, but we don't know when we
will get it done.

------
jstanley
Is this a parody?

What actual platform is it?

~~~
SingAlong
It looks like an alternative to Heroku and VMware's CloudFoundry
(<http://www.cloudfoundry.org>, which is also opensource)

I just checked the docs - <http://docs.tsuru.io> and the git repo -
<https://github.com/globocom/tsuru>

Would have been nice to see screenshots of the command line tool. Would have
made things simpler for commoners.

~~~
ansible
I'd also like to see at least some kind of quick explanation of why this is
being created. How does it differ than CloudFoundry, for example? What issues
does it try to solve that don't work well with the existing platforms? Just a
few minutes to explain the "why" question, and I might actually want to sit
down and read through the installation documentation.

~~~
goodwink
I hope that the "why" is that it's much simpler to use on a small scale. What
I'd really like is a standardized engine to deploy apps of many flavors on
rather than having to create new chef scripts to deploy everything I write.

I essentially want something that works like heroku as far as ease of use for
deployment/scaling, accommodates many different application types, and is easy
for me to spin up in a 2-4 node cluster on my own VPSes. Every time I have a
new app to deploy I just push it to the cluster and I'm done, adding
additional VPSes as it starts to get full. I'm hoping this is such a thing,
but I haven't tried it just yet, so I can't say for sure.

CloudFoundry, OpenShift, etc. seem pretty heavyweight and more meant for
service providers or large corporate private clouds. If they can be used like
I describe too could anyone provide some links to docs/blogs about it? I
haven't found it so far.

~~~
fss
The original motivation wasn't exactly that, but we changed it. At the first
moment, we started an open source platform as a service based on Globo.com
needs. That's why tsuru first supported EC2 instances. But that's pretty
expensive: having 10 virtual machines for an app is not cheap, and does not
fit in most company's budgets.

That's why we started implementing support for application containers, and we
need to work on documentation and facilitate the life of people willing to
deploy tsuru.

Thank you for your feedback!

------
Buzaga
Globo is the media monopolist of Brazil, in case you don't know...

it runs most major print and music publishers, dominates the TV space and, for
good or bad, is picking the best technologists in Brazil and dominating news,
sports and some vanity entertainment of the web here.

While other corps are slacking they're doubling down on hiring the Agile,
Ruby, Python, Go and etc guys most `traditional` techie companies here ignore
and are probably making the other players eat dust in doing so..

~~~
oscargrouch
Why the hate? at least they are doing something..

They are hiring people and allowing them to share their work in the opensource
space, whats bad about it?

PS: i'm a Brazillian too

~~~
Buzaga
I don't think I was hateful, I actually gave them credit on the tech culture
it's building..

Some of the comments were from people who didn't understand where this was
coming from, if it was legit or not.. Obviously, people don't pick Open Source
PAAS without getting a bit of context and that was what the comment was about.

------
JeremyMorgan
A pile of buzzwords, a funny sounding name that's fun to say, and "written in
go" to get some HN love.

Yawn. Wake me up when they do something Heroku/CloudFoundry/Appfog/Ironfoundry
etc aren't doing.

~~~
compellavi
Why people downvote a comment just because it express criticism. While not
very gentle, it was neither off-topic or irrelevant and it was a perfectly
valid opinion.

~~~
kryptiskt
The criticism is skin-deep and isn't expressing any insight into the project,
the "yawn" is a trite way of showing contempt.

All in all, a shitty comment, if I could downvote it two times I would.

------
zpassenger
This is just awesome. This is what the web needed. Globo.com will be the next
Google, keep an eye on it.

~~~
lukeholder
spam.

