SlideShare a Scribd company logo
Developing Cloud Computing Applications with Java Shlomo Swidler CTO, MyDrifts.com [email_address]
Developing Cloud Computing Applications with Java Overview of Cloud Computing Amazon’s Cloud Platform Google’s Cloud Platform Application Development Challenges Posed by the Cloud… … and Java Solutions 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
About Me CTO & co-Founder  Music marketing on social networks Patent-pending targeting technology Java, MySQL, auto-scaling & cloud-based Active in the Cloud Computing community Open Cloud Computing Interface Working Group (an Open Grid Forum initiative) participant Contributor to Open Source cloud & Java projects 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Cloud Computing Is… A style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the “cloud” that supports them. – Wikipedia  22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Cloud Computing Is… A style of  computing  in which dynamically scalable and often virtualized  resources  are provided  as a service  over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the “cloud” that supports them. – Wikipedia  22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Cloud Computing Is… 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Cloud Computing Is… 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Cloud Computing Is… Computing Resources As a Service Pay-as-you-go or Subscription 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Infrastructure Platform Software Processor LAMP Stack Email Memory JVM CRM System Storage Python VM ERP System Network MapReduce SCM System
Advantages of Cloud Computing From a Developer’s Perspective: Pay-as-you-go “utility computing” Saves time Saves $$$ On-demand resource allocation & release Scalability More on this later 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Risks of Cloud Computing Security Who else has access to “your” resources ? Recovery How easy is it ? Provider lock-in 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Amazon’s Cloud Platform: Amazon Web Services Infrastructure-as-a-Service Processors & Memory Elastic Compute Cloud  “EC2” Storage Simple Storage Service  “S3” Elastic Block Store  “EBS” SimpleDB  database 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Network Content Delivery Network  CloudFront Messaging Simple Queue Service  “SQS”
Amazon Dashboard ElasticFox Firefox plugin 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Developing on Amazon’s Cloud Standard stuff: Language Libraries Communications Web Servers Application Servers Databases Challenges: Scaling 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Suitable for existing applications
Google’s Cloud Platform: Google App Engine 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Platform-as-a-Service Language Python Java Storage JDO or JPA or Datastore APIs User Accounts Email Image Transformation Memcached Cron jobs
Google Dashboard Google Administration Console 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Developing on Google’s Cloud Easy stuff: Scaling Challenges: Language Libraries Communications Data Storage 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Suitable for new, lighter-weight applications
Application Development Challenges Posed by the Cloud Deploying to the Cloud Designing for Scalability Web Tier Application Tier Database Tier 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Application Development Challenges Posed by the Cloud Deploying to the Cloud Designing for Scalability Web Tier Application Tier Database Tier 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Deploying to the Cloud IaaS platforms Mostly the same as traditional deployment PaaS & SaaS platforms Custom procedures Custom configurations Custom tools Google App Engine: Eclipse plug-in 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Deploying an Application to Google App Engine 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Designing the Application Tier for Scalability 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Designing the Application Tier for Scalability Make sure your Storage Tier is optimized Optimize database queries Use in-memory caching Parallelize operations Use concurrent threads Use the Service Pools design pattern 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Parallelize with Concurrent Threads Motivation Allow long-running tasks to proceed without impacting performance Java offers the  java.util.concurrent  package Executor  interface Future<T>  interface 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
java.util.concurrent  Example: In-Memory Cache Existing implementations such as memcached Cache shared by all application instances Access is via the network Application requests an  Object  from the cache Time until response is received can vary True of any network operation Don’t let application code wait… 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
java.util.concurrent  Example: In-Memory Cache String userId =  &quot;visitor01&quot; ; String memcachedKey =  &quot;userId:&quot;  + userId +  &quot;.lastLoginDate&quot; ; Future<Date> lastLoginDateGetter = MemcachedClient. get( memcachedKey, Date. class ); // perform the rest of the request handling code here // then, at the end, get the user's last login date Date lastLoginDate =  null ; try  { lastLoginDate = lastLoginDateGetter.get(50, TimeUnit. MILLISECONDS); }  catch  (InterruptedException e) { // someone interrupted the FutureTask }  catch  (ExecutionException e) { // the FutureTask threw an exception }  catch  (TimeoutException e) { // the FutureTask didn't complete within the 50ms time limit lastLoginDateGetter.cancel( false ); } // return lastLoginDate to the presentation layer 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
java.util.concurrent  Example: In-Memory Cache import  java.util.concurrent.Callable; import  java.util.concurrent.Executor; import  java.util.concurrent.Executors; import  java.util.concurrent.Future; import  java.util.concurrent.FutureTask; public class  MemcachedClient { private static  Executor  executor  =  Executors .newFixedThreadPool (1); public static  <T> Future<T> get(String objectKey, Class<T> type) { final  String objectKeyFinal = objectKey; FutureTask<T> getFromCacheOperation =  new  FutureTask<T>( new  Callable<T>() { public  T call() { Object networkResponse =  requestObjectOverNetwork (objectKeyFinal);  return  (T) networkResponse; } } ); executor . execute(getFromCacheOperation); return  getFromCacheOperation; } private static  Object requestObjectOverNetwork(String objectKey) { // network stuff goes in here } } 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Parallelize with Service Pools Motivation Allow services to scale according to demand Scale up and down 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Request Queue Response Queue Storage
Java Service Pool for Amazon Web Services: Lifeguard Open source Apache License Version 2.0 http://code.google.com/p/lifeguard/ 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Request Queue Response Queue Storage
Lifeguard Framework Framework provides: Message handling File handling Scaling logic 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Request  SQS  Queue Response  SQS  Queue EC2  Instances Ingestor Listener S3  Storage Pool Mgr Config
Lifeguard Framework You provide: Ingestor Service Pool Manager Configuration 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Request  SQS  Queue Response  SQS  Queue EC2  Instances Ingestor Listener S3  Storage Pool Mgr Config
public class  ResizeImageIngestor  extends  IngestorBase { private static final  String  ResizeImageWorkflowXML  = &quot;<Workflow>&quot;  + &quot;<Service>&quot;  + &quot;<Name>ResizeImage</Name>&quot;  + &quot;<WorkQueue>ResizeImage-input</WorkQueue>&quot;  + &quot;</Service>&quot;  + &quot;</Workflow>&quot; ; public  ResizeImageIngestor() { super ( ResizeImageIngestorWorkflowXML ); } public void  ingest(File imageFile) {  super .ingest(Collections. singletonList (imageFile)); } } 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Ingestor Implement the Ingestor S3  Storage
public class  ResizeImageService  extends  AbstractBaseService { private static final  String  ServiceConfigXML  = &quot;<ServiceConfig>&quot;  + &quot;<ServiceName>ResizeImage</ServiceName>&quot;  + &quot;<WorkQueue>ResizeImage-input</WorkQueue>&quot;  + &quot;</ServiceConfig>&quot; ; public ResizeImageService() { super( ServiceConfigXML ); } public  List<File>  executeService(File imageFile) {  Image origImage =  new  Image(imageFile); File resizedImageFile = resizeImageToFile(origImage); return  Collections. singletonList (resizedImageFile); } } 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Implement the Service S3  Storage
<ServicePool> <ServiceName> ResizeImage </ServiceName> <VMImage> ami-39ba5df0 </VMImage> <WorkQueue> ResizeImage-input </WorkQueue> <RampUpInterval> 1 </RampUpInterval> <RampUpDelay> 360 </RampUpDelay> <RampDownInterval> 1 </RampDownInterval> <RampDownDelay> 480 </RampDownDelay> <MinSize> 0 </MinSize> <MaxSize> 20 </MaxSize> <QueueSizeFactor> 20000 </QueueSizeFactor> </ServicePool> This configuration defines the SLA for this service That’s all there is to implement The framework does all the rest 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Configure the Pool Manager Pool Mgr Config
Service Pool Pool of service instances dynamically scales with load 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler Request  SQS  Queue Response  SQS  Queue EC2  Instances Ingestor Listener S3  Storage Pool Mgr Config
Service Pool Pool of service instances dynamically scales with load 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Service Pool Multiple service pools scale independently 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler etc.
Service Pool Workloads can follow different workflows Specify the Ingestor’s XML accordingly 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Developing Cloud Computing Applications with Java Q&A 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Developing Cloud Computing Applications with Java Shlomo Swidler [email_address] Thank you! 22 June 2009 Developing Cloud Computing Applications with Java  by Shlomo Swidler
Ad

Recommended

Cloud Connect - OCCI & CloudAudit Standards Update
Cloud Connect - OCCI & CloudAudit Standards Update
Shlomo Swidler
 
Autopilot : Securing Cloud Native Storage
Autopilot : Securing Cloud Native Storage
SF Bay Cloud Native Open Infra Meetup
 
Keystone Updates - Kilo Edition
Keystone Updates - Kilo Edition
OpenStack Foundation
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Benjamin Cabé
 
Cloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementations
Florian Feldhaus
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backend
Sebastian Poxhofer
 
Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)
Affan Syed
 
IoT gateway dream team - Eclipse Kura and Apache Camel
IoT gateway dream team - Eclipse Kura and Apache Camel
Henryk Konsek
 
OpenNebula Conf 2014 | Practical experiences with OpenNebula for cloudifying ...
OpenNebula Conf 2014 | Practical experiences with OpenNebula for cloudifying ...
NETWAYS
 
"Messaging with Quarkus"
"Messaging with Quarkus"
ConSol Consulting & Solutions Software GmbH
 
Introductions & CloudStack news - Giles Sirett
Introductions & CloudStack news - Giles Sirett
ShapeBlue
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
mfrancis
 
Cinder Updates - Liberty Edition
Cinder Updates - Liberty Edition
OpenStack Foundation
 
OpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service Delivery
Mirantis
 
Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013
Mirantis
 
Securing Your Deployment Pipeline With Docker
Securing Your Deployment Pipeline With Docker
Container Solutions
 
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
NETWAYS
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
mfrancis
 
Cloud Networking - Greg Blomquist, Scott Drennan, Lokesh Jain - ManageIQ Desi...
Cloud Networking - Greg Blomquist, Scott Drennan, Lokesh Jain - ManageIQ Desi...
ManageIQ
 
Openstack Pakistan intro
Openstack Pakistan intro
Affan Syed
 
Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition
OpenStack Foundation
 
Introduction and Overview of OpenStack for IaaS
Introduction and Overview of OpenStack for IaaS
Keith Basil
 
CSEUG introduction
CSEUG introduction
ShapeBlue
 
NFVO based on ManageIQ - OPNFV Summit 2016 Demo
NFVO based on ManageIQ - OPNFV Summit 2016 Demo
ManageIQ
 
All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight
Mark Hinkle
 
The service mesh management plane
The service mesh management plane
LibbySchulze
 
State of the Stack v4 - OpenStack in All It's Glory
State of the Stack v4 - OpenStack in All It's Glory
Randy Bias
 
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
InfluxData
 
The case for social business small
The case for social business small
Purple Spinnaker
 
Proyectos de casas - Servicio de Arquitectura
Proyectos de casas - Servicio de Arquitectura
Oscar Salas Aguilar
 

More Related Content

What's hot (20)

OpenNebula Conf 2014 | Practical experiences with OpenNebula for cloudifying ...
OpenNebula Conf 2014 | Practical experiences with OpenNebula for cloudifying ...
NETWAYS
 
"Messaging with Quarkus"
"Messaging with Quarkus"
ConSol Consulting & Solutions Software GmbH
 
Introductions & CloudStack news - Giles Sirett
Introductions & CloudStack news - Giles Sirett
ShapeBlue
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
mfrancis
 
Cinder Updates - Liberty Edition
Cinder Updates - Liberty Edition
OpenStack Foundation
 
OpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service Delivery
Mirantis
 
Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013
Mirantis
 
Securing Your Deployment Pipeline With Docker
Securing Your Deployment Pipeline With Docker
Container Solutions
 
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
NETWAYS
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
mfrancis
 
Cloud Networking - Greg Blomquist, Scott Drennan, Lokesh Jain - ManageIQ Desi...
Cloud Networking - Greg Blomquist, Scott Drennan, Lokesh Jain - ManageIQ Desi...
ManageIQ
 
Openstack Pakistan intro
Openstack Pakistan intro
Affan Syed
 
Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition
OpenStack Foundation
 
Introduction and Overview of OpenStack for IaaS
Introduction and Overview of OpenStack for IaaS
Keith Basil
 
CSEUG introduction
CSEUG introduction
ShapeBlue
 
NFVO based on ManageIQ - OPNFV Summit 2016 Demo
NFVO based on ManageIQ - OPNFV Summit 2016 Demo
ManageIQ
 
All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight
Mark Hinkle
 
The service mesh management plane
The service mesh management plane
LibbySchulze
 
State of the Stack v4 - OpenStack in All It's Glory
State of the Stack v4 - OpenStack in All It's Glory
Randy Bias
 
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
InfluxData
 
OpenNebula Conf 2014 | Practical experiences with OpenNebula for cloudifying ...
OpenNebula Conf 2014 | Practical experiences with OpenNebula for cloudifying ...
NETWAYS
 
Introductions & CloudStack news - Giles Sirett
Introductions & CloudStack news - Giles Sirett
ShapeBlue
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
mfrancis
 
OpenStack: Changing the Face of Service Delivery
OpenStack: Changing the Face of Service Delivery
Mirantis
 
Open stack architecture overview-meetup-6-6_2013
Open stack architecture overview-meetup-6-6_2013
Mirantis
 
Securing Your Deployment Pipeline With Docker
Securing Your Deployment Pipeline With Docker
Container Solutions
 
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
rOCCI – Providing Interoperability through OCCI 1.1 Support for OpenNebula
NETWAYS
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
mfrancis
 
Cloud Networking - Greg Blomquist, Scott Drennan, Lokesh Jain - ManageIQ Desi...
Cloud Networking - Greg Blomquist, Scott Drennan, Lokesh Jain - ManageIQ Desi...
ManageIQ
 
Openstack Pakistan intro
Openstack Pakistan intro
Affan Syed
 
Neutron Updates - Liberty Edition
Neutron Updates - Liberty Edition
OpenStack Foundation
 
Introduction and Overview of OpenStack for IaaS
Introduction and Overview of OpenStack for IaaS
Keith Basil
 
CSEUG introduction
CSEUG introduction
ShapeBlue
 
NFVO based on ManageIQ - OPNFV Summit 2016 Demo
NFVO based on ManageIQ - OPNFV Summit 2016 Demo
ManageIQ
 
All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight
Mark Hinkle
 
The service mesh management plane
The service mesh management plane
LibbySchulze
 
State of the Stack v4 - OpenStack in All It's Glory
State of the Stack v4 - OpenStack in All It's Glory
Randy Bias
 
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
Modern vSphere Monitoring and Dashboard using InfluxDB, Telegraf and Grafana
InfluxData
 

Viewers also liked (20)

The case for social business small
The case for social business small
Purple Spinnaker
 
Proyectos de casas - Servicio de Arquitectura
Proyectos de casas - Servicio de Arquitectura
Oscar Salas Aguilar
 
Rsf 2016 part-2-en
Rsf 2016 part-2-en
Tel-Aviv Journalists' Association
 
CONAPREF 2016
CONAPREF 2016
RC Consulting
 
pantalla de internet exploer
pantalla de internet exploer
Franklin Ch
 
Les économies d'énergie au quotidien (conférence du 15 novembre 2012)
Les économies d'énergie au quotidien (conférence du 15 novembre 2012)
Centre Urbain - Stadswinkel
 
Sin garantias
Sin garantias
Mayra Salazar
 
Family office elite magazine Spring 15
Family office elite magazine Spring 15
Ty Murphy
 
Solicitud Beca Fundación Mapfre
Solicitud Beca Fundación Mapfre
Cext
 
Hsp70 and Hsp90
Hsp70 and Hsp90
Avin Snyder
 
Capacidad de degradación xenobióticas por microorganismos aislados de
Capacidad de degradación xenobióticas por microorganismos aislados de
luismontoyabiologia
 
Caminos
Caminos
marisollopezg
 
Second-life codigo SL
Second-life codigo SL
HMC6999
 
Universidad pedagógica nacional tarea juank
Universidad pedagógica nacional tarea juank
Miriam Ortiz
 
question and answers for IIT JEE
question and answers for IIT JEE
jairameshbabu
 
"La emoción en el proceso creativo"
"La emoción en el proceso creativo"
Universidad del Pacífico
 
Ficheroasperger 131029134514-phpapp01-131111064300-phpapp01
Ficheroasperger 131029134514-phpapp01-131111064300-phpapp01
M CARMEN MARCO GARCIA
 
Evolución en el marketing, de la emoción a la inteligencia
Evolución en el marketing, de la emoción a la inteligencia
Meritxell Castells
 
Using Goals, Goal Metrics and Rollup Queries in Microsoft Dynamics CRM 2011
Using Goals, Goal Metrics and Rollup Queries in Microsoft Dynamics CRM 2011
C5 Insight
 
Master Restauro
Master Restauro
Alejandro de la Rosa Lora
 
The case for social business small
The case for social business small
Purple Spinnaker
 
Proyectos de casas - Servicio de Arquitectura
Proyectos de casas - Servicio de Arquitectura
Oscar Salas Aguilar
 
pantalla de internet exploer
pantalla de internet exploer
Franklin Ch
 
Les économies d'énergie au quotidien (conférence du 15 novembre 2012)
Les économies d'énergie au quotidien (conférence du 15 novembre 2012)
Centre Urbain - Stadswinkel
 
Family office elite magazine Spring 15
Family office elite magazine Spring 15
Ty Murphy
 
Solicitud Beca Fundación Mapfre
Solicitud Beca Fundación Mapfre
Cext
 
Hsp70 and Hsp90
Hsp70 and Hsp90
Avin Snyder
 
Capacidad de degradación xenobióticas por microorganismos aislados de
Capacidad de degradación xenobióticas por microorganismos aislados de
luismontoyabiologia
 
Second-life codigo SL
Second-life codigo SL
HMC6999
 
Universidad pedagógica nacional tarea juank
Universidad pedagógica nacional tarea juank
Miriam Ortiz
 
question and answers for IIT JEE
question and answers for IIT JEE
jairameshbabu
 
Ficheroasperger 131029134514-phpapp01-131111064300-phpapp01
Ficheroasperger 131029134514-phpapp01-131111064300-phpapp01
M CARMEN MARCO GARCIA
 
Evolución en el marketing, de la emoción a la inteligencia
Evolución en el marketing, de la emoción a la inteligencia
Meritxell Castells
 
Using Goals, Goal Metrics and Rollup Queries in Microsoft Dynamics CRM 2011
Using Goals, Goal Metrics and Rollup Queries in Microsoft Dynamics CRM 2011
C5 Insight
 
Ad

Similar to Java Tech Day 2009 - Developing Cloud Computing Applications With Java (20)

Cloud Study Jam_ Google Cloud Essentials Event Slides.pptx
Cloud Study Jam_ Google Cloud Essentials Event Slides.pptx
AkashSrivastava519152
 
Microsoft, java and you!
Microsoft, java and you!
George Adams
 
1.INTRODUCTION TO JAVA_2022 MB.ppt .
1.INTRODUCTION TO JAVA_2022 MB.ppt .
happycocoman
 
Final
Final
Sri vidhya k
 
MvvmCross Seminar
MvvmCross Seminar
Xamarin
 
MvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Ido Green
 
No Compromise - Better, Stronger, Faster Java in the Cloud
No Compromise - Better, Stronger, Faster Java in the Cloud
All Things Open
 
File Repository on GAE
File Repository on GAE
lynneblue
 
Wipro-Projects
Wipro-Projects
Lakshmi Sreejith
 
code lab live Google Cloud Endpoints [DevFest 2015 Bari]
code lab live Google Cloud Endpoints [DevFest 2015 Bari]
Nicola Policoro
 
Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018
graemerocher
 
Google Cloud Platform
Google Cloud Platform
Francesco Marchitelli
 
Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)
Ido Green
 
TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6
Sravanthi N
 
Cloudsim_openstack_aws_lastunit_bsccs_cloud computing
Cloudsim_openstack_aws_lastunit_bsccs_cloud computing
MrSameerSTathare
 
Immutable infrastructure tsap_v2
Immutable infrastructure tsap_v2
Volodymyr Tsap
 
Cloud-Computing-Course-Description-and-Syllabus-Spring2020.pdf
Cloud-Computing-Course-Description-and-Syllabus-Spring2020.pdf
KanagarajSubramani1
 
Max De Jong: Avoiding Common Pitfalls with Hosting Machine Learning Models
Max De Jong: Avoiding Common Pitfalls with Hosting Machine Learning Models
AWS Chicago
 
GCCP Session 2.pptx
GCCP Session 2.pptx
DSCIITPatna
 
Cloud Study Jam_ Google Cloud Essentials Event Slides.pptx
Cloud Study Jam_ Google Cloud Essentials Event Slides.pptx
AkashSrivastava519152
 
Microsoft, java and you!
Microsoft, java and you!
George Adams
 
1.INTRODUCTION TO JAVA_2022 MB.ppt .
1.INTRODUCTION TO JAVA_2022 MB.ppt .
happycocoman
 
MvvmCross Seminar
MvvmCross Seminar
Xamarin
 
MvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Ido Green
 
No Compromise - Better, Stronger, Faster Java in the Cloud
No Compromise - Better, Stronger, Faster Java in the Cloud
All Things Open
 
File Repository on GAE
File Repository on GAE
lynneblue
 
code lab live Google Cloud Endpoints [DevFest 2015 Bari]
code lab live Google Cloud Endpoints [DevFest 2015 Bari]
Nicola Policoro
 
Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018
graemerocher
 
Google Cloud - Scale With A Smile (Dec 2014)
Google Cloud - Scale With A Smile (Dec 2014)
Ido Green
 
TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6
Sravanthi N
 
Cloudsim_openstack_aws_lastunit_bsccs_cloud computing
Cloudsim_openstack_aws_lastunit_bsccs_cloud computing
MrSameerSTathare
 
Immutable infrastructure tsap_v2
Immutable infrastructure tsap_v2
Volodymyr Tsap
 
Cloud-Computing-Course-Description-and-Syllabus-Spring2020.pdf
Cloud-Computing-Course-Description-and-Syllabus-Spring2020.pdf
KanagarajSubramani1
 
Max De Jong: Avoiding Common Pitfalls with Hosting Machine Learning Models
Max De Jong: Avoiding Common Pitfalls with Hosting Machine Learning Models
AWS Chicago
 
