SlideShare a Scribd company logo
1 of 23
2013.10.09 DevFest Lombardia 2013 @ Milano
How to put 100k lines of code in the (Google) cloud:
storms and rainbows
carlo.bonamico@nispro.it
paolo.predonzani@manydesigns.com
2
What are the most common keywords for job ads?

3
IaaS (Servers, storage, etc)

Developers

PaaS (Architecture stacks,
cloud services)

Developers/
Sys-admins

SaaS (Cloud applications)

End-users

SaaS vs PaaS vs IaaS

4
PaaS boundaries
SaaS (Cloud applications)

Applications
Application platforms

PaaS (Stack applicativi,
cloud services)
Pre-configured packages /
architectural stacks
IaaS (Server, storage, ecc)

O.S., packages to be chosen
and configured
5
The PaaS service “cloud”
SaaS

PaaS

IaaS

and many more...

6
Who is using Google AppEngine and PaaS?

SaaS
Startups

Services in
marketplaces and
social network
eco-systems

IT departments

Cost savings,
scalability

Integration
(Gmail, Drive, etc)

Private cloud

7
GAE in private cloud
TCK (Test Compatibility Kit)

Google

CapeDwarf
Google AppEngine
API su JBoss AS7

JBoss

RedHat OpenShift
8
GAE architecture
Admin & accounting
Webapp

Datastore

Requests

Load balancers

Blobstore
Webapp
Webapp

Fetch API
Email
Search

Webapp

Images
Capabilities

Webapp
...
Dynamic instances

User API
...
Services

9
Development vs deployment environments

Deploy

Eclipse

IntelliJ Idea

GAE plugin (ufficiale)

GAE plugin

Develop

GAE SDK
10
Pros and cons: a matter of design priorities

Open vs proprietary
Scalability
Standards & compatibility
Reliability
Platform independence

11
Portofino: project overview
Name: Portofino
Type: Enterprise Application Platform
License: LGPL
Maintainer: ManyDesigns srl
Language: Java, Groovy, jsp
Stable version: 4.0.10
Development version: 4.1.beta5
Community members:
~100 on English mailing list
~60 on Italian mailing list
Total downloads: 35k
12
Portofino: what is it for?
Quickly assemble applications using:

13
Portofino-based real-life applications
Recruiting and
bid management

Project management

CRM

14
Portofino: a web-based development platform
The developer can edit db metadata,
create and configure pages,
set security, and edit Groovy,
all via web

An application wizard allows to
connect to an existing database in
30 seconds...

15
Porting P4 to GAE: main difficulties
Versions of core platforms and API:
Java 5 vs 6 vs 7
Servlet API 2.5 vs 3.0
Startup time:
Every request must complete in 60s
The first request includes the instance startup delay
Sandbox limits:
No java.awt.*
No threads
Readonly file-system
16
Porting P4 to GAE: what we have changed (1)
Java 5 -> Java 6 (with GAE <= 1.7.7.1)
Oracle/Postgresql/MS SQLServer -> forget it!
MySQL -> Google Cloud SQL
Authentication -> User API
Temporary files -> File Service
Scheduling: Quartz (internal) -> cron (external)
Charting: JFreeChart -> HTML 5/JS/SVG (client-side)
Pdf: iText -> PDFJet

Planned

Planned ?

Blobs: file -> Blobstore

Planned
17
Porting P4 to GAE: what we have changed (2)
Wizard, admin, online configuration -> only in development
Startup time reduction! -> modularization
optional features disabled
Object in session -> Serializable
Email: local queue -> direct using java.mail
Minor differences between MySQL and Cloud SQL

18
GAE: what we have used
Java (and indirectly Groovy)
Cloud SQL: as a relational DB
User API: user info, login/logout links
File Service: temporary files
URL Fetch API: transparent through java.net.*
Blob Store: for attachments

Planned

Task Queue & backends: useful for pdf generations, batch, etc
Memcached: cache for hibernate and HTML

Planned

Planned

19
GAE: what we haven’t used
Datastore: interesting using JPA or JDO but the migration from
Hibernate is expensive
Images: not applicable but pdf support would be nice
Python and other languages
Capabilities API: service availability
Channel API: “push” communications
Multitenancy
Search
20
Conclusions

