Slide 1

Slide 1 text

Open Source as A Service ICT Days Trento – 21/03/2013

Slide 2

Slide 2 text

Who Am I @yawnt github.com/yawnt [email protected] I do code. I’m a developer from Vicenza (Italy) who also loves snowboarding and traveling.

Slide 3

Slide 3 text

So how does a PAAS actually work?

Slide 4

Slide 4 text

CASE STUDY

Slide 5

Slide 5 text

What Nodejitsu is  it’s a PAAS (acronym that stands for Platform as a Service)  PAAS (together with IAAS and SAAS) is a type of service model in the cloud computing industry  we make deploying and scaling web applications a breeze  the end customer doesn’t have to worry about hardware management and hosting configuration

Slide 6

Slide 6 text

What’s so special about it?  it’s the first platform entirely built on and for node.js  pretty much everything that composes it is open source on Github  highly community-focused (we love going to and sponsoring confs)  multiple clouds (Rackspace, Joyent, Azure, ..)

Slide 7

Slide 7 text

OSS @ Nodejitsu How it began

Slide 8

Slide 8 text

The early phases the technology wasn’t production ready, first year was spent evangelizing node to make sure it became more used and mature.  Nodejitsu is founded  $ node –v v0.2.0 2010 2011 2012/13

Slide 9

Slide 9 text

Private Beta  Nodejitsu is founded  $ node –v v0.2.0 2010 2011 2012/13  private beta  $ node –v v0.4.0 all the libraries were opensourced, distributed and maintained in order to make node more appealing to coders “we first built the ecosystem and then the business” @anoemi

Slide 10

Slide 10 text

Public beta and Individual Plans  public beta / paid plans  $ node –v v0.6.0-v0.8.0  Nodejitsu is founded  $ node –v v0.2.0 2010 2011 2012/13  private beta  $ node –v v0.4.0 other libraries were opensourced (pkgcloud and winstond amongst them) and Continuos Deployment with Github integration was added. Nodejitsu now hosts open source projects for free (https://opensource.jit.su)

Slide 11

Slide 11 text

OSS @ Nodejitsu Meet the family

Slide 12

Slide 12 text

Flatiron  32 repositories  full-stack Node.js web framework  collection of decoupled tools  promotes development separation and code organization github.com/flatiron

Slide 13

Slide 13 text

Nodejitsu  29 repositories  mostly system-oriented  abstraction over different providers (pkgcloud)  definition of protocols on the top of TCP (nssocket) github.com/nodejitsu

Slide 14

Slide 14 text

Node Apps  6 repositories  targeting beginners  examples of different apps targeting specific node.js features  great for learning github.com/nodeapps

Slide 15

Slide 15 text

Node Docs  66 repositories  general purpose documentation on node.js  submit your article with a pull request  full of neat tricks github.com/nodedocs

Slide 16

Slide 16 text

OSS @ Nodejitsu The Stack

Slide 17

Slide 17 text

A wild drone appears! App Think of a small VPS with some bundled tools that help you keep your application online and continuously monitor it Haibu Forever

Slide 18

Slide 18 text

Haibu  allows you to spawn and manage several node.js apps on a single server  wraps processes in a «carapace»  carapace allows Haibu to extend applications  carapace supports a plugin architecture enabling maximum flexibility github.com/nodejitsu/haibu Install it $ [sudo] npm install –g haibu

Slide 19

Slide 19 text

Forever  ensures that a script runs continuosly  supports log files  can be used with non-js scripts  if you plan to use it programmatically, forever- monitor is available github.com/nodejitsu/forever Install it $ [sudo] npm install –g forever

Slide 20

Slide 20 text

How it fits together Proxy + Load Balancer App App App • http • websockets

Slide 21

Slide 21 text

Http-Proxy  supports websockets  SNI compatible  low latency and minimal overhead  easy to use API, can work as a middleware github.com/nodejitsu/node-http-proxy Install it $ [sudo] npm install –g http-proxy

Slide 22

Slide 22 text

An example var http = require('http'), proxy = require('http-proxy'); var proxy = proxy.createServer(8000, '127.0.0.1'); proxy.listen(9000); var server = http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end("Hello ICT Days"); }); server.listen(8000);

Slide 23

Slide 23 text

What about deployment? Master API jitsu webhooks webops Deps Builder OMGSTART App Services Rest API

Slide 24

Slide 24 text

Jitsu  full Nodejitsu API support  ships with example node.js applications  integration with npm  multi-transport based logging system github.com/nodejitsu/jitsu Install it $ [sudo] npm install –g jitsu

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

That’s all folks! If you have questions feel free to ask now or catch me later.. also i have some Nodejitsu stickers in case you want one :D also.. Q&A!