Your SlideShare is downloading. ×
Programming in the Cloud
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Programming in the Cloud

1,354
views

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,354
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×