Trivadis TechEvent 2016 Java for enterprises in the Google cloud by Thomas Bröll

Preview:

Citation preview

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

thomas.broell@trivadis.com

9/30/2016 Java for enterprises in the Google cloud37

Recommended