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
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
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
 
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 future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

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