65
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

Cloud State of the Union for Java Developers

  • Upload
    red-hat

  • View
    2.755

  • Download
    1

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Cloud State of the Union for Java Developers

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

Page 2: Cloud State of the Union for Java Developers

Outline

• Historical Perspective• Key Players• Key Concepts – IaaS, PaaS, SaaS, images• Key Battles – API Turf War• Developers, Developers, Developers• Demos

Page 3: Cloud State of the Union for Java Developers

IaaS

PaaS

SaaS

Virtualization

Compute grid

Self-Service

Pay-as-you-go

Data grid

CLOUDin December 2010

Page 4: Cloud State of the Union for Java Developers

Mainframe Minis PCClient/Server

Web1U Blades

Virtualization Cloudin a Box

IT EvolutionGot Boat

Ouch.

80s 90s 00s 10s70s

Page 5: Cloud State of the Union for Java Developers

COBOL C/C++CORBA

4GLsRDBMS/SQL

Unix

HTMLCGI

GET/POSTCookies

JavaServlet

EJBWindows

Solaris/AIX

MVC - StrutsDI- Spring

ORM- HibernateXMLWS-*

JSFRIA-AJAX

AgileAutomated Testing

CIDSLsSVN

EE6GWT

MobileiOS/Android

Groovy/GrailsScala

OpenSocialWidgets/Gadgets

MavenGit

?

Developer EvolutionGot Boat

Ouch.

80s 90s 00s 10s70s

Page 6: Cloud State of the Union for Java Developers

Yesterday

Page 7: Cloud State of the Union for Java Developers

1990

InfoWorld archive on Google Books

Page 8: Cloud State of the Union for Java Developers

1991

InfoWorld archive on Google Books

Page 9: Cloud State of the Union for Java Developers

InfoWorld archive on Google Books

1991

Page 10: Cloud State of the Union for Java Developers

TodaySame Game

Not the same players

Page 11: Cloud State of the Union for Java Developers
Page 12: Cloud State of the Union for Java Developers

Crossing the Chasm – MooreWhere is your organization?

TechiesGeek on it

VisionariesCompetitiveAdvantage

PragmatistsStick with the Herd

ConservativesHold On

SkepticsOnly when forced

http://en.wikipedia.org/wiki/Crossing_the_chasm

Page 13: Cloud State of the Union for Java Developers

Gartner Hype Cycle – Cloud Computing 2010

Page 14: Cloud State of the Union for Java Developers

What

Page 15: Cloud State of the Union for Java Developers

http://blog.mariaspinola.com/2009/08/what-exactly-is-cloud-computing.html

Page 16: Cloud State of the Union for Java Developers

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

Page 17: Cloud State of the Union for Java Developers

Hybrid Cloud

Private Cloud BChicago Datacenter 1

Private Cloud ANew York Datacenter 1

Public Cloud Provider 1

VM: OS, JVM, App Server

.jar, .war, .ear

Page 18: Cloud State of the Union for Java Developers

Hybrid Cloud (Bursting)

Private Cloud BChicago Datacenter 1

Private Cloud ANew York Datacenter 1

Public Cloud Provider 1

VM: OS, JVM, App Server

.jar, .war, .ear

Page 19: Cloud State of the Union for Java Developers

Why

Page 20: Cloud State of the Union for Java Developers

Ten Years of Evolution

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: 6+ months

1999

Time: ~1 Day

2010

Page 21: Cloud State of the Union for Java Developers

Whois this for?

Page 22: Cloud State of the Union for Java Developers

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.htmlSource: http://en.wikipedia.org/wiki/DevOps

Page 23: Cloud State of the Union for Java Developers

Point of View

Developers Devops

Build a new online inquiryUI – in 3 days

Roll the new inquiry componentinto production - now

Design/develop a AJAX-basedB2C web application that targets smartphonesand a real-time twitter feed.

Design/develop a resilient infrastructurethat will allow us to scale to 500 serversthe moment the Super Bowl ad runs.

Incorporate Agile principlesthat allow for changing functional requirements.

Incorporate Agile principlesthat allow for changing non-functional requirements.

Build a Web UI that insertsa record into a DB – in 1 day

Launch a 10-node HA clusterthat addresses DR - now

Page 24: Cloud State of the Union for Java Developers

Web Stack Evolution

DB

UI

Web

Browser

HTML5CSS3

JavaScriptJSON

?

StoredProcedures

NoSQLCloud-based

Services

andRDBMS

HTMLHTML

+ AJAX

Struts

JSF1+Richfaces3*or

SpringMVCor

GWT

StoredProcedures

SpringMVCor

GWTor

RESTful UI Engine

2002 2006 2012-13+

HTML+ AJAX

Struts

StoredProcedures

2010 Mid-2011

HTML+ AJAX

JSF2+Richfaces4*or

SpringMVCor

GWT

StoredProcedures

Mobile +Cloud

Impact?

Bus Logic

EJB2

StrutsAction

Spring+

Hibernate

Spring or Seam2+

Hibernate/JPA

EJB 3.1 or Spring+

Hibernate/JPA

JAX-RS?+

Hibernate & NoSQL

* Or IceFaces/Primefaces

Page 25: Cloud State of the Union for Java Developers

Future Web - HTML5+REST

HTML5+CSS3+jQuery/EXT JS

?

DB

JSONREST

Websocket