GCCP Session 2.pptx
GCCP Session 2.pptx
DSCIITPatna
 
Ad

Recently uploaded (20)

GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
“Key Requirements to Successfully Implement Generative AI in Edge Devices—Opt...
Edge AI and Vision Alliance
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance Seminar State of Passkeys.pptx
FIDO Alliance
 

Java Tech Day 2009 - Developing Cloud Computing Applications With Java

  • 1. Developing Cloud Computing Applications with Java Shlomo Swidler CTO, MyDrifts.com [email_address]
  • 2. Developing Cloud Computing Applications with Java Overview of Cloud Computing Amazon’s Cloud Platform Google’s Cloud Platform Application Development Challenges Posed by the Cloud… … and Java Solutions 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 3. About Me CTO & co-Founder Music marketing on social networks Patent-pending targeting technology Java, MySQL, auto-scaling & cloud-based Active in the Cloud Computing community Open Cloud Computing Interface Working Group (an Open Grid Forum initiative) participant Contributor to Open Source cloud & Java projects 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 4. Cloud Computing Is… A style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the “cloud” that supports them. – Wikipedia 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 5. Cloud Computing Is… A style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the “cloud” that supports them. – Wikipedia 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 6. Cloud Computing Is… 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 7. Cloud Computing Is… 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 8. Cloud Computing Is… Computing Resources As a Service Pay-as-you-go or Subscription 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Infrastructure Platform Software Processor LAMP Stack Email Memory JVM CRM System Storage Python VM ERP System Network MapReduce SCM System
  • 9. Advantages of Cloud Computing From a Developer’s Perspective: Pay-as-you-go “utility computing” Saves time Saves $$$ On-demand resource allocation & release Scalability More on this later 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 10. Risks of Cloud Computing Security Who else has access to “your” resources ? Recovery How easy is it ? Provider lock-in 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 11. Amazon’s Cloud Platform: Amazon Web Services Infrastructure-as-a-Service Processors & Memory Elastic Compute Cloud “EC2” Storage Simple Storage Service “S3” Elastic Block Store “EBS” SimpleDB database 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Network Content Delivery Network CloudFront Messaging Simple Queue Service “SQS”
  • 12. Amazon Dashboard ElasticFox Firefox plugin 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 13. Developing on Amazon’s Cloud Standard stuff: Language Libraries Communications Web Servers Application Servers Databases Challenges: Scaling 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Suitable for existing applications
  • 14. Google’s Cloud Platform: Google App Engine 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Platform-as-a-Service Language Python Java Storage JDO or JPA or Datastore APIs User Accounts Email Image Transformation Memcached Cron jobs
  • 15. Google Dashboard Google Administration Console 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 16. Developing on Google’s Cloud Easy stuff: Scaling Challenges: Language Libraries Communications Data Storage 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Suitable for new, lighter-weight applications
  • 17. Application Development Challenges Posed by the Cloud Deploying to the Cloud Designing for Scalability Web Tier Application Tier Database Tier 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 18. Application Development Challenges Posed by the Cloud Deploying to the Cloud Designing for Scalability Web Tier Application Tier Database Tier 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 19. Deploying to the Cloud IaaS platforms Mostly the same as traditional deployment PaaS & SaaS platforms Custom procedures Custom configurations Custom tools Google App Engine: Eclipse plug-in 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 20. Deploying an Application to Google App Engine 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 21. Designing the Application Tier for Scalability 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 22. Designing the Application Tier for Scalability Make sure your Storage Tier is optimized Optimize database queries Use in-memory caching Parallelize operations Use concurrent threads Use the Service Pools design pattern 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 23. Parallelize with Concurrent Threads Motivation Allow long-running tasks to proceed without impacting performance Java offers the java.util.concurrent package Executor interface Future<T> interface 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 24. java.util.concurrent Example: In-Memory Cache Existing implementations such as memcached Cache shared by all application instances Access is via the network Application requests an Object from the cache Time until response is received can vary True of any network operation Don’t let application code wait… 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 25. java.util.concurrent Example: In-Memory Cache String userId = &quot;visitor01&quot; ; String memcachedKey = &quot;userId:&quot; + userId + &quot;.lastLoginDate&quot; ; Future<Date> lastLoginDateGetter = MemcachedClient. get( memcachedKey, Date. class ); // perform the rest of the request handling code here // then, at the end, get the user's last login date Date lastLoginDate = null ; try { lastLoginDate = lastLoginDateGetter.get(50, TimeUnit. MILLISECONDS); } catch (InterruptedException e) { // someone interrupted the FutureTask } catch (ExecutionException e) { // the FutureTask threw an exception } catch (TimeoutException e) { // the FutureTask didn't complete within the 50ms time limit lastLoginDateGetter.cancel( false ); } // return lastLoginDate to the presentation layer 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 26. java.util.concurrent Example: In-Memory Cache import java.util.concurrent.Callable; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; public class MemcachedClient { private static Executor executor = Executors .newFixedThreadPool (1); public static <T> Future<T> get(String objectKey, Class<T> type) { final String objectKeyFinal = objectKey; FutureTask<T> getFromCacheOperation = new FutureTask<T>( new Callable<T>() { public T call() { Object networkResponse = requestObjectOverNetwork (objectKeyFinal); return (T) networkResponse; } } ); executor . execute(getFromCacheOperation); return getFromCacheOperation; } private static Object requestObjectOverNetwork(String objectKey) { // network stuff goes in here } } 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 27. Parallelize with Service Pools Motivation Allow services to scale according to demand Scale up and down 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Request Queue Response Queue Storage
  • 28. Java Service Pool for Amazon Web Services: Lifeguard Open source Apache License Version 2.0 http://code.google.com/p/lifeguard/ 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Request Queue Response Queue Storage
  • 29. Lifeguard Framework Framework provides: Message handling File handling Scaling logic 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Request SQS Queue Response SQS Queue EC2 Instances Ingestor Listener S3  Storage Pool Mgr Config
  • 30. Lifeguard Framework You provide: Ingestor Service Pool Manager Configuration 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Request SQS Queue Response SQS Queue EC2 Instances Ingestor Listener S3  Storage Pool Mgr Config
  • 31. public class ResizeImageIngestor extends IngestorBase { private static final String ResizeImageWorkflowXML = &quot;<Workflow>&quot; + &quot;<Service>&quot; + &quot;<Name>ResizeImage</Name>&quot; + &quot;<WorkQueue>ResizeImage-input</WorkQueue>&quot; + &quot;</Service>&quot; + &quot;</Workflow>&quot; ; public ResizeImageIngestor() { super ( ResizeImageIngestorWorkflowXML ); } public void ingest(File imageFile) { super .ingest(Collections. singletonList (imageFile)); } } 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Ingestor Implement the Ingestor S3  Storage
  • 32. public class ResizeImageService extends AbstractBaseService { private static final String ServiceConfigXML = &quot;<ServiceConfig>&quot; + &quot;<ServiceName>ResizeImage</ServiceName>&quot; + &quot;<WorkQueue>ResizeImage-input</WorkQueue>&quot; + &quot;</ServiceConfig>&quot; ; public ResizeImageService() { super( ServiceConfigXML ); } public List<File> executeService(File imageFile) { Image origImage = new Image(imageFile); File resizedImageFile = resizeImageToFile(origImage); return Collections. singletonList (resizedImageFile); } } 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Implement the Service S3  Storage
  • 33. <ServicePool> <ServiceName> ResizeImage </ServiceName> <VMImage> ami-39ba5df0 </VMImage> <WorkQueue> ResizeImage-input </WorkQueue> <RampUpInterval> 1 </RampUpInterval> <RampUpDelay> 360 </RampUpDelay> <RampDownInterval> 1 </RampDownInterval> <RampDownDelay> 480 </RampDownDelay> <MinSize> 0 </MinSize> <MaxSize> 20 </MaxSize> <QueueSizeFactor> 20000 </QueueSizeFactor> </ServicePool> This configuration defines the SLA for this service That’s all there is to implement The framework does all the rest 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Configure the Pool Manager Pool Mgr Config
  • 34. Service Pool Pool of service instances dynamically scales with load 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler Request SQS Queue Response SQS Queue EC2 Instances Ingestor Listener S3  Storage Pool Mgr Config
  • 35. Service Pool Pool of service instances dynamically scales with load 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 36. Service Pool Multiple service pools scale independently 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler etc.
  • 37. Service Pool Workloads can follow different workflows Specify the Ingestor’s XML accordingly 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 38. Developing Cloud Computing Applications with Java Q&A 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler
  • 39. Developing Cloud Computing Applications with Java Shlomo Swidler [email_address] Thank you! 22 June 2009 Developing Cloud Computing Applications with Java by Shlomo Swidler