SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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 = $$$
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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 ...
 

Kürzlich hochgeladen

COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 

Kürzlich hochgeladen (20)

COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 

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