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

Programming in the Cloud

on

  • 1,580 views

 

Statistics

Views

Total Views
1,580
Views on SlideShare
1,579
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 Programming in the Cloud Presentation Transcript

    • Programming in the Cloud Hendrik Schnepel 02/10/2011 at freiheit.com
    • What's in the cloud?
      • Wikipedia:
    • 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."
    • 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
    • Let's try to move the basic components of a web application project... into the cloud!
        • Repository
        • Editor
        • Runtime environment
        • Persistence
        • Hosting
      • ...anything else?
    • 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
    • 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(?)
    • 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 );
    • 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
    • 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
    • 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
    • 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
    • Think about how each component can be scaled independently.
    • Action!
      • The typical development cycle:
        • Start IDE
        • Open project
        • Make changes
        • Test changes
        • Commit to repository
        • Deploy
    • 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 /