SlideShare a Scribd company logo
1 of 33
Cloud Platforms for Java
WHAT I’LL LOOK AT?
• What needs to be managed
• How deployment works
• What services are available

• Pluses and minuses (as perceived by me)

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

2
GOOGLE APP ENGINE - OVERVIEW
• Truly a platform
• You don’t manage machines
• You just upload the binaries and GAE runs them
• Large variety of services:
• JDO & JPA interfaces to data, MySQL in the cloud,
• Memcache, GAE datastore
• URL fetch API, Java Mail API
• Images service – generate/process images
• Oauth (experimental), Google accounts
• Cron jobs

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

3
GOOGLE APP ENGINE - TOOLING
• GAE SDK
• Maven and ant build supported
• Local app engine development server
• Command line tool for interaction with an app
• IDE Support
• Best supported is Eclipse
• NetBeans plugin
• IntelliJ Idea – support built into the ultimate edition

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

4
GOOGLE APP ENGINE - RUN
• Test/debug: hit run/debug in Eclipse
• Console output says where the app runs locally
• Run local outside IDE – command line:

• dev_appserver.sh helloworld.jar
• Upload and run in the cloud:
• appcfg.sh update helloworld.jar

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

5
GOOGLE APP ENGINE - MINUSES
• No direct filesystem access

• No direct socket access
• Must be quick (but there are backends)
• request handling must finish within seconds, or it gets you
killed

• No signed jars
• There's a jre class whitelist
• Use of any jre class not in the list gets you killed

• Not really service-oriented
• No REST/SOAP APIs, or at least not published as such
• You inherit and use factories a lot

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

6
GOOGLE APP ENGINE - PLUSES
• Indexing of the datastore, much nicer than a plain file system
• Auto-generated but can be hand-tuned

• Built-in logging
• Logs can be downloaded
• Routing by domain header in request
• One app can serve multiple domains

• Backends = special apps
• 60 seconds cap per request, more mem & CPU
• Created/destroyed on demand
• Many services = APIs available in-app
• App identity, logs, images, oauth, search, URL fetch, Java mail, many others
• Many are experimental and evolving

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

