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

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 CloudDevOps 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 PipelineAndreas 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 SystemsAtlassian
 
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 GroupChase 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 TransformationDevOps 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 TestingBrowserStack
 
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 DBsGene Kim
 
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...Peter Leschev
 
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 ElectricFlowDevOps 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, ThoughtWorksThoughtworks
 
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 HamburgNils 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 projectPaul 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 JIRASauce Labs
 

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 bbJhonatan Henao
 
Patrick Seguin Experience
Patrick Seguin ExperiencePatrick Seguin Experience
Patrick Seguin ExperiencePatrickSeguin
 
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 1520Antony Worsley
 
Introducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVUIntroducing Packaging Textile Controller MAXVU
Introducing Packaging Textile Controller MAXVUKevin 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 RangeKevin 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 & ITRex Antony Peter
 
Psychological Issues Within Law Enforcement
Psychological Issues Within Law EnforcementPsychological Issues Within Law Enforcement
Psychological Issues Within Law EnforcementDoug 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 ComputerJillian 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 workCaleb 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
DigitalRiverBrandsReportKate 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 ComputerJillian Stone
 

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

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 ScalePhil Leggetter
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaSCloudBees
 
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-ServiceCloudBees
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the CloudCloudBees
 
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 GaelykGuillaume 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 KubernetesCodemotion 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-2015Pavel Chunyayev
 
Cloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudCloudy in Indonesia: Java and Cloud
Cloudy in Indonesia: Java and CloudEberhard Wolff
 
Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Google app-engine-cloudcamplagos2011
Google app-engine-cloudcamplagos2011Opevel
 
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 PostgreSQLKonstantin 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 MicroservicesNoriaki Tatsumi
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersJavan Rasokat
 

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

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 Dragos3Pillar 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 Hodorog3Pillar 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 Design3Pillar 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 ModevUX3Pillar 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 Modernization3Pillar 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 Age3Pillar 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
 

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

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

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