Programming in the Cloud Hendrik Schnepel 02/10/2011 at freiheit.com
What's in the cloud? <ul><li>Wikipedia: </li></ul>
No really, what's in the cloud? <ul><li>National Institute of Standards and Technology : </li></ul><ul><li>&quot;...a mode...
What's programming in the cloud? <ul><ul><li>Availability </li></ul></ul><ul><ul><li>Scalability </li></ul></ul><ul><ul><l...
Let's try to move the basic components of a web application project... into the cloud! <ul><ul><li>Repository </li></ul></...
GitHub provides public git repositories for free and great collaboration tools.  <ul><ul><li>Git repository, wiki, issue t...
Cloud9 IDE wants to be to Eclipse what Google Docs is to Microsoft Word. <ul><ul><li>Open source (so you may run your IDE ...
Node.js is based on Google's V8 engine and takes JavaScript to the server-side.  <ul><ul><li>Simple environment to execute...
Apache CouchDB is a distributed document-oriented database. <ul><ul><li>Store and retrieve JSON documents </li></ul></ul><...
Joyent provides dedicated Node.js hosting at www.no.de for free. <ul><ul><li>Nearly no HTML interface </li></ul></ul><ul><...
Bonus! Beaconpush makes real-time messaging on the web really easy. <ul><ul><li>Publish/Subscribe </li></ul></ul><ul><ul><...
shloudbox is our example application today, a shoutbox in the cloud. <ul><ul><li>Written in JavaScript (server- and client...
Think about how each component can be scaled independently.
Action! <ul><li>The typical development cycle: </li></ul><ul><ul><li>Start IDE </li></ul></ul><ul><ul><li>Open project </l...
Thank you! <ul><li>Hendrik Schnepel ( [email_address] ) </li></ul><ul><ul><li>Fork me on Github: https://www.github.com/ h...
Upcoming SlideShare
Loading in...5
×

Programming in the Cloud

1,370

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,370
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programming in the Cloud

  1. 1. Programming in the Cloud Hendrik Schnepel 02/10/2011 at freiheit.com
  2. 2. What's in the cloud? <ul><li>Wikipedia: </li></ul>
  3. 3. No really, what's in the cloud? <ul><li>National Institute of Standards and Technology : </li></ul><ul><li>&quot;...a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources.&quot; </li></ul>
  4. 4. What's programming in the cloud? <ul><ul><li>Availability </li></ul></ul><ul><ul><li>Scalability </li></ul></ul><ul><ul><li>Automatic backups </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>Specifically: </li></ul><ul><ul><li>Instant and  ubiquitous  development environment </li></ul></ul><ul><ul><li>Operating system independent </li></ul></ul><ul><ul><li>Low hardware requirements for development systems </li></ul></ul>
  5. 5. Let's try to move the basic components of a web application project... into the cloud! <ul><ul><li>Repository </li></ul></ul><ul><ul><li>Editor </li></ul></ul><ul><ul><li>Runtime environment </li></ul></ul><ul><ul><li>Persistence </li></ul></ul><ul><ul><li>Hosting </li></ul></ul><ul><li>...anything else? </li></ul>
  6. 6. GitHub provides public git repositories for free and great collaboration tools.  <ul><ul><li>Git repository, wiki, issue tracker, ... </li></ul></ul><ul><ul><li>Social network features, applied to open source development </li></ul></ul><ul><ul><li>Easy collaboration through forks and pull requests </li></ul></ul><ul><ul><li>Support for private repositories and organizations </li></ul></ul>
  7. 7. Cloud9 IDE wants to be to Eclipse what Google Docs is to Microsoft Word. <ul><ul><li>Open source (so you may run your IDE on localhost) </li></ul></ul><ul><ul><li>Integrates Github </li></ul></ul><ul><ul><li>Great editor for JavaScript </li></ul></ul><ul><ul><li>Run and debug on the server </li></ul></ul><ul><li>Problems with the hosted version: </li></ul><ul><ul><li>Early beta: availability issues, sometimes surprising bugs </li></ul></ul><ul><ul><li>No outbound traffic </li></ul></ul><ul><ul><li>No external dependencies, e.g. npm modules </li></ul></ul><ul><ul><li>Only one project per workspace(?) </li></ul></ul>
  8. 8. Node.js is based on Google's V8 engine and takes JavaScript to the server-side.  <ul><ul><li>Simple environment to execute JavaScript </li></ul></ul><ul><ul><li>Google V8 Engine </li></ul></ul><ul><ul><li>Single-threaded development model </li></ul></ul><ul><ul><li>API for evented filesystem and network I/O, HTTP, ... </li></ul></ul><ul><ul><li>Many external modules available, including web frameworks </li></ul></ul><ul><li>Example: </li></ul><ul><li>http.createServer( function( req, res ) { </li></ul><ul><li>   res.writeHead( 200, { &quot;Content-Type&quot;: &quot;text/plain&quot; } ); </li></ul><ul><li>   res.end( &quot;Hello Worldn&quot; ); </li></ul><ul><li>} ).listen( 80 ); </li></ul>
  9. 9. Apache CouchDB is a distributed document-oriented database. <ul><ul><li>Store and retrieve JSON documents </li></ul></ul><ul><ul><li>Incremental Map/Reduce (Data processing ...in the cloud!) </li></ul></ul><ul><ul><li>Again, JavaScript </li></ul></ul><ul><ul><li>REST API (Look Ma, no drivers!) </li></ul></ul><ul><ul><li>Push notifications on updates </li></ul></ul><ul><ul><li>500 MB and 500,000 requests for free at Cloudant </li></ul></ul>
  10. 10. Joyent provides dedicated Node.js hosting at www.no.de for free. <ul><ul><li>Nearly no HTML interface </li></ul></ul><ul><ul><li>SSH access (initial configuration and maintenance) </li></ul></ul><ul><ul><li>REST API </li></ul></ul><ul><ul><li>Deploy per git-push </li></ul></ul>
  11. 11. Bonus! Beaconpush makes real-time messaging on the web really easy. <ul><ul><li>Publish/Subscribe </li></ul></ul><ul><ul><li>Direct messages </li></ul></ul><ul><ul><li>Guaranteed delivery across page changes and reloads </li></ul></ul><ul><ul><li>Ready-made JavaScript client (provides WebSockets, Flash, Long-Polling, etc. across browsers) </li></ul></ul><ul><ul><li>REST API </li></ul></ul><ul><ul><li>Pay per message (not per channel, as on App Engine) </li></ul></ul><ul><ul><li>100,000 messages free </li></ul></ul><ul><ul><li>1,000,000 = 3.29 USD </li></ul></ul>
  12. 12. shloudbox is our example application today, a shoutbox in the cloud. <ul><ul><li>Written in JavaScript (server- and client-side) </li></ul></ul><ul><ul><li>Leverages several cloud-based services (hosting, persistence, real-time messaging, ...) </li></ul></ul><ul><ul><li>Back-end mashup </li></ul></ul>
  13. 13. Think about how each component can be scaled independently.
  14. 14. Action! <ul><li>The typical development cycle: </li></ul><ul><ul><li>Start IDE </li></ul></ul><ul><ul><li>Open project </li></ul></ul><ul><ul><li>Make changes </li></ul></ul><ul><ul><li>Test changes </li></ul></ul><ul><ul><li>Commit to repository </li></ul></ul><ul><ul><li>Deploy </li></ul></ul>
  15. 15. Thank you! <ul><li>Hendrik Schnepel ( [email_address] ) </li></ul><ul><ul><li>Fork me on Github: https://www.github.com/ hsch </li></ul></ul><ul><ul><li>Follow me on Twitter: http://twitter.com/ heshist </li></ul></ul><ul><li>Resources: </li></ul><ul><ul><li>Repository: https://www. github.com / </li></ul></ul><ul><ul><li>IDE: http://www. cloud9ide.com / </li></ul></ul><ul><ul><li>Runtime environment: http://www. nodejs.org / </li></ul></ul><ul><ul><li>Persistence: http://www. cloudant.com / </li></ul></ul><ul><ul><li>Hosting: http:// no.de / </li></ul></ul><ul><ul><li>Real-time messaging: http:// beaconpush.com / </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×