7
GOOGLE APP ENGINE – HELLO WORLD
// from the SDK demos – no difference to tomcat package
org.example;
import java.io.IOException;
import javax.servlet.http.*;
public class HelloAppEngineServlet extends
HttpServlet {
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

8
GOOGLE APP ENGINE - BACKENDS
<!-- from the demos – backends.xml -->
<!-- putting a backends.xml in WEB-INF starts your app as a backend -->
<backends>
<backend name="small">
<class>B1</class>
<options>
<public>true</public>
</options>
</backend>
<backend name="medium">
<class>B2</class>
<instances>3</instances>
<options>
<fail-fast>true</fail-fast>
</options>
</backend>
<backend name="big">
<class>B4</class>
<options>
<dynamic>true</dynamic>
</options>
</backend>
</backends>

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

9
GOOGLE APP ENGINE – DATASTORE
• Datastore is hierarchies of typed entities
/Person:grandpa / Person:dad / Person:son
• When creating an entity, you can specify a kind, a key and
an ancestor
• Entities can have additional properties – indexed &
unindexed
• Can query by keys, ancestors or indexed props

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

10
GOOGLE APP ENGINE - DATASTORE
Entity entity = new Entity("entityType");
entity.setProperty("mykey", mykey);
entity.setUnindexedProperty("value", value);
datastore = DatastoreServiceFactory.getDatastoreService();
Key key = datastore.put(entity);
Query query = new Query("entityType");
PreparedQuery prepared = datastore.prepare(query)
List<Entity> entities =
prepared.asList(FetchOptions.Builder.withLimit(100));
Entity retrieved = datastore.get(key);
datastore.delete(retrieved);

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

11
AMAZON WEB SERVICES - OVERVIEW
• Most renowned service is EC – Elastic cloud

• The Java app platform is actually Elastic Beanstalk
• Servlet-based, like GAE
• More languages supported than GAE

• Big bonus: services are not coupled to other services, like
for GAE

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

12
AMAZON WEB SERVICES - TOOLING
• SDK
• Bunch of libs, no binaries to run locally
• Simple and easy to set up projects with maven or ant

• Eclipse plugin
• One-click deploy
• Netbeans built-in support
• From v7.2 onwards
• IntelliJ Idea
• Extensive support for managing AWS services

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

13
AMAZON WEB SERVICES - RUN
• No local dev server
• None needed, because you can debug locally, sincer
AWS services are callable from anywhere, not just
apps running on Beanstalk or EC2
• Beanstalk server is tomcat
• One click publishing of apps in Eclipse
• From the AWS console
• Just upload the war file

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

14
AMAZON WEB SERVICES - PLUSES
• Full control
• Full Java platform
• Although no JEE, you can install your own on EC2, but
than you don't use beanstalk anymore
• Easier migration into the cloud
• Gobs of services, truly service oriented

• S3 more like a local file system
• Anything you like via EC2 instances
• Big plus: asymmetric key crypto for access control

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

15
AMAZON WEB SERVICES - MINUSES
• Not many, no really bad things

• Default project in Eclipse is uses jsp instead of a servlet
• Deployment to tomcat only
• Amazon's initial offering (EC2) shows through
• Every app instance is started as a new EC2 instance
• Monitoring happens at the machine level
• Only infrastructure scalability is addressed
• there aren't built-in, Beanstalk-prov

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

16
AMAZON WEB SERVICES – S3
// files are kept in buckets
AmazonS3 s3 = new AmazonS3Client(
new new BasicAWSCredentials(
"key", "secret"));
s3.createBucket(“myBucket”);
s3.putObject(
new PutObjectRequest(
“myBucket”, “fileName”, someFile));
S3Object object = s3.getObject(
new GetObjectRequest(“myBucket”, “fileName”));
s3.deleteObject(“myBucket”, “fileName”);

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

17
HEROKU - OVERVIEW
• Runs on Amazon EC2
• a PaaS on top of IaaS from another provider
• Dynos and slugs
• Dynos are sort of a VM, but based on cgroups
• Slugs are your apps packaged for a dyno
• Many languages, in its latest incarnation:
• Ruby, Java, Python, Scala, JavaScript, Clojure
• Thought to be extremely beginner-friendly

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

18
HEROKU - TOOLING
• Provides a toolbelt
• On Ubuntu:
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
• Toolbelt contents:
• Local app runner – not local server
• CLI for uploading and updating apps
• GIT interface -commit to git updates your running app
• Easy start with Java
• Tons of samples on github.com/heroku
• Sources of part of heroku itself also on github

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

19
HEROKU - RUN
• Toolbelt allows you to run profiles locally
• No specific one-click run in Eclipse
• You develop & deploy normal Java apps
• => no need for extra test/debug fixtures

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

20
HEROKU – PLUSES & MINUSES
• Heroku is different, that's all.
• Dynos ~ like micro-/lightweight Vms
• Better: no DNS/routing/security setup
• Worse: a single open port => remote debugging sucks
(but is possible w. special mechanisms)
• No prepackaged app server in dynos
• Must deploy your own runner with the app
• Heroku's git repo provides runners (Jetty, tomcat7)

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

21
HEROKU – PLUSES & MINUSES
• Git push updates the app
• No intermediate on-platform tests possible
• You can always use dev/test/prod branches

• No dynamic scaling
• But there are 3rd party services for this
• Rich services environment
• Really really really really rich – several dozen
• Message
queues, storage, monitoring, cron, memcache, mail, lo
g & analysis, you name it
• Debugging with add-on services locally is not ideal

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

22
HEROKU – POSTGRES ACCESS
// use heroku-provided tools to provision databases
URI dbUri = new URI(System.getenv("DATABASE_URL"));
String username = dbUri.getUserInfo().split(":")[0];
String password = dbUri.getUserInfo().split(":")[1];
String dbUrl = "jdbc:postgresql://" + dbUri.getHost() +
':' + dbUri.getPort() + "/" + dbUri.getPort();
Connection connection =
DriverManager.getConnection(dbUrl, username, password);
Statement stmt = connection.createStatement();
stmt.executeUpdate("DROP TABLE IF EXISTS ticks");
stmt.executeUpdate("CREATE TABLE ticks (tick timestamp)");
stmt.executeUpdate("INSERT INTO ticks VALUES (now())");
ResultSet rs =
stmt.executeQuery("SELECT tick FROM ticks");
while (rs.next()) {
System.out.println("Tick: " +rs.getTimestamp("tick"));
}

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

23
HEROKU – MONGODB ACCESS
// use heroku-provisioned tools to set up
// MongoDB for your app
MongoURI mongoURI =
new MongoURI(System.getenv("MONGOHQ_URL"));
DB db = mongoURI.connectDB();
db.authenticate(
mongoURI.getUsername(),
mongoURI.getPassword());
Set<String> colls = db.getCollectionNames();
System.out.println("Collections: " + colls.toString());

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

24
WINDOWS AZURE - OVERVIEW
I know, I'm surprised too.
But don't get too excited.
• There's a download available for Linux
• Also a maven dependency
• And an Eclipse plugin
• It doesn't install on Linux
• There's a CLI tool for Linux – using node

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

25
WINDOWS AZURE – GOOD AND BAD
• VM-based
• both Linux and Windows VMS are available
• Small selection of add-ons
• storage, some media
services, CDN, mail, authentication, message queuing
• Some more exotic services
• Phone and address validation – worldwide
• SMS, outgoing voice calls
• You have to download, install and configure your own app
server for Java-based web apps!

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

26
OPENSTACK - OVERVIEW
• A first attempt at standardization
• Nothing Java-specific here, no wrapper libs included
• Primitive, compared to commercial offerings
• The only standard service is storage
• Storage is much like Amazon's S3 buckets
• Fully RESTful APIs
• API is standardized, but only for infrastructure-related operations
(server creation, resource provisioning, reboot/re-image etc.)
• OpenStack-based providers differentiate themselves via addon
services
• a few well-known names: HP, IBM, Canonical, Rackspace

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

27
CLOUDBEES - OVERVIEW
• Really great, but not so well known
• Standards-based, i.e. no jre restrictions a la GAE
• Deploys to standards-based app servers
(tomcat, jboss)
• Rich integrated dev resources & services
• built-in maven, svn, git repos
• Sonar, Jenkins, SVN, GIT, Selenium in the cloud – all
integrated
• Rich autoscaling config built in

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

28
CLOUDBEES-RUN
• One click run
• Both local and deploy to the cloud
• Does not really care what your app uses or does
• CLI interface with the SDK
• Interact with deployed apps
• Maven plugin
• goals for deploying to jenkins, to prod, or run locally

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

29
CLOUDBEES - TOOLING
• Mainstream IDEs are supported
• Eclipse, Netbeans, IntelliJ Idea
• SDK

• Many services/add-ons available
• Relational and NoSQL databases
• Message queues, search & indexing, log analysis
• Private maven repo, wiki, Even an online IDE
• Add-ons provided by other cloud users

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

30
JELASTIC - OVERVIEW
• Very friendly console in browser
• Point & click interface for deployments
• Very simple
• Not much there except create environments and
• upload wars
• No IDE plugins or local SDKs
• Not many services
• Nosql & relational databases
• Virtual edicated servers

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

31
JELASTIC – PLUSES AND MINUSES
• Feels like the VisualBasic of Java PaaS
• Very few things to configure
• Tomcat 6/7, Java 6/7, jetty, glassfish
• No plain Java apps, no distinction between frontends
and workers, no restrictions
• Provides automatic scaling

• Has data centers all over the civilized world +
• Russia
• Via partners

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

32
CONCLUSIONS
• No standards yet

• Emerging standards are rudimentary
• OpenStack only has storage API specified
• All platforms have significant shortcomings
• Some platforms are not very service-oriented
• Except AWS

© Copyright 2014. 3Pillar | All rights reserved Strictly Confidential

33

More Related Content

What's hot

DOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBsDOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBs
Gene Kim
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Thoughtworks
 

What's hot (20)

Rohit Jainendra - Electric Cloud - Enabling DevOps Adoption with Electric Cloud
Rohit Jainendra - Electric Cloud - Enabling DevOps Adoption with Electric CloudRohit Jainendra - Electric Cloud - Enabling DevOps Adoption with Electric Cloud
Rohit Jainendra - Electric Cloud - Enabling DevOps Adoption with Electric Cloud
 
Sam Fell - Electric Cloud - Faster Continuous Integration with ElectricAccele...
Sam Fell - Electric Cloud - Faster Continuous Integration with ElectricAccele...Sam Fell - Electric Cloud - Faster Continuous Integration with ElectricAccele...
Sam Fell - Electric Cloud - Faster Continuous Integration with ElectricAccele...
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
 
5 Essential Techniques for Building Fault-tolerant Systems
5 Essential Techniques for Building Fault-tolerant Systems5 Essential Techniques for Building Fault-tolerant Systems
5 Essential Techniques for Building Fault-tolerant Systems
 
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User GroupIs Serverless The New Swiss Cheese? - AWS Seattle User Group
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
 
Steve Brodie - Electric Cloud - The Yin and Yang of DevOps Transformation
Steve Brodie - Electric Cloud - The Yin and Yang of DevOps TransformationSteve Brodie - Electric Cloud - The Yin and Yang of DevOps Transformation
Steve Brodie - Electric Cloud - The Yin and Yang of DevOps Transformation
 
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
 
Test at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingTest at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local Testing
 
DOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBsDOES SFO 2016 - Chris Fulton - CD for DBs
DOES SFO 2016 - Chris Fulton - CD for DBs
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
 
OpenStack Israel Summit 2013 - It’s the App, Stupid!
OpenStack Israel Summit 2013 - It’s the App, Stupid! OpenStack Israel Summit 2013 - It’s the App, Stupid!
OpenStack Israel Summit 2013 - It’s the App, Stupid!
 
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlowSam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
Sam Fell - Electric Cloud - Automating Continuous Delivery with ElectricFlow
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
 
DevOps at EMC NYC August 2015 - Modernize your apps to drive organizational e...
DevOps at EMC NYC August 2015 - Modernize your apps to drive organizational e...DevOps at EMC NYC August 2015 - Modernize your apps to drive organizational e...
DevOps at EMC NYC August 2015 - Modernize your apps to drive organizational e...
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
VMworld 2015 San Francisco - INF5432 - Infrastructure as Code - Ban Snowflake...
 
Principles Of Chaos Engineering - Chaos Engineering Hamburg
Principles Of Chaos Engineering - Chaos Engineering HamburgPrinciples Of Chaos Engineering - Chaos Engineering Hamburg
Principles Of Chaos Engineering - Chaos Engineering Hamburg
 
Top 8 mistakes developer teams make in their first serverless project
Top 8 mistakes developer teams make in their first serverless projectTop 8 mistakes developer teams make in their first serverless project
Top 8 mistakes developer teams make in their first serverless project
 
Accelerating DevOps Collaboration with Sauce Labs and JIRA
Accelerating DevOps Collaboration with Sauce Labs and JIRAAccelerating DevOps Collaboration with Sauce Labs and JIRA
Accelerating DevOps Collaboration with Sauce Labs and JIRA
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 

Viewers also liked

El software y el hardware bb
El software y el  hardware bbEl software y el  hardware bb
El software y el hardware bb
Jhonatan Henao
 
Managing change in today's ever changing world of work
Managing change in today's ever changing world of workManaging change in today's ever changing world of work
Managing change in today's ever changing world of work
Caleb Stick
 
DigitalRiverBrandsReport
DigitalRiverBrandsReportDigitalRiverBrandsReport
DigitalRiverBrandsReport
Kate Roe
 

Viewers also liked (20)

El software y el hardware bb
El software y el  hardware bbEl software y el  hardware bb
El software y el hardware bb
 
Humor u rebt u
Humor u rebt uHumor u rebt u
Humor u rebt u
 
Progxeim2013
Progxeim2013Progxeim2013
Progxeim2013
 
Patrick Seguin Experience
Patrick Seguin ExperiencePatrick Seguin Experience
Patrick Seguin Experience
 
Top 10 reasons to switch to the Nokia Lumia 1520
Top 10 reasons to switch to the Nokia Lumia 1520Top 10 reasons to switch to the Nokia Lumia 1520
Top 10 reasons to switch to the Nokia Lumia 1520
 
Introducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVUIntroducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVU
 
Kroskulturalno istraživanje: odnos kvantiteta porodičnih interakcija i zadovo...
Kroskulturalno istraživanje: odnos kvantiteta porodičnih interakcija i zadovo...Kroskulturalno istraživanje: odnos kvantiteta porodičnih interakcija i zadovo...
Kroskulturalno istraživanje: odnos kvantiteta porodičnih interakcija i zadovo...
 
Kbt u radu sa prasuicidantima
Kbt u radu sa prasuicidantimaKbt u radu sa prasuicidantima
Kbt u radu sa prasuicidantima
 
Introducing the West Range
Introducing the West RangeIntroducing the West Range
Introducing the West Range
 
All-in-one monitoring solution for DevOps & IT
All-in-one monitoring solution for DevOps & ITAll-in-one monitoring solution for DevOps & IT
All-in-one monitoring solution for DevOps & IT
 
Psychological Issues Within Law Enforcement
Psychological Issues Within Law EnforcementPsychological Issues Within Law Enforcement
Psychological Issues Within Law Enforcement
 
Cv 201503 eng_short
Cv 201503 eng_shortCv 201503 eng_short
Cv 201503 eng_short
 
How to Avoid Getting Malware on Your Computer
How to Avoid Getting Malware on Your ComputerHow to Avoid Getting Malware on Your Computer
How to Avoid Getting Malware on Your Computer
 
Images of Mary
Images of MaryImages of Mary
Images of Mary
 
Managing change in today's ever changing world of work
Managing change in today's ever changing world of workManaging change in today's ever changing world of work
Managing change in today's ever changing world of work
 
Content is King
Content is KingContent is King
Content is King
 
Three Things a New Product Team Needs - Jessica Hall's Presentation at the Bu...
Three Things a New Product Team Needs - Jessica Hall's Presentation at the Bu...Three Things a New Product Team Needs - Jessica Hall's Presentation at the Bu...
Three Things a New Product Team Needs - Jessica Hall's Presentation at the Bu...
 
KONSTANTINOS' EXPERIENCE
KONSTANTINOS' EXPERIENCEKONSTANTINOS' EXPERIENCE
KONSTANTINOS' EXPERIENCE
 
DigitalRiverBrandsReport
DigitalRiverBrandsReportDigitalRiverBrandsReport
DigitalRiverBrandsReport
 
How to Avoid Getting Malware on your Computer
How to Avoid Getting Malware on your ComputerHow to Avoid Getting Malware on your Computer
How to Avoid Getting Malware on your Computer
 

Similar to Cloud Platforms for Java

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 

Similar to Cloud Platforms for Java (20)

How to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScaleHow to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that Scale
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
4Developers 2018: Zero-Downtime deployments with Kubernetes (Mateusz Dymiński)
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
 
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Meetup callback
Meetup callbackMeetup callback
Meetup callback
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 

More from 3Pillar Global

More from 3Pillar Global (13)

Great Ideas Don't Always Make Great Products - Jonathan Rivers' Presentation ...
Great Ideas Don't Always Make Great Products - Jonathan Rivers' Presentation ...Great Ideas Don't Always Make Great Products - Jonathan Rivers' Presentation ...
Great Ideas Don't Always Make Great Products - Jonathan Rivers' Presentation ...
 
The Five Stages of Accepting Negative Customer Feedback - Jessica Hall's Pres...
The Five Stages of Accepting Negative Customer Feedback - Jessica Hall's Pres...The Five Stages of Accepting Negative Customer Feedback - Jessica Hall's Pres...
The Five Stages of Accepting Negative Customer Feedback - Jessica Hall's Pres...
 
Scala: Object-Oriented Meets Functional, by Iulian Dragos
Scala: Object-Oriented Meets Functional, by Iulian DragosScala: Object-Oriented Meets Functional, by Iulian Dragos
Scala: Object-Oriented Meets Functional, by Iulian Dragos
 
Practical Functional Programming Presentation by Bogdan Hodorog
Practical Functional Programming Presentation by Bogdan HodorogPractical Functional Programming Presentation by Bogdan Hodorog
Practical Functional Programming Presentation by Bogdan Hodorog
 
Design Sprints Presentation at NoVA UX
Design Sprints Presentation at NoVA UX Design Sprints Presentation at NoVA UX
Design Sprints Presentation at NoVA UX
 
Using Prototypes to Validate Product Strategy - Product Camp DC Presentation ...
Using Prototypes to Validate Product Strategy - Product Camp DC Presentation ...Using Prototypes to Validate Product Strategy - Product Camp DC Presentation ...
Using Prototypes to Validate Product Strategy - Product Camp DC Presentation ...
 
Less, But Better - Dieter Rams' Principles of Good Design
Less, But Better - Dieter Rams' Principles of Good DesignLess, But Better - Dieter Rams' Principles of Good Design
Less, But Better - Dieter Rams' Principles of Good Design
 
A Prototyping Case Study at NoVA UX
A Prototyping Case Study at NoVA UX A Prototyping Case Study at NoVA UX
A Prototyping Case Study at NoVA UX
 
Prototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUXPrototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUX
 
Prototyping Your Way to Better and Faster Outcomes
Prototyping Your Way to Better and Faster Outcomes Prototyping Your Way to Better and Faster Outcomes
Prototyping Your Way to Better and Faster Outcomes
 
MoDev East 2012 Presentation on Product Modernization
MoDev East 2012 Presentation on Product ModernizationMoDev East 2012 Presentation on Product Modernization
MoDev East 2012 Presentation on Product Modernization
 
Visualizing Relationships: Journalistic Problems in a Digital Age
Visualizing Relationships: Journalistic Problems in a Digital AgeVisualizing Relationships: Journalistic Problems in a Digital Age
Visualizing Relationships: Journalistic Problems in a Digital Age
 
3Pillar Global's Kit Unger and Alok Jain to Explore "How Customers Think" at ...
3Pillar Global's Kit Unger and Alok Jain to Explore "How Customers Think" at ...3Pillar Global's Kit Unger and Alok Jain to Explore "How Customers Think" at ...
3Pillar Global's Kit Unger and Alok Jain to Explore "How Customers Think" at ...
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Cloud Platforms for Java

  • 2. WHAT I’LL LOOK AT? • What needs to be managed • How deployment works • What services are available • Pluses and minuses (as perceived by me) © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 2
  • 3. GOOGLE APP ENGINE - OVERVIEW • Truly a platform • You don’t manage machines • You just upload the binaries and GAE runs them • Large variety of services: • JDO & JPA interfaces to data, MySQL in the cloud, • Memcache, GAE datastore • URL fetch API, Java Mail API • Images service – generate/process images • Oauth (experimental), Google accounts • Cron jobs © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 3
  • 4. GOOGLE APP ENGINE - TOOLING • GAE SDK • Maven and ant build supported • Local app engine development server • Command line tool for interaction with an app • IDE Support • Best supported is Eclipse • NetBeans plugin • IntelliJ Idea – support built into the ultimate edition © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 4
  • 5. GOOGLE APP ENGINE - RUN • Test/debug: hit run/debug in Eclipse • Console output says where the app runs locally • Run local outside IDE – command line: • dev_appserver.sh helloworld.jar • Upload and run in the cloud: • appcfg.sh update helloworld.jar © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 5
  • 6. GOOGLE APP ENGINE - MINUSES • No direct filesystem access • No direct socket access • Must be quick (but there are backends) • request handling must finish within seconds, or it gets you killed • No signed jars • There's a jre class whitelist • Use of any jre class not in the list gets you killed • Not really service-oriented • No REST/SOAP APIs, or at least not published as such • You inherit and use factories a lot © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 6
  • 7. GOOGLE APP ENGINE - PLUSES • Indexing of the datastore, much nicer than a plain file system • Auto-generated but can be hand-tuned • Built-in logging • Logs can be downloaded • Routing by domain header in request • One app can serve multiple domains • Backends = special apps • 60 seconds cap per request, more mem & CPU • Created/destroyed on demand • Many services = APIs available in-app • App identity, logs, images, oauth, search, URL fetch, Java mail, many others • Many are experimental and evolving © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 7
  • 8. GOOGLE APP ENGINE – HELLO WORLD // from the SDK demos – no difference to tomcat package org.example; import java.io.IOException; import javax.servlet.http.*; public class HelloAppEngineServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); resp.getWriter().println("Hello, world"); } } © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 8
  • 9. GOOGLE APP ENGINE - BACKENDS <!-- from the demos – backends.xml --> <!-- putting a backends.xml in WEB-INF starts your app as a backend --> <backends> <backend name="small"> <class>B1</class> <options> <public>true</public> </options> </backend> <backend name="medium"> <class>B2</class> <instances>3</instances> <options> <fail-fast>true</fail-fast> </options> </backend> <backend name="big"> <class>B4</class> <options> <dynamic>true</dynamic> </options> </backend> </backends> © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 9
  • 10. GOOGLE APP ENGINE – DATASTORE • Datastore is hierarchies of typed entities /Person:grandpa / Person:dad / Person:son • When creating an entity, you can specify a kind, a key and an ancestor • Entities can have additional properties – indexed & unindexed • Can query by keys, ancestors or indexed props © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 10
  • 11. GOOGLE APP ENGINE - DATASTORE Entity entity = new Entity("entityType"); entity.setProperty("mykey", mykey); entity.setUnindexedProperty("value", value); datastore = DatastoreServiceFactory.getDatastoreService(); Key key = datastore.put(entity); Query query = new Query("entityType"); PreparedQuery prepared = datastore.prepare(query) List<Entity> entities = prepared.asList(FetchOptions.Builder.withLimit(100)); Entity retrieved = datastore.get(key); datastore.delete(retrieved); © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 11
  • 12. AMAZON WEB SERVICES - OVERVIEW • Most renowned service is EC – Elastic cloud • The Java app platform is actually Elastic Beanstalk • Servlet-based, like GAE • More languages supported than GAE • Big bonus: services are not coupled to other services, like for GAE © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 12
  • 13. AMAZON WEB SERVICES - TOOLING • SDK • Bunch of libs, no binaries to run locally • Simple and easy to set up projects with maven or ant • Eclipse plugin • One-click deploy • Netbeans built-in support • From v7.2 onwards • IntelliJ Idea • Extensive support for managing AWS services © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 13
  • 14. AMAZON WEB SERVICES - RUN • No local dev server • None needed, because you can debug locally, sincer AWS services are callable from anywhere, not just apps running on Beanstalk or EC2 • Beanstalk server is tomcat • One click publishing of apps in Eclipse • From the AWS console • Just upload the war file © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 14
  • 15. AMAZON WEB SERVICES - PLUSES • Full control • Full Java platform • Although no JEE, you can install your own on EC2, but than you don't use beanstalk anymore • Easier migration into the cloud • Gobs of services, truly service oriented • S3 more like a local file system • Anything you like via EC2 instances • Big plus: asymmetric key crypto for access control © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 15
  • 16. AMAZON WEB SERVICES - MINUSES • Not many, no really bad things • Default project in Eclipse is uses jsp instead of a servlet • Deployment to tomcat only • Amazon's initial offering (EC2) shows through • Every app instance is started as a new EC2 instance • Monitoring happens at the machine level • Only infrastructure scalability is addressed • there aren't built-in, Beanstalk-prov © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 16
  • 17. AMAZON WEB SERVICES – S3 // files are kept in buckets AmazonS3 s3 = new AmazonS3Client( new new BasicAWSCredentials( "key", "secret")); s3.createBucket(“myBucket”); s3.putObject( new PutObjectRequest( “myBucket”, “fileName”, someFile)); S3Object object = s3.getObject( new GetObjectRequest(“myBucket”, “fileName”)); s3.deleteObject(“myBucket”, “fileName”); © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 17
  • 18. HEROKU - OVERVIEW • Runs on Amazon EC2 • a PaaS on top of IaaS from another provider • Dynos and slugs • Dynos are sort of a VM, but based on cgroups • Slugs are your apps packaged for a dyno • Many languages, in its latest incarnation: • Ruby, Java, Python, Scala, JavaScript, Clojure • Thought to be extremely beginner-friendly © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 18
  • 19. HEROKU - TOOLING • Provides a toolbelt • On Ubuntu: wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh • Toolbelt contents: • Local app runner – not local server • CLI for uploading and updating apps • GIT interface -commit to git updates your running app • Easy start with Java • Tons of samples on github.com/heroku • Sources of part of heroku itself also on github © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 19
  • 20. HEROKU - RUN • Toolbelt allows you to run profiles locally • No specific one-click run in Eclipse • You develop & deploy normal Java apps • => no need for extra test/debug fixtures © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 20
  • 21. HEROKU – PLUSES & MINUSES • Heroku is different, that's all. • Dynos ~ like micro-/lightweight Vms • Better: no DNS/routing/security setup • Worse: a single open port => remote debugging sucks (but is possible w. special mechanisms) • No prepackaged app server in dynos • Must deploy your own runner with the app • Heroku's git repo provides runners (Jetty, tomcat7) © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 21
  • 22. HEROKU – PLUSES & MINUSES • Git push updates the app • No intermediate on-platform tests possible • You can always use dev/test/prod branches • No dynamic scaling • But there are 3rd party services for this • Rich services environment • Really really really really rich – several dozen • Message queues, storage, monitoring, cron, memcache, mail, lo g & analysis, you name it • Debugging with add-on services locally is not ideal © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 22
  • 23. HEROKU – POSTGRES ACCESS // use heroku-provided tools to provision databases URI dbUri = new URI(System.getenv("DATABASE_URL")); String username = dbUri.getUserInfo().split(":")[0]; String password = dbUri.getUserInfo().split(":")[1]; String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + "/" + dbUri.getPort(); Connection connection = DriverManager.getConnection(dbUrl, username, password); Statement stmt = connection.createStatement(); stmt.executeUpdate("DROP TABLE IF EXISTS ticks"); stmt.executeUpdate("CREATE TABLE ticks (tick timestamp)"); stmt.executeUpdate("INSERT INTO ticks VALUES (now())"); ResultSet rs = stmt.executeQuery("SELECT tick FROM ticks"); while (rs.next()) { System.out.println("Tick: " +rs.getTimestamp("tick")); } © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 23
  • 24. HEROKU – MONGODB ACCESS // use heroku-provisioned tools to set up // MongoDB for your app MongoURI mongoURI = new MongoURI(System.getenv("MONGOHQ_URL")); DB db = mongoURI.connectDB(); db.authenticate( mongoURI.getUsername(), mongoURI.getPassword()); Set<String> colls = db.getCollectionNames(); System.out.println("Collections: " + colls.toString()); © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 24
  • 25. WINDOWS AZURE - OVERVIEW I know, I'm surprised too. But don't get too excited. • There's a download available for Linux • Also a maven dependency • And an Eclipse plugin • It doesn't install on Linux • There's a CLI tool for Linux – using node © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 25
  • 26. WINDOWS AZURE – GOOD AND BAD • VM-based • both Linux and Windows VMS are available • Small selection of add-ons • storage, some media services, CDN, mail, authentication, message queuing • Some more exotic services • Phone and address validation – worldwide • SMS, outgoing voice calls • You have to download, install and configure your own app server for Java-based web apps! © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 26
  • 27. OPENSTACK - OVERVIEW • A first attempt at standardization • Nothing Java-specific here, no wrapper libs included • Primitive, compared to commercial offerings • The only standard service is storage • Storage is much like Amazon's S3 buckets • Fully RESTful APIs • API is standardized, but only for infrastructure-related operations (server creation, resource provisioning, reboot/re-image etc.) • OpenStack-based providers differentiate themselves via addon services • a few well-known names: HP, IBM, Canonical, Rackspace © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 27
  • 28. CLOUDBEES - OVERVIEW • Really great, but not so well known • Standards-based, i.e. no jre restrictions a la GAE • Deploys to standards-based app servers (tomcat, jboss) • Rich integrated dev resources & services • built-in maven, svn, git repos • Sonar, Jenkins, SVN, GIT, Selenium in the cloud – all integrated • Rich autoscaling config built in © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 28
  • 29. CLOUDBEES-RUN • One click run • Both local and deploy to the cloud • Does not really care what your app uses or does • CLI interface with the SDK • Interact with deployed apps • Maven plugin • goals for deploying to jenkins, to prod, or run locally © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 29
  • 30. CLOUDBEES - TOOLING • Mainstream IDEs are supported • Eclipse, Netbeans, IntelliJ Idea • SDK • Many services/add-ons available • Relational and NoSQL databases • Message queues, search & indexing, log analysis • Private maven repo, wiki, Even an online IDE • Add-ons provided by other cloud users © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 30
  • 31. JELASTIC - OVERVIEW • Very friendly console in browser • Point & click interface for deployments • Very simple • Not much there except create environments and • upload wars • No IDE plugins or local SDKs • Not many services • Nosql & relational databases • Virtual edicated servers © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 31
  • 32. JELASTIC – PLUSES AND MINUSES • Feels like the VisualBasic of Java PaaS • Very few things to configure • Tomcat 6/7, Java 6/7, jetty, glassfish • No plain Java apps, no distinction between frontends and workers, no restrictions • Provides automatic scaling • Has data centers all over the civilized world + • Russia • Via partners © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 32
  • 33. CONCLUSIONS • No standards yet • Emerging standards are rudimentary • OpenStack only has storage API specified • All platforms have significant shortcomings • Some platforms are not very service-oriented • Except AWS © Copyright 2014. 3Pillar | All rights reserved Strictly Confidential 33