SlideShare a Scribd company logo
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
Ad

More Related Content

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
DevOps Enterprise Summit
 
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...
DevOps Enterprise Summit
 
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
Andreas Grabner
 
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
Atlassian
 
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
Chase Douglas
 
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
DevOps Enterprise Summit
 
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...
DevOps Enterprise Summit
 
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
BrowserStack
 
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
 
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!
Uri Cohen
 
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
DevOps Enterprise Summit
 
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
 
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...
Jonas Rosland
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Andrey Zhupanenko
 
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...
Jonas Rosland
 
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
Nils Meder
 
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
Paul Swail
 
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
Sauce Labs
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
Peter Gfader
 
Bay Area Chef Meetup February
Bay Area Chef Meetup FebruaryBay Area Chef Meetup February
Bay Area Chef Meetup February
Jessica DeVita
 
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
DevOps Enterprise Summit
 
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...
DevOps Enterprise Summit
 
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
Andreas Grabner
 
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
Atlassian
 
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
Chase Douglas
 
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
DevOps Enterprise Summit
 
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...
DevOps Enterprise Summit
 
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
BrowserStack
 
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
 
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!
Uri Cohen
 
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
DevOps Enterprise Summit
 
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
 
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...
Jonas Rosland
 
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...
Jonas Rosland
 
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
Nils Meder
 
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
Paul Swail
 
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
Sauce Labs
 
Bay Area Chef Meetup February
Bay Area Chef Meetup FebruaryBay Area Chef Meetup February
Bay Area Chef Meetup February
Jessica DeVita
 

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
Jhonatan Henao
 
Humor u rebt u
Humor u rebt uHumor u rebt u
Humor u rebt u
Dijana Sulejmanović
 
Patrick Seguin Experience
Patrick Seguin ExperiencePatrick Seguin Experience
Patrick Seguin Experience
PatrickSeguin
 
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
Antony Worsley
 
Introducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVUIntroducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVU
Kevin Anderson
 
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...
Dijana Sulejmanović
 
Kbt u radu sa prasuicidantima
Kbt u radu sa prasuicidantimaKbt u radu sa prasuicidantima
Kbt u radu sa prasuicidantima
Dijana Sulejmanović
 
Introducing the West Range
Introducing the West RangeIntroducing the West Range
Introducing the West Range
Kevin Anderson
 
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
Rex Antony Peter
 
Psychological Issues Within Law Enforcement
Psychological Issues Within Law EnforcementPsychological Issues Within Law Enforcement
Psychological Issues Within Law Enforcement
Doug Aaron
 
Cv 201503 eng_short
Cv 201503 eng_shortCv 201503 eng_short
Cv 201503 eng_short
Rolf Gundersen
 
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
Jillian Stone
 
Images of Mary
Images of MaryImages of Mary
Images of Mary
Anthony Permal
 
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
 
Content is King
Content is KingContent is King
Content is King
3Pillar Global
 
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...
3Pillar Global
 
KONSTANTINOS' EXPERIENCE
KONSTANTINOS' EXPERIENCEKONSTANTINOS' EXPERIENCE
KONSTANTINOS' EXPERIENCE
Konstantinos Seferoglou
 
DigitalRiverBrandsReport
DigitalRiverBrandsReportDigitalRiverBrandsReport
DigitalRiverBrandsReport
Kate Roe
 
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
Jillian Stone
 
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
 
Patrick Seguin Experience
Patrick Seguin ExperiencePatrick Seguin Experience
Patrick Seguin Experience
PatrickSeguin
 
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
Antony Worsley
 
Introducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVUIntroducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVU
Kevin Anderson
 
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...
Dijana Sulejmanović
 
Introducing the West Range
Introducing the West RangeIntroducing the West Range
Introducing the West Range
Kevin Anderson
 
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
Rex Antony Peter
 
Psychological Issues Within Law Enforcement
Psychological Issues Within Law EnforcementPsychological Issues Within Law Enforcement
Psychological Issues Within Law Enforcement
Doug Aaron
 
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
Jillian Stone
 
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
 
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...
3Pillar Global
 
DigitalRiverBrandsReport
DigitalRiverBrandsReportDigitalRiverBrandsReport
DigitalRiverBrandsReport
Kate Roe
 
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
Jillian Stone
 
Ad

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
Phil Leggetter
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
CloudBees
 
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
CloudBees
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
CloudBees
 
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)
PROIDEA
 
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
Guillaume Laforge
 
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
Codemotion Tel Aviv
 
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
Pavel Chunyayev
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
 
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Opevel
 
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
Konstantin Gredeskoul
 
Implementing your own Google App Engine
Implementing your own Google App Engine Implementing your own Google App Engine
Implementing your own Google App Engine
Virtual JBoss User Group
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
cloudcampnigeria
 
Meetup callback
Meetup callbackMeetup callback
Meetup callback
Wayne Scarano
 
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
Noriaki Tatsumi
 
[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
European Collaboration Summit
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
 
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
Phil Leggetter
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
CloudBees
 
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
CloudBees
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
CloudBees
 
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)
PROIDEA
 
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
Guillaume Laforge
 
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
Codemotion Tel Aviv
 
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
Pavel Chunyayev
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and Cloud
Eberhard Wolff
 
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011
Opevel
 
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
Konstantin Gredeskoul
 
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
Noriaki Tatsumi
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
Javan Rasokat
 
Ad

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 ...
3Pillar Global
 
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...
3Pillar Global
 
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
3Pillar Global
 
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
3Pillar Global
 
Design Sprints Presentation at NoVA UX
Design Sprints Presentation at NoVA UX Design Sprints Presentation at NoVA UX
Design Sprints Presentation at NoVA UX
3Pillar Global
 
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 ...
3Pillar Global
 
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
3Pillar Global
 
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
3Pillar Global
 
Prototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUXPrototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUX
3Pillar Global
 
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
3Pillar Global
 
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
3Pillar Global
 
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
 
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 ...
3Pillar Global
 
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 ...
3Pillar Global
 
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...
3Pillar Global
 
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
3Pillar Global
 
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
3Pillar Global
 
Design Sprints Presentation at NoVA UX
Design Sprints Presentation at NoVA UX Design Sprints Presentation at NoVA UX
Design Sprints Presentation at NoVA UX
3Pillar Global
 
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 ...
3Pillar Global
 
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
3Pillar Global
 
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
3Pillar Global
 
Prototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUXPrototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUX
3Pillar Global
 
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
3Pillar Global
 
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
3Pillar Global
 
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
 
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 ...
3Pillar Global
 

Recently uploaded (20)

Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 

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