Programming in the Cloud
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Programming in the Cloud

on

  • 1,621 views

 

Statistics

Views

Total Views
1,621
Views on SlideShare
1,620
Embed Views
1

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Programming in the Cloud Presentation 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 /