trivadis techevent 2016 java for enterprises in the google cloud by thomas bröll
TRANSCRIPT
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
Java for enterprises in theGoogle cloud
Thomas BröllTrivadis Stuttgart
Agenda
Java for enterprises in the Google cloud2 9/30/2016
1. Introduction
2. Legal considerations
3. The software architect‘s point of view
4. The services point of view
Java for enterprises in the Google cloud3 9/30/2016
Introduction
Introduction
Java for enterprises in the Google cloud4 9/30/2016
Cloud characteristcs
On-demand
Self-service
Broad network access
Pay per use
Shared, pooled resources
Rapid elasticity
Java for enterprises in the Google cloud5 9/30/2016
Gartner - IaaS
Java for enterprises in the Google cloud6 9/30/2016
Source: https://www.gartner.com/doc/reprints?id=1-2G2O5FC&ct=150519
Gartner - PaaS
Java for enterprises in the Google cloud7 9/30/2016
https://www.gartner.com/doc/reprints?id=1-2C8JHBP&ct=150325&st=sb
Introduction
Java for enterprises in the Google cloud8 9/30/2016
PaaS = Platform as a Service
Java for enterprises in the Google cloud9 9/30/2016
Legal considerations
Service fee
Java for enterprises in the Google cloud10 9/30/2016
Individual metrics for each service
AppEngine: Instances $0.05 / hour = $37/month
Datastore: $0.06 per 100.000 reads, $0.18 per 100.000 writes
Network: $0.12 per GB
…
Service Level Agreement
Java for enterprises in the Google cloud11 9/30/2016
>= 99.x % Uptime
Service fee refund (percentage)
Downtime definition
• "Downtime" means more than a five percent Error Rate. Downtime is measured
based on server side Error Rate.
• "Downtime Period" means a period of ten consecutive minutes of Downtime.
Intermittent Downtime for a period of less than ten minutes will not be counted
towards any Downtime Periods.
Java for enterprises in the Google cloud12 9/30/2016
Gartner - PaaS
Java for enterprises in the Google cloud13 9/30/2016
Global data centers
Private network
Dedicated customer
connections possible
https://www.gartner.com/doc/reprints?id=1-2C8JHBP&ct=150325&st=sb
Google cloud security & privacy
Java for enterprises in the Google cloud15 9/30/2016
https://cloud.google.com/security/compliance
ISO 27001 (Basics, BSI: IT-Grundschutz)
– Re-newed and extended
ISO 27017 (cloud security)
ISO 27018 (cloud privacy)
PCI DSS 3.1 (Payment card industry data security standard)
EU model contract clauses available
Google cloud security & privacy
Java for enterprises in the Google cloud16 9/30/2016
http://www.cloudcomputing-insider.de/10-tipps-fuer-datenschutz-und-datensicherheit-in-
der-cloud-a-543941/
Java for enterprises in the Google cloud17 9/30/2016
The software architect‘s point of
view
The software architect‘s point of view
Java for enterprises in the Google cloud18 9/30/2016
Focus on your application
Scalability enforces new patterns & paradigms
– CAP theorem (consistency, availability, partition tolerance)
– Scalability is enforced (by pricing and load)
The browser & mobile devices are the future platform
The software architect‘s point of view
Java for enterprises in the Google cloud19 9/30/2016
Re-think application architecture
MicroService applications
Stateless components
Storage patterns
– NoSQL / key-value
– Eventual consistency
Messaging / delayed processing
– Idempotent worker (at least once delivery)
User Interface
Java for enterprises in the Google cloud20 9/30/2016
Load Balancer
UI ComponentUI
ComponentUI Component
Elastic Load Balancer
User Interface
Java for enterprises in the Google cloud21 9/30/2016
Load Balancer
UI ComponentUI
ComponentUI Component
Elastic Load Balancer
AppEngine App
Stateless
Component
Pattern !
App Engine
Java for enterprises in the Google cloud22 9/30/2016
Scales your application on demand, no interaction required
Customers only provide a well-behaved Micro Service
– Large applications can be split into „Services“
Flexible model
– Use whatever you like (Java, Python, Go …. Docker)
– Behave well (ports, lifecycle events)
– Easy transition
Feature-complete!
Java @AppEngine
Java for enterprises in the Google cloud24 9/30/2016
Standard: Java 7 & Jetty (Servlet 2.5)
Flexible:
• JEE Microprofile
• Payara
• TomEE
• Wildfly
• …
• Spring Boot
• Dropwizard
Focus on lightweight applications & startup times!
Java for enterprises in the Google cloud25 9/30/2016
Processing Component
Java for enterprises in the Google cloud26 9/30/2016
ProcessingComponentProcessing
ComponentProcessingComponent
Elastic queue
Processing Component
Java for enterprises in the Google cloud27 9/30/2016
ProcessingComponentProcessing
ComponentProcessingComponent
Elastic queue
Processing/Messaging options
Java for enterprises in the Google cloud28 9/30/2016
AppEngine
– Push queue
– Pull queue
– Cron jobs
Cloud PubSub
– Publish
– Subscribe
Storage options
Java for enterprises in the Google cloud29 9/30/2016
Cloud SQL
– MySQL
– More or less IaaS-like
Datastore & BigTable
– Document / Key-Value
– No SQL / key-value
Storage
– Store any data
VM storage
Google drive
CDN
Java for enterprises in the Google cloud30 9/30/2016
The services point of view
Well-know Google services
Java for enterprises in the Google cloud31 9/30/2016
Custom Search API
Google applications (Mail, Calender, Drive, Contacts, …)
URL Shortener
Geo services
Java for enterprises in the Google cloud32 9/30/2016
Maps
Routing
Places
Geocoding / reverse geocoding
Distance
Cloud Vision API
Java for enterprises in the Google cloud33 9/30/2016
Image content recognition
– Face recognition
– Mood
OCR
Machine learning
Java for enterprises in the Google cloud34 9/30/2016
Google Predicition API
Analyze natural data
Cross selling recommendations
Up selling
Demand forecast
Fraud detection
Android / mobile
Java for enterprises in the Google cloud35 9/30/2016
Android has the greatest market share for mobile devices
Google is the company behind android development
Android in the google cloud:
Google Cloud Endpoints
– Easy to use API (Android, iOS, JavaScript)
Firebase Cloud Messaging
– Device notification
– Android & iOS
Some notes
Java for enterprises in the Google cloud36 9/30/2016
Google is a slowly moving container ship (at least in the Java world)
AppEngine „flexible model“ is beta,
„Standard“ is stable but not state-of-the-art (ask Google)
Flexible model has no no-cost pricing threshold
HTTP & REST rule the transport layer
Increasing level of open source software
JavaScript first!
Most services require an API key
– Protect it!
Thomas Bröll
Principal consultant
Tel. +49 711 903 632 305
9/30/2016 Java for enterprises in the Google cloud37