Cloud State of the Union for Java Developers

  • 2,667 views
Uploaded on

This presentation provides a broad overview of what is going on in the Cloud computing world - for Java developers - presented on Dec 21st 2010 at the Atlanta Java Users Group - ajug.org - no audio …

This presentation provides a broad overview of what is going on in the Cloud computing world - for Java developers - presented on Dec 21st 2010 at the Atlanta Java Users Group - ajug.org - no audio was recorded.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • The demos included:
    - Use of Spring Tool Suite with Google App Engine
    - a brief look at Visual Studio & Microsoft Azure
    - simple jclouds & typica demo, along with AWS Java SDK
    - Eclipse + JBoss Tools for DeltaCloud
    - Steamcannon (try.steamcannon.org) for JBoss PaaS running over EC2
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
2,667
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
36
Comments
1
Likes
3

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. Burr Sutter
    • Currently Product Manager of:
      • JBoss Tools (JBoss Developer Studio)
      • Seam – feed into EE6-CDI/Weld, JSF2, etc.
      • Snowdrop – JBoss Spring integration
      • Richfaces – JSF AJAX Controls
      • Arquillian – Integration Testing Framework
      • Forge – RAD Framework
    • Also working with:
      • SteamCannon – JBoss PaaS
      • TorqueBox - RoR on JBoss
      • BoxGrinder – Virtual image/appliance creator
  • 2. Outline
    • Historical Perspective
    • Key Players
    • Key Concepts – IaaS, PaaS, SaaS, images
    • Key Battles – API Turf War
    • Developers, Developers, Developers
    • Demos
  • 3. IaaS PaaS SaaS Virtualization Compute grid Self-Service Pay-as-you-go Data grid CLOUD in December 2010
  • 4. IT Evolution Mainframe Minis PC Client/Server Web 1U Blades Virtualization Cloud in a Box 80s 90s 00s 10s 70s Got Boat Ouch.
  • 5. Developer Evolution COBOL C/C++ CORBA 4GLs RDBMS/SQL Unix HTML CGI GET/POST Cookies Java Servlet EJB Windows Solaris/AIX MVC - Struts DI- Spring ORM- Hibernate XML WS-* JSF RIA-AJAX Agile Automated Testing CI DSLs SVN EE6 GWT Mobile iOS/Android Groovy/Grails Scala OpenSocial Widgets/Gadgets Maven Git ? 80s 90s 00s 10s 70s Got Boat Ouch.
  • 6. Yesterday
  • 7. 1990 InfoWorld archive on Google Books
  • 8. 1991 InfoWorld archive on Google Books
  • 9. InfoWorld archive on Google Books 1991
  • 10. Today Same Game Not the same players
  • 11.  
  • 12. Crossing the Chasm – Moore Where is your organization? Techies Geek on it Visionaries Competitive Advantage Pragmatists Stick with the Herd Conservatives Hold On Skeptics Only when forced http://en.wikipedia.org/wiki/Crossing_the_chasm
  • 13. Gartner Hype Cycle – Cloud Computing 2010
  • 14. What
  • 15. http://blog.mariaspinola.com/2009/08/what-exactly-is-cloud-computing.html
  • 16. PaaS - Primary Value Proposition
    • Zero time to business value by removing:
      • Hardware evaluation, acquisition and implementation
      • OS & Database evaluation, acquisition and implementation
      • Middleware evaluation, acquisition and implementation
      • System tools (e.g. monitoring) evaluation, acquisition and implementation
      • No configuring Apache, load-balancers, tweaking Linux packages
      • No SAs
      • No DBAs
      • Hard drives fail, hard drives fill-up, memory chips fail, the OS needs patches
      • Peak capacity planning (end of month, Christmas, etc)
      • Lower capex, lower staff costs, portable, scalable, reliable, on-demand
  • 17. Hybrid Cloud Private Cloud B Chicago Datacenter 1 Private Cloud A New York Datacenter 1 Public Cloud Provider 1 VM: OS, JVM, App Server .jar, .war, .ear
  • 18. Hybrid Cloud (Bursting) Private Cloud B Chicago Datacenter 1 Private Cloud A New York Datacenter 1 Public Cloud Provider 1 VM: OS, JVM, App Server .jar, .war, .ear
  • 19. Why
  • 20. Ten Years of Evolution Time: 6+ months 1999 Price Component 18,000 App Server HW 60,000 Weblogic 92,000 DB Server HW 243,000 Oracle 25,000 Symantec Café $438,000 + $ 87,600 annual maintenance Time: ~1 Day 2010
  • 21. Who is this for?
  • 22. People Factor
    • By 2014, cloud platform experience will be a priority skill in most IT hiring decisions (Gartner)
    • The rise of DevOps
      • Scheduling
      • Provisioning
      • Configuration Mgmt
      • Release Mgmt
      • Alerts/Event Mgmt
      • Orchestration
      • Performance
      • Log
      • Correlation
      • Goal: Fully Automated
    • http://dev2ops.org/blog/2010/2/22/what-is-devops.html
    Source: http://en.wikipedia.org/wiki/DevOps
  • 23. Point of View Developers Devops Build a new online inquiry UI – in 3 days Roll the new inquiry component into production - now Design/develop a AJAX-based B2C web application that targets smartphones and a real-time twitter feed. Design/develop a resilient infrastructure that will allow us to scale to 500 servers the moment the Super Bowl ad runs. Incorporate Agile principles that allow for changing functional requirements. Incorporate Agile principles that allow for changing non-functional requirements. Build a Web UI that inserts a record into a DB – in 1 day Launch a 10-node HA cluster that addresses DR - now
  • 24. Web Stack Evolution DB UI Web Browser HTML5 CSS3 JavaScript JSON ? Stored Procedures NoSQL Cloud-based Services and RDBMS HTML HTML + AJAX Struts JSF1+Richfaces3* or SpringMVC or GWT Stored Procedures SpringMVC or GWT or RESTful UI Engine 2002 2006 2012-13+ HTML + AJAX Struts Stored Procedures 2010 Mid-2011 HTML + AJAX JSF2+Richfaces4* or SpringMVC or GWT Stored Procedures Mobile + Cloud Impact? Bus Logic EJB2 Struts Action Spring + Hibernate Spring or Seam2 + Hibernate/JPA EJB 3.1 or Spring + Hibernate/JPA JAX-RS? + Hibernate & NoSQL * Or IceFaces/Primefaces
  • 25. Future Web - HTML5+REST HTML5+CSS3+jQuery/EXT JS ? DB JSON REST Websocket Cloud Service NoSQL
  • 26. Java Developers like Abstraction
    • Java Virtual Machine abstracts the OS
    • Java EE’s portable code & skills – servlet, JSP, JSTL, JSF, JMS, EJB, JPA, CDI, etc.
    • JDBC – database portability
    • Hibernate – schema portability
    • Web Services – services built in .NET
    • REST – resource-oriented services built in Python
    • Avoid Vendor Lock-in
    OS JVM DB JDBC Servlet, JSP, JPA Hibernate
  • 27. Demo 1
  • 28. Java APIs for the Cloud
    • JClouds – jclouds.org
      • http://code.google.com/p/jclouds/
    • JetS3t – focuses on Amazon S3 and CloudFront
      • http://jets3t.s3.amazonaws.com/toolkit/toolkit.html
    • Typica – focuses on Amazon – compliments JetS3t
      • http://code.google.com/p/typica/ Amazon API into Java
    • Siena – cloud db (SimpleDB, GAE’s DB) abstraction API
      • http://www.sienaproject.com
    • Dasein - http://dasein-cloud.sourceforge.net/
    • Cloudloop – focuses on cloud storage
    • AWS SDK for Java – from Amazon for Amazon
  • 29. Non-Java Cloud abstractions
    • libcloud – python - incubator.apache.org/libcloud/
    • Fog – ruby - github.com/geemus/fog
    • Deltacloud – RESTful Services – deltacloud.org
  • 30. jclouds
    • Key-value stores
    • Blob stores
    • Provisioning:
      • Compute
      • Storage
  • 31.
    • import siena.*; import static siena.Json.*; @Table(&quot;employees&quot;) public class Employee extends Model {                 @Id(Generator.AUTO_INCREMENT)         public Long id;                 @Column(&quot;first_name&quot;)         @Max(200) @NotNull         public String firstName;                 @Column(&quot;last_name&quot;)         @Max(200) @NotNull         public String lastName;                 @Column(&quot;contact_info&quot;)         public Json contactInfo;                 @Column(&quot;boss&quot;) @Index(&quot;boss_index&quot;)         public Employee boss;                 @Filter(&quot;boss&quot;)         public Query<Employee> employees;                 public static void main(String[] args) {                 Employee e = new Employee();                 e.firstName = &quot;John&quot;;                 e.lastName = &quot;Smith&quot;;                 e.contactInfo = map()                         .put(&quot;email&quot;, &quot;john.smith@example.com&quot;)                         .put(&quot;telephone&quot;, list(&quot;xxx&quot;, &quot;yyy&quot;));                 e.insert();                                 System.out.println(e.contactInfo);         }                 public static Query<Employee> all() {                 return Model.all(Employee.class);         } }
    Siena www.sienaproject.com Siena is a persistence API for Java inspired on the Google App Engine Python Datastore API Google App Engine DataStore Amazon SimpleDB
  • 32. DeltaCloud Basic Architecture Deltacloud Any Cloud Driver Amazon GoGrid OpenNebula Rackspace RHEV-M RimuHosting Eucalyptus * Terremark * vCloud * Deltacloud.org * coming soon Common REST API http://localhost/deltacloud only runs on Linux (as of Dec 2010) RoR-based
    • Buckets – create, destroy
    • Hardware Profiles – list
    • Images – list
    • Instance States – list
    • Instances – list, create, reboot, start, stop, destroy
    • Keys – create, destroy
    • Storage Volumes – create, destroy, attach, detach
    IaaS Abstraction Note: Not a broker – one installation to one cloud
  • 33.  
  • 34. Demo 2
  • 35. Picking a OSS Winner?
    • Number of recently active committers
    • Number of recent forum postings
    • jclouds has the strongest community
    • Daesin and Typica appear to be 1 person teams.
  • 36.  
  • 37.  
  • 38.  
  • 39.  
  • 40.  
  • 41.  
  • 42. JBoss and the Cloud
  • 43. Adding PaaS to Deltacloud Deltacloud Any Cloud Driver Amazon GoGrid OpenNebula Rackspace RHEV-M RimuHosting Eucalyptus * Terremark * vCloud * Deltacloud.org * coming soon Linux+JVM JBoss Cluster-Ready Cloud Provider Image (e.g. AMI)
    • Adds
    • Deploy .WAR
    • Deploy .EAR
    • Add Node
    • App Management
    • App Monitoring
  • 44. http://try.steamcannon.org
  • 45.  
  • 46.  
  • 47. Demo 3
  • 48. *aa S What’s your Service
  • 49. Big Public Cloud Providers IaaS PaaS
  • 50. Self Service Web UIs
    • Amazon AWS Console (Native)
    • Google App Engine Console (Native)
    • Azure Console (Native)
    • Cloud Foundry (for EC2 only, acquired by SpringSource)
    • SteamCannon (portable)
    • Makara (recently acquired by Red Hat)
    • Cloud Kick (recently acquired by Rackspace)
    • Stax Networks (recently acquired by CloudBees)
  • 51. Each Cloud Vendor
    • Servers/hardware profile
    • Images (virtual machines)
    • Instances (running virtual machines) - states
    • Buckets (blob storage)
    • Realms (us-east1)
    • Authentication
    • Many are REST, some Web Service (SOAP)
  • 52.  
  • 53. Amazon for Java Developers
    • Eclipse Tools
    • Tomcat on Linux
    • Gotcha: Local and remote Tomcat needs to match
  • 54. Cloud Services: Amazon
    • Simple Storage Service – S3
    • Relational Data Service – RDS
    • SimpleDB
    • Simple Queuing Service – SQS
    • Simple Notification Service – SNS
    • Elastic Map Reduce (Hadoop)
    • Mechanical Turk
    • Flexible Payments Service - FPS
  • 55.  
  • 56. Cloud Services: Google
    • Blobstore
    • Channel - server push to JS client
    • Datastore
    • Memcache
    • Mail
    • XMPP
    • Task Queues
    • Images
    • Google User Accounts
  • 57. Cloud Services: Microsoft
    • Blob Store
    • SQL Azure
    • Reporting
    • Service Bus
    • Cache
  • 58. Cloud Services: vmForce *
    • Reports
    • Easy integration with all your customer-related data (if you use Salesforce.com)
    • Social integration via Chatter
    • Security – Salesforce Users Accounts
    • Mobile support
    * Expected – as of Dec 21 st 2010 – not available to public
  • 59. Salesforce – Force.com
    • GUI-Driven Development
    • Apex programming language
    • Visualforce UI Framework
  • 60.  
  • 61. Google + Force.com try { SObject account = new SObject(); account.setType(&quot;Account&quot;); account.setField(&quot;Name&quot;, &quot;My New Account&quot; ); account.setField(&quot;Phone&quot;, &quot;123 244 3455&quot;); connection.create(new SObject[] { account }); } catch ( ConnectionException ce ) { log.warning(ce.getMessage()); } http://developer.force.com/appengine Call Salesforce Services from AppEngine
  • 62. Public Cloud Providers
    • Google – for student projects, departmental apps, not “Enterprise” – environment is unique and applications won’t move back “on-premise”. Q2 2011 (Hosted SQL)
    • vmForce – for Salesforce.com extensions – leverage the data & functionality of the CRM++ SaaS.
    • Amazon – for something more like what will be in your datacenter – bursting scenario
    • Azure – more Microsoft-centric
  • 63. Why give your datacenter to Amazon? slashdot
  • 64.
    • 5 Lessons We’ve Learned Using AWS
      • Dorothy, you’re not in Kansas anymore. If you’re used to designing and deploying applications in your own data centers, you need to be prepared to unlearn a lot of what you know. Seek to understand and embrace the differences operating in a cloud environment.
      • Co-tenancy is hard. Your best bet is to build your systems to expect and accommodate failure at any level, which introduces the next lesson
      • The best way to avoid failure is to fail constantly. Each system has to be able to succeed, no matter what, even all on its own.
      • Learn with real scale, not toy models Early in our production build out, we built a simple repeater and started copying full customer request traffic to our AWS systems. That is what really taught us where our bottlenecks were, and some design choices that had seemed wise on the white board turned out foolish at big scale.
      • Commit yourself. AWS is only a few years old, and building at a high scale within it is a pioneering enterprise today. There were some dark days as we struggled with the sheer size of the task we’d taken on, and some of the differences between how AWS operates vs. our own data centers.
    http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
  • 65. Agile Team in the Sky Offerings like: Hudson/Bamboo Maven Git/SVN Bugzilla/Jira Fisheye Develop Manage Monitor Scale