Cloud Service

NoSQL

Page 26: Cloud State of the Union for Java Developers

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

OSJVM

DB

JDBCServlet, JSP, JPAHibernate

Page 27: Cloud State of the Union for Java Developers

Demo 1

Page 28: Cloud State of the Union for Java Developers

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

Page 29: Cloud State of the Union for Java Developers

Non-Java Cloud abstractions

• libcloud – python - incubator.apache.org/libcloud/

• Fog – ruby - github.com/geemus/fog• Deltacloud – RESTful Services – deltacloud.org

Page 30: Cloud State of the Union for Java Developers

jclouds

• Key-value stores• Blob stores• Provisioning:

– Compute– Storage

Page 31: Cloud State of the Union for Java Developers

import siena.*;import static siena.Json.*;

@Table("employees")public class Employee extends Model {                @Id(Generator.AUTO_INCREMENT)        public Long id;                @Column("first_name")        @Max(200) @NotNull        public String firstName;                @Column("last_name")        @Max(200) @NotNull        public String lastName;                @Column("contact_info")        public Json contactInfo;                @Column("boss") @Index("boss_index")        public Employee boss;                @Filter("boss")        public Query<Employee> employees;                public static void main(String[] args) {                Employee e = new Employee();                e.firstName = "John";                e.lastName = "Smith";                e.contactInfo = map()                        .put("email", "[email protected]")                        .put("telephone", list("xxx", "yyy"));                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 DataStoreAmazon SimpleDB

Page 32: Cloud State of the Union for Java Developers

DeltaCloud Basic Architecture

Deltacloud Any Cloud

Driver

AmazonGoGridOpenNebulaRackspaceRHEV-MRimuHostingEucalyptus *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

Page 33: Cloud State of the Union for Java Developers
Page 34: Cloud State of the Union for Java Developers

Demo 2

Page 35: Cloud State of the Union for Java Developers

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.

Page 36: Cloud State of the Union for Java Developers
Page 37: Cloud State of the Union for Java Developers
Page 38: Cloud State of the Union for Java Developers
Page 39: Cloud State of the Union for Java Developers
Page 40: Cloud State of the Union for Java Developers
Page 41: Cloud State of the Union for Java Developers
Page 42: Cloud State of the Union for Java Developers

JBossand the Cloud

Page 43: Cloud State of the Union for Java Developers

Adding PaaS to Deltacloud

Deltacloud Any Cloud

Driver

AmazonGoGridOpenNebulaRackspaceRHEV-MRimuHostingEucalyptus *Terremark *vCloud *

Deltacloud.org* coming soon

Linux+JVMJBoss

Cluster-ReadyCloud Provider Image (e.g. AMI)

Adds •Deploy .WAR•Deploy .EAR•Add Node•App Management•App Monitoring

Page 44: Cloud State of the Union for Java Developers

http://try.steamcannon.org

Page 45: Cloud State of the Union for Java Developers
Page 46: Cloud State of the Union for Java Developers
Page 47: Cloud State of the Union for Java Developers

Demo 3

Page 48: Cloud State of the Union for Java Developers

*aaSWhat’s your Service

Page 49: Cloud State of the Union for Java Developers

Big Public Cloud Providers

IaaS

PaaS

Page 50: Cloud State of the Union for Java Developers

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)

Page 51: Cloud State of the Union for Java Developers

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)

Page 52: Cloud State of the Union for Java Developers
Page 53: Cloud State of the Union for Java Developers

Amazon for Java Developers

• Eclipse Tools• Tomcat on Linux• Gotcha: Local

and remoteTomcatneeds to match

Page 54: Cloud State of the Union for Java Developers

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

Page 55: Cloud State of the Union for Java Developers
Page 56: Cloud State of the Union for Java Developers

Cloud Services: Google• Blobstore• Channel - server push to JS client• Datastore• Memcache• Mail• XMPP• Task Queues• Images• Google User Accounts

Page 57: Cloud State of the Union for Java Developers

Cloud Services: Microsoft

• Blob Store• SQL Azure• Reporting• Service Bus• Cache

Page 58: Cloud State of the Union for Java Developers

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 21st 2010 – not available to public

Page 59: Cloud State of the Union for Java Developers

Salesforce – Force.com

• GUI-Driven Development• Apex programming language• Visualforce UI Framework

Page 60: Cloud State of the Union for Java Developers
Page 61: Cloud State of the Union for Java Developers

Google + Force.com

try { SObject account = new SObject(); account.setType("Account"); account.setField("Name", "My New Account" ); account.setField("Phone", "123 244 3455"); connection.create(new SObject[] { account }); } catch ( ConnectionException ce ) { log.warning(ce.getMessage()); }

http://developer.force.com/appengine

Call Salesforce Services from AppEngine

Page 62: Cloud State of the Union for Java Developers

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

Page 63: Cloud State of the Union for Java Developers

Why give your datacenter to Amazon?

slashdot

Page 64: Cloud State of the Union for Java Developers

• 5 Lessons We’ve Learned Using AWS1. 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.

2. 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

3. 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.

4. Learn with real scale, not toy modelsEarly 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.

5. 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

Page 65: Cloud State of the Union for Java Developers

Agile Team in the SkyOfferings like:Hudson/BambooMavenGit/SVNBugzilla/JiraFisheye

Develop ManageMonitor

Scale