21
References
Google AppEngine:
https://developers.google.com/appengine/
https://developers.google.com/appengine/docs/java/
CapeDwarf:
http://www.jboss.org/capedwarf
Portofino:
http://www.manydesigns.com/
https://sourceforge.net/projects/portofino/
22
Thank you!
Carlo Bonamico

Paolo Predonzani

Solution Architect & Trainer
@carlobonamico
carlo.bonamico@nispro.it

MANYDESIGNS srl founder
@manydesigns
paolo.predonzani@manydesigns.com

23

More Related Content

What's hot

Ssbpm
SsbpmSsbpm
SsbpmWSO2
 
SOA - from the Enterprise to the Cloud
SOA - from the Enterprise to the CloudSOA - from the Enterprise to the Cloud
SOA - from the Enterprise to the CloudChris Swan
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)WSO2
 
Alfresco eclipse
Alfresco eclipseAlfresco eclipse
Alfresco eclipseESPRIT
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureLuqman Shareef
 
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...Lucas Jellema
 
WSO2 Mashups and BPM
WSO2 Mashups and BPMWSO2 Mashups and BPM
WSO2 Mashups and BPMWSO2
 
Service oriented architecture
Service oriented architectureService oriented architecture
Service oriented architectureAmit Ranjan
 
Need Of Enterprise Integration
Need Of Enterprise IntegrationNeed Of Enterprise Integration
Need Of Enterprise Integrationkumar gaurav
 
BPEL, BPEL vs ESB (Integration)
BPEL, BPEL vs ESB (Integration)BPEL, BPEL vs ESB (Integration)
BPEL, BPEL vs ESB (Integration)ejlp12
 
Team Foundation Server Extensibility Enhancements
Team Foundation Server Extensibility EnhancementsTeam Foundation Server Extensibility Enhancements
Team Foundation Server Extensibility Enhancementsjimlamb
 
DELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAININGDELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAININGGlory IT Technologies
 
4226 - Perl Consultant
4226 - Perl Consultant4226 - Perl Consultant
4226 - Perl ConsultantJAlgate
 
Introduction to business process execution language
Introduction to business process execution languageIntroduction to business process execution language
Introduction to business process execution languagesuranisaunak
 
Software_Architectures_from_SOA_to_MSA
Software_Architectures_from_SOA_to_MSASoftware_Architectures_from_SOA_to_MSA
Software_Architectures_from_SOA_to_MSAPeter Denev
 
Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.amitvasu
 

What's hot (20)

Ssbpm
SsbpmSsbpm
Ssbpm
 
Sca
ScaSca
Sca
 
SOA - from the Enterprise to the Cloud
SOA - from the Enterprise to the CloudSOA - from the Enterprise to the Cloud
SOA - from the Enterprise to the Cloud
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
 
Alfresco eclipse
Alfresco eclipseAlfresco eclipse
Alfresco eclipse
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co... The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
The mobilization of SOA Suite - the rise of REST (ADF Enterprise Mobility Co...
 
WSO2 Mashups and BPM
WSO2 Mashups and BPMWSO2 Mashups and BPM
WSO2 Mashups and BPM
 
Service oriented architecture
Service oriented architectureService oriented architecture
Service oriented architecture
 
Software as a Service
Software as a ServiceSoftware as a Service
Software as a Service
 
Need Of Enterprise Integration
Need Of Enterprise IntegrationNeed Of Enterprise Integration
Need Of Enterprise Integration
 
BPEL, BPEL vs ESB (Integration)
BPEL, BPEL vs ESB (Integration)BPEL, BPEL vs ESB (Integration)
BPEL, BPEL vs ESB (Integration)
 
Team Foundation Server Extensibility Enhancements
Team Foundation Server Extensibility EnhancementsTeam Foundation Server Extensibility Enhancements
Team Foundation Server Extensibility Enhancements
 
DELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAININGDELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
DELL BOOMi CLOUD INTEGRATION ONLINE TRAINING
 
Soa & Bpel
Soa & BpelSoa & Bpel
Soa & Bpel
 
4226 - Perl Consultant
4226 - Perl Consultant4226 - Perl Consultant
4226 - Perl Consultant
 
Introduction to business process execution language
Introduction to business process execution languageIntroduction to business process execution language
Introduction to business process execution language
 
Csg Soa Jr
Csg Soa JrCsg Soa Jr
Csg Soa Jr
 
Software_Architectures_from_SOA_to_MSA
Software_Architectures_from_SOA_to_MSASoftware_Architectures_from_SOA_to_MSA
Software_Architectures_from_SOA_to_MSA
 
Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.Spsto 2013 whats_newinworkflows_amitvasu.
Spsto 2013 whats_newinworkflows_amitvasu.
 

Similar to Moving 100k Lines of Code to Google Cloud Platform

Java @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPIlan Salviano
 
Functional Programming in Serverless World (Serveless UG Poland)
Functional Programming in Serverless World (Serveless UG Poland)Functional Programming in Serverless World (Serveless UG Poland)
Functional Programming in Serverless World (Serveless UG Poland)Serverless User Group Poland
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
Functional Programming in Serverless World
Functional Programming in Serverless WorldFunctional Programming in Serverless World
Functional Programming in Serverless WorldWojciech Gawroński
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Paris Open Source Summit
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...Cisco DevNet
 
Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)Roy Chen
 
Microsoft, java and you!
Microsoft, java and you!Microsoft, java and you!
Microsoft, java and you!George Adams
 
DS, BP, EJB, CDI, WTF!? - Graham Charters
DS, BP, EJB, CDI, WTF!? - Graham ChartersDS, BP, EJB, CDI, WTF!? - Graham Charters
DS, BP, EJB, CDI, WTF!? - Graham Chartersmfrancis
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineCsaba Toth
 
jclouds High Level Overview by Adrian Cole
jclouds High Level Overview by Adrian Colejclouds High Level Overview by Adrian Cole
jclouds High Level Overview by Adrian ColeEverett Toews
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015Christopher Curtin
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Bhupesh Bansal
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop User Group
 
DevOps Course Contents.docx
DevOps Course Contents.docxDevOps Course Contents.docx
DevOps Course Contents.docxFuturepoint13
 
Déploiement dynamique d'applications OSGi sur le Cloud
Déploiement dynamique d'applications OSGi sur le CloudDéploiement dynamique d'applications OSGi sur le Cloud
Déploiement dynamique d'applications OSGi sur le CloudOSGi User Group France
 
Azure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User StoreAzure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User StoreDataStax Academy
 

Similar to Moving 100k Lines of Code to Google Cloud Platform (20)

Java @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SP
 
Functional Programming in Serverless World (Serveless UG Poland)
Functional Programming in Serverless World (Serveless UG Poland)Functional Programming in Serverless World (Serveless UG Poland)
Functional Programming in Serverless World (Serveless UG Poland)
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
Functional Programming in Serverless World
Functional Programming in Serverless WorldFunctional Programming in Serverless World
Functional Programming in Serverless World
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)Cloud service and gae for java(gae:j)
Cloud service and gae for java(gae:j)
 
Microsoft, java and you!
Microsoft, java and you!Microsoft, java and you!
Microsoft, java and you!
 
DS, BP, EJB, CDI, WTF!? - Graham Charters
DS, BP, EJB, CDI, WTF!? - Graham ChartersDS, BP, EJB, CDI, WTF!? - Graham Charters
DS, BP, EJB, CDI, WTF!? - Graham Charters
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App Engine
 
Serverless .NET on AWS
Serverless .NET on AWS Serverless .NET on AWS
Serverless .NET on AWS
 
jclouds High Level Overview by Adrian Cole
jclouds High Level Overview by Adrian Colejclouds High Level Overview by Adrian Cole
jclouds High Level Overview by Adrian Cole
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015UnConference for Georgia Southern Computer Science March 31, 2015
UnConference for Georgia Southern Computer Science March 31, 2015
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
 
DevOps Course Contents.docx
DevOps Course Contents.docxDevOps Course Contents.docx
DevOps Course Contents.docx
 
Déploiement dynamique d'applications OSGi sur le Cloud
Déploiement dynamique d'applications OSGi sur le CloudDéploiement dynamique d'applications OSGi sur le Cloud
Déploiement dynamique d'applications OSGi sur le Cloud
 
Azure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User StoreAzure + DataStax Enterprise (DSE) Powers Office365 Per User Store
Azure + DataStax Enterprise (DSE) Powers Office365 Per User Store
 

More from Paolo Predonzani

Wiki-like collaborative development for seamless customer involvement
Wiki-like collaborative development for seamless customer involvementWiki-like collaborative development for seamless customer involvement
Wiki-like collaborative development for seamless customer involvementPaolo Predonzani
 
Portofino 4: Creare Webapp da Database Esistenti in 30 Secondi
Portofino 4: Creare Webapp da Database Esistenti in 30 SecondiPortofino 4: Creare Webapp da Database Esistenti in 30 Secondi
Portofino 4: Creare Webapp da Database Esistenti in 30 SecondiPaolo Predonzani
 
Come Incorporare un Interprete Groovy in un Applicativo Java
Come Incorporare un Interprete Groovy in un Applicativo JavaCome Incorporare un Interprete Groovy in un Applicativo Java
Come Incorporare un Interprete Groovy in un Applicativo JavaPaolo Predonzani
 
Embedding Groovy in a Java Application
Embedding Groovy in a Java ApplicationEmbedding Groovy in a Java Application
Embedding Groovy in a Java ApplicationPaolo Predonzani
 
Come Incorporare un Interprete Groovy in Java
Come Incorporare un Interprete Groovy in JavaCome Incorporare un Interprete Groovy in Java
Come Incorporare un Interprete Groovy in JavaPaolo Predonzani
 
70k linee di codice, tangle architetturali e le sfide del refactoring
70k linee di codice, tangle architetturali e le sfide del refactoring70k linee di codice, tangle architetturali e le sfide del refactoring
70k linee di codice, tangle architetturali e le sfide del refactoringPaolo Predonzani
 
Model Driven Engineering - ManyDesigns Portofino
Model Driven Engineering - ManyDesigns PortofinoModel Driven Engineering - ManyDesigns Portofino
Model Driven Engineering - ManyDesigns PortofinoPaolo Predonzani
 

More from Paolo Predonzani (8)

Wiki-like collaborative development for seamless customer involvement
Wiki-like collaborative development for seamless customer involvementWiki-like collaborative development for seamless customer involvement
Wiki-like collaborative development for seamless customer involvement
 
Portofino 4: Creare Webapp da Database Esistenti in 30 Secondi
Portofino 4: Creare Webapp da Database Esistenti in 30 SecondiPortofino 4: Creare Webapp da Database Esistenti in 30 Secondi
Portofino 4: Creare Webapp da Database Esistenti in 30 Secondi
 
Come Incorporare un Interprete Groovy in un Applicativo Java
Come Incorporare un Interprete Groovy in un Applicativo JavaCome Incorporare un Interprete Groovy in un Applicativo Java
Come Incorporare un Interprete Groovy in un Applicativo Java
 
Embedding Groovy in a Java Application
Embedding Groovy in a Java ApplicationEmbedding Groovy in a Java Application
Embedding Groovy in a Java Application
 
Come Incorporare un Interprete Groovy in Java
Come Incorporare un Interprete Groovy in JavaCome Incorporare un Interprete Groovy in Java
Come Incorporare un Interprete Groovy in Java
 
Logging
LoggingLogging
Logging
 
70k linee di codice, tangle architetturali e le sfide del refactoring
70k linee di codice, tangle architetturali e le sfide del refactoring70k linee di codice, tangle architetturali e le sfide del refactoring
70k linee di codice, tangle architetturali e le sfide del refactoring
 
Model Driven Engineering - ManyDesigns Portofino
Model Driven Engineering - ManyDesigns PortofinoModel Driven Engineering - ManyDesigns Portofino
Model Driven Engineering - ManyDesigns Portofino
 

Recently uploaded

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
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)

The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
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
 

Moving 100k Lines of Code to Google Cloud Platform

  • 1. 2013.10.09 DevFest Lombardia 2013 @ Milano How to put 100k lines of code in the (Google) cloud: storms and rainbows carlo.bonamico@nispro.it paolo.predonzani@manydesigns.com
  • 2. 2
  • 3. What are the most common keywords for job ads? 3
  • 4. IaaS (Servers, storage, etc) Developers PaaS (Architecture stacks, cloud services) Developers/ Sys-admins SaaS (Cloud applications) End-users SaaS vs PaaS vs IaaS 4
  • 5. PaaS boundaries SaaS (Cloud applications) Applications Application platforms PaaS (Stack applicativi, cloud services) Pre-configured packages / architectural stacks IaaS (Server, storage, ecc) O.S., packages to be chosen and configured 5
  • 6. The PaaS service “cloud” SaaS PaaS IaaS and many more... 6
  • 7. Who is using Google AppEngine and PaaS? SaaS Startups Services in marketplaces and social network eco-systems IT departments Cost savings, scalability Integration (Gmail, Drive, etc) Private cloud 7
  • 8. GAE in private cloud TCK (Test Compatibility Kit) Google CapeDwarf Google AppEngine API su JBoss AS7 JBoss RedHat OpenShift 8
  • 9. GAE architecture Admin & accounting Webapp Datastore Requests Load balancers Blobstore Webapp Webapp Fetch API Email Search Webapp Images Capabilities Webapp ... Dynamic instances User API ... Services 9
  • 10. Development vs deployment environments Deploy Eclipse IntelliJ Idea GAE plugin (ufficiale) GAE plugin Develop GAE SDK 10
  • 11. Pros and cons: a matter of design priorities Open vs proprietary Scalability Standards & compatibility Reliability Platform independence 11
  • 12. Portofino: project overview Name: Portofino Type: Enterprise Application Platform License: LGPL Maintainer: ManyDesigns srl Language: Java, Groovy, jsp Stable version: 4.0.10 Development version: 4.1.beta5 Community members: ~100 on English mailing list ~60 on Italian mailing list Total downloads: 35k 12
  • 13. Portofino: what is it for? Quickly assemble applications using: 13
  • 14. Portofino-based real-life applications Recruiting and bid management Project management CRM 14
  • 15. Portofino: a web-based development platform The developer can edit db metadata, create and configure pages, set security, and edit Groovy, all via web An application wizard allows to connect to an existing database in 30 seconds... 15
  • 16. Porting P4 to GAE: main difficulties Versions of core platforms and API: Java 5 vs 6 vs 7 Servlet API 2.5 vs 3.0 Startup time: Every request must complete in 60s The first request includes the instance startup delay Sandbox limits: No java.awt.* No threads Readonly file-system 16
  • 17. Porting P4 to GAE: what we have changed (1) Java 5 -> Java 6 (with GAE <= 1.7.7.1) Oracle/Postgresql/MS SQLServer -> forget it! MySQL -> Google Cloud SQL Authentication -> User API Temporary files -> File Service Scheduling: Quartz (internal) -> cron (external) Charting: JFreeChart -> HTML 5/JS/SVG (client-side) Pdf: iText -> PDFJet Planned Planned ? Blobs: file -> Blobstore Planned 17
  • 18. Porting P4 to GAE: what we have changed (2) Wizard, admin, online configuration -> only in development Startup time reduction! -> modularization optional features disabled Object in session -> Serializable Email: local queue -> direct using java.mail Minor differences between MySQL and Cloud SQL 18
  • 19. GAE: what we have used Java (and indirectly Groovy) Cloud SQL: as a relational DB User API: user info, login/logout links File Service: temporary files URL Fetch API: transparent through java.net.* Blob Store: for attachments Planned Task Queue & backends: useful for pdf generations, batch, etc Memcached: cache for hibernate and HTML Planned Planned 19
  • 20. GAE: what we haven’t used Datastore: interesting using JPA or JDO but the migration from Hibernate is expensive Images: not applicable but pdf support would be nice Python and other languages Capabilities API: service availability Channel API: “push” communications Multitenancy Search 20
  • 23. Thank you! Carlo Bonamico Paolo Predonzani Solution Architect & Trainer @carlobonamico carlo.bonamico@nispro.it MANYDESIGNS srl founder @manydesigns paolo.predonzani@manydesigns.com 23