how we took our server side application to the cloud and liked what we got

180
HOW WE TOOK OUR SERVER-SIDE JAVA APPLICATION TO THE CLOUD and liked what we got

Upload: baruch-sadogursky

Post on 19-May-2015

694 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: How we took our server side application to the cloud and liked what we got

HOW WE TOOK OUR SERVER-SIDE JAVA APPLICATION TO THE CLOUD

and liked what we got

Page 2: How we took our server side application to the cloud and liked what we got

WHO’S TALKING?@

jbaruchgithub.com/jbaruch

linkd.in/jbaruch

Page 3: How we took our server side application to the cloud and liked what we got

3

Developer who?

Page 4: How we took our server side application to the cloud and liked what we got

4

Developer who?

Page 5: How we took our server side application to the cloud and liked what we got

WHAT FROG?

Page 6: How we took our server side application to the cloud and liked what we got

WHAT FROG?

Page 7: How we took our server side application to the cloud and liked what we got

WHAT FROG?

Page 8: How we took our server side application to the cloud and liked what we got

WHAT FROG?

Page 9: How we took our server side application to the cloud and liked what we got

WHAT FROG?

Page 10: How we took our server side application to the cloud and liked what we got

WHAT FROG?

Page 11: How we took our server side application to the cloud and liked what we got

One more thing!

. /1bit ly bDaHiD

JUC Israel - July 16, 2014

Page 12: How we took our server side application to the cloud and liked what we got

SO…

Page 13: How we took our server side application to the cloud and liked what we got

First things First.

Page 14: How we took our server side application to the cloud and liked what we got
Page 15: How we took our server side application to the cloud and liked what we got

Poll time!I use binary repository:

Page 16: How we took our server side application to the cloud and liked what we got

Poll time!I use binary repository:

Naturally, Artifactory!

Page 17: How we took our server side application to the cloud and liked what we got

Poll time!I use binary repository:

Naturally, Artifactory! Shame on me,

but still Nexus…

Page 18: How we took our server side application to the cloud and liked what we got

Poll time!I use binary repository:

Naturally, Artifactory! Shame on me,

but still Nexus… I don’t like features, I use Archiva

Page 19: How we took our server side application to the cloud and liked what we got

Poll time!I use binary repository:

Naturally, Artifactory! Shame on me,

but still Nexus… I don’t like features, I use Archiva I am a caveman, binary what?

Page 20: How we took our server side application to the cloud and liked what we got

In the beginning…

Page 21: How we took our server side application to the cloud and liked what we got

In the beginning…

Page 22: How we took our server side application to the cloud and liked what we got

Yet Another Java Server App

Page 23: How we took our server side application to the cloud and liked what we got

Rabbit?!

Page 24: How we took our server side application to the cloud and liked what we got
Page 25: How we took our server side application to the cloud and liked what we got

Checksum storage

Page 26: How we took our server side application to the cloud and liked what we got

Checksum storage

Page 27: How we took our server side application to the cloud and liked what we got

Checksum storage

Page 28: How we took our server side application to the cloud and liked what we got

Checksum storage

Page 29: How we took our server side application to the cloud and liked what we got

Append Only, GC-ed

Page 30: How we took our server side application to the cloud and liked what we got

OMG, THEY KILLED KENNY JACKRABBIT

YOU, BASTARDS?

Page 31: How we took our server side application to the cloud and liked what we got

Artifactory 3 – 10 times faster!(Not bastards)

Page 32: How we took our server side application to the cloud and liked what we got
Page 33: How we took our server side application to the cloud and liked what we got

Moving Forward

Page 34: How we took our server side application to the cloud and liked what we got

Moving Forward

Page 35: How we took our server side application to the cloud and liked what we got

Moving Forward

Page 36: How we took our server side application to the cloud and liked what we got

Moving Forward

Page 37: How we took our server side application to the cloud and liked what we got

Moving Forward

Page 38: How we took our server side application to the cloud and liked what we got

Artifactory SaaS

etc.

Page 39: How we took our server side application to the cloud and liked what we got
Page 40: How we took our server side application to the cloud and liked what we got

What you like about it:

Page 41: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server

Page 42: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server– Fanatic tech support

Page 43: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server– Fanatic tech support– Always up to date!

Page 44: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server– Fanatic tech support– Always up to date!What you don’t like about it:

Page 45: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server– Fanatic tech support– Always up to date!What you don’t like about it:– Can’t deploy your own plugins!

Page 46: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server– Fanatic tech support– Always up to date!What you don’t like about it:– Can’t deploy your own plugins!

Page 47: How we took our server side application to the cloud and liked what we got

What you like about it:– No need to maintain the server– Fanatic tech support– Always up to date!What you don’t like about it:– Can’t deploy your own plugins!

Page 48: How we took our server side application to the cloud and liked what we got

Artifactory SaaS

etc.

Page 49: How we took our server side application to the cloud and liked what we got

Sh.t-load of artifacts!

Page 50: How we took our server side application to the cloud and liked what we got

Terabytes.

FEBRUARY

Page 51: How we took our server side application to the cloud and liked what we got

Terabytes.

FEBRUARYMAY

Page 52: How we took our server side application to the cloud and liked what we got

Terabytes.

FEBRUARYMAY

AUGUST

Page 53: How we took our server side application to the cloud and liked what we got

Terabytes.

AUGUST

MAY

JANUARY

Page 54: How we took our server side application to the cloud and liked what we got

Bring Them On!

Page 55: How we took our server side application to the cloud and liked what we got

To The Cloud

Page 56: How we took our server side application to the cloud and liked what we got

Bullshit Bingo

Page 57: How we took our server side application to the cloud and liked what we got

Much ado about *aaS

Page 58: How we took our server side application to the cloud and liked what we got

* As A Service

Page 59: How we took our server side application to the cloud and liked what we got

* As A ServiceSelf-service

Page 60: How we took our server side application to the cloud and liked what we got

* As A ServiceSelf-service Multi-tenancy

Page 61: How we took our server side application to the cloud and liked what we got

Controversial example ahead!You might find it inaccurate. If you are annoyed by that

feeling,try to remember – it’s just an

example.

Page 62: How we took our server side application to the cloud and liked what we got

GaaE: Google as an Example

Product Self Service

Multi-tenant

* aaS

Page 63: How we took our server side application to the cloud and liked what we got

GaaE: Google as an Example

Product Self Service

Multi-tenant

* aaS

Gmail Not *aaS, web-app

Page 64: How we took our server side application to the cloud and liked what we got

GaaE: Google as an Example

Product Self Service

Multi-tenant

* aaS

Gmail Not *aaS, web-app

Google Apps SaaS

Page 65: How we took our server side application to the cloud and liked what we got

GaaE: Google as an Example

Product Self Service

Multi-tenant

* aaS

Gmail Not *aaS, web-app

Google Apps SaaS

Google App Engine

PaaS

Page 66: How we took our server side application to the cloud and liked what we got

GaaE: Google as an Example

Product Self Service

Multi-tenant

* aaS

Gmail Not *aaS, web-app

Google Apps SaaS

Google App Engine

PaaS

Google Compute Engine

IaaS

Page 67: How we took our server side application to the cloud and liked what we got

AaaE: Amazon as an Example

Product Self Service

Multi-tenant

* aaS

Page 68: How we took our server side application to the cloud and liked what we got

AaaE: Amazon as an Example

Product Self Service

Multi-tenant

* aaS

Amazon store Not *aaS, web-app

Page 69: How we took our server side application to the cloud and liked what we got

AaaE: Amazon as an Example

Product Self Service

Multi-tenant

* aaS

Amazon store Not *aaS, web-app

aStore SaaS

Page 70: How we took our server side application to the cloud and liked what we got

AaaE: Amazon as an Example

Product Self Service

Multi-tenant

* aaS

Amazon store Not *aaS, web-app

aStore SaaS

Amazon Elastic Beantalk

PaaS

Page 71: How we took our server side application to the cloud and liked what we got

AaaE: Amazon as an Example

Product Self Service

Multi-tenant

* aaS

Amazon store Not *aaS, web-app

aStore SaaS

Amazon Elastic Beantalk

PaaS

Amazon Elastic Cloud

IaaS

Page 72: How we took our server side application to the cloud and liked what we got

SaaS pains

Page 73: How we took our server side application to the cloud and liked what we got

Multi-tenancy

Page 74: How we took our server side application to the cloud and liked what we got
Page 75: How we took our server side application to the cloud and liked what we got

Looks good! When to expect?

Page 76: How we took our server side application to the cloud and liked what we got

ExtrapolateThis

Page 77: How we took our server side application to the cloud and liked what we got

Given:Release Java 7 07/2011Release Java 8 12/2012

Page 78: How we took our server side application to the cloud and liked what we got

Given:Release Java 7 07/2011Release Java 8 12/2012

Find:Release Java 9?

Page 79: How we took our server side application to the cloud and liked what we got
Page 80: How we took our server side application to the cloud and liked what we got

Java 8: 12/2012

Page 81: How we took our server side application to the cloud and liked what we got

Java 8: 12/2012-

Java 7: 07/2011

Page 82: How we took our server side application to the cloud and liked what we got

Java 8: 12/2012-

Java 7: 07/2011=

15 Months cycle

Page 83: How we took our server side application to the cloud and liked what we got

Java 8: 12/2012-

Java 7: 07/2011=

15 Months cycle

conclusion: Java 9: 05/2013

Page 84: How we took our server side application to the cloud and liked what we got

Java 8: 12/2012-

Java 7: 07/2011=

15 Months cycle

conclusion: Java 9: 05/2013

It’s almost a year ago!

Oh, wait…Java 8 is not out yet!

Page 85: How we took our server side application to the cloud and liked what we got

Observation: When Mark writes about trains it means release delay

Page 86: How we took our server side application to the cloud and liked what we got

Here you go:

Page 87: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011

Page 88: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Page 89: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 07/2013

Page 90: How we took our server side application to the cloud and liked what we got

You wish!

Page 91: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 07/2013

Page 92: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 01/2014

Whatever mark says

Page 93: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 01/2014+ 24 Months =

Java 9: 01/2016

Whatever mark says

Page 94: How we took our server side application to the cloud and liked what we got

You think this is it?

Page 95: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 03/2014

Whatever mark says

Page 96: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 03/2014+ 24 Months =

Whatever mark says

Page 97: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 03/2014+ 24 Months =

Java 9: 03/2016

Whatever mark says

Page 98: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 Months =

Java 8: 03/2014+ 24 Months =

Java 9: 03/2016(if no more train blog posts)

Whatever mark says

Page 99: How we took our server side application to the cloud and liked what we got

Java 7: 07/2011+ 24 месяца =

Java 8: 03/2014+ 24 месяца =

Java 9: 03/2016(Если не будет больше постов про поезд)

Сколько Марк скажет

DAMN, THAT’S HALF A YEAR

LATER THAN HOOVERBOARDS!

Page 100: How we took our server side application to the cloud and liked what we got

THANK YOU,

WE’LL MANAGE.

Page 101: How we took our server side application to the cloud and liked what we got

Multi-tenancy typesMulti-tenancy Type

Page 102: How we took our server side application to the cloud and liked what we got

Multi-tenancy typesMulti-tenancy Type

Data Separation

Page 103: How we took our server side application to the cloud and liked what we got

Multi-tenancy typesMulti-tenancy Type

Data Separation

Application Separation

Page 104: How we took our server side application to the cloud and liked what we got

Multi-tenancy typesMulti-tenancy Type

Data Separation

Application Separation

Process Separation

Page 105: How we took our server side application to the cloud and liked what we got

GaaE for Multi Tenancy types

Product Multi-tenancy Type

Page 106: How we took our server side application to the cloud and liked what we got

GaaE for Multi Tenancy types

Product Multi-tenancy Type

Google Apps Data Separation

Page 107: How we took our server side application to the cloud and liked what we got

GaaE for Multi Tenancy types

Product Multi-tenancy Type

Google Apps Data Separation

Google App Engine Application Separation

Page 108: How we took our server side application to the cloud and liked what we got

GaaE for Multi Tenancy types

Product Multi-tenancy Type

Google Apps Data Separation

Google App Engine Application Separation

Google Compute Engine

Process Separation

Page 109: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data

Separating application

Separating processes

Let’s compare!

Page 110: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application

Separating application

Separating processes

Let’s compare!

Page 111: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

Separating processes

Let’s compare!

Page 112: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

Separating processes

Let’s compare!

Page 113: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

Separating processes

No shared state Simple transition from

existing

Let’s compare!

Page 114: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

Separating processes

No shared state Simple transition from

existing

JVM per tenant!

Let’s compare!

Page 115: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

Separating processes

No shared state Simple transition from

existing

JVM per tenant!

Let’s compare!

Page 116: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

No shared state Simple transition from

existing

Separating processes

No shared state Simple transition from

existing

JVM per tenant!

Let’s compare!

Page 117: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

No shared state Simple transition from

existing

Separating processes

No shared state Simple transition from

existing

JVM per tenant!

Let’s compare!

P

Page 118: How we took our server side application to the cloud and liked what we got

Strategy Pros ConsSeparating data Normal Java Application Manual state

separation Complicated and

critical schema

Separating application

No shared state Simple transition from

existing

Stay tuned…

Separating processes

No shared state Simple transition from

existing

JVM per tenant!

Let’s compare!

P

Page 119: How we took our server side application to the cloud and liked what we got

Separate WARs: Tomcat Root

┌── lib├── webapps│ ├── customer-name│ ├── other-customer-name│ └── many other customers└── other dirs (bin, conf, log, etc)

WARs of the tenants

Page 120: How we took our server side application to the cloud and liked what we got

Separate WARs

Page 121: How we took our server side application to the cloud and liked what we got

Separate WARs

Page 122: How we took our server side application to the cloud and liked what we got

Separate WARs

That was the PermGen.

Yup.

Page 123: How we took our server side application to the cloud and liked what we got

We love our toys

Page 124: How we took our server side application to the cloud and liked what we got

We love our toys

Artifactory-3.0.1.war\webapp\WEB-INF\lib$du –m51 .

51 MB of toys…

Page 125: How we took our server side application to the cloud and liked what we got

THE AMOUNT OF CLASSES

IS TOO DAMN HIGH!

Page 126: How we took our server side application to the cloud and liked what we got

To the common ClassLoader!

Page 127: How we took our server side application to the cloud and liked what we got

Will it work?_________

Page 128: How we took our server side application to the cloud and liked what we got

Will it work?

‹Object state_________

Page 129: How we took our server side application to the cloud and liked what we got

Will it work?

‹Object state‹Static state

_________

Page 130: How we took our server side application to the cloud and liked what we got

“Static State Quest I”(Sierra, who else?)

Page 131: How we took our server side application to the cloud and liked what we got

Spring Framework

Page 132: How we took our server side application to the cloud and liked what we got

The EvilApp. Context Holder Pattern

Page 133: How we took our server side application to the cloud and liked what we got

The Evil App. Context Holder Pattern

public class AppCtxHolder implements ApplicationContextAware {private static ApplicationContext ctx;

public AppCtxHolder() { }

public void setApplicationContext(ApplicationContext applicationContext) {ctx = applicationContext;

}

public static ApplicationContext getApplicationContext() {return ctx;

} }

Page 134: How we took our server side application to the cloud and liked what we got

The Evil App. Context Holder Pattern

public class AppCtxHolder implements ApplicationContextAware {private static ApplicationContext ctx;

public AppCtxHolder() { }

public void setApplicationContext(ApplicationContext applicationContext) {ctx = applicationContext;

}

public static ApplicationContext getApplicationContext() {return ctx;

} }

Page 135: How we took our server side application to the cloud and liked what we got

The Evil App. Context Holder Pattern

public class AppCtxHolder implements ApplicationContextAware {private static ApplicationContext ctx;

public AppCtxHolder() { }

public void setApplicationContext(ApplicationContext applicationContext) {ctx = applicationContext;

}

public static ApplicationContext getApplicationContext() {return ctx;

} }

Page 136: How we took our server side application to the cloud and liked what we got

Apache Wicket

Page 137: How we took our server side application to the cloud and liked what we got

Apache Wicket

We love Wicket, cause it allows

people who hate UI development to develop a UI,

which people don’t hate

Page 138: How we took our server side application to the cloud and liked what we got

Apache Wicket

Page 139: How we took our server side application to the cloud and liked what we got

Logger

Page 140: How we took our server side application to the cloud and liked what we got

Logger

Page 141: How we took our server side application to the cloud and liked what we got

CATS Software

Page 142: How we took our server side application to the cloud and liked what we got

Jackrabbit

Page 143: How we took our server side application to the cloud and liked what we got

Jackrabbit

Page 144: How we took our server side application to the cloud and liked what we got

Heap-wide Caches

Page 145: How we took our server side application to the cloud and liked what we got

Don’t actually have to read this

Page 146: How we took our server side application to the cloud and liked what we got

Tomcat Root – Where are the JARs?┌── lib├── webapps│ ├── customer-name│ │ ├── favicon.ico│ │ ├── META-INF│ │ └── WEB-INF│ │ ├── web.xml│ │ └── classes│ │ └── DUMMY.TXT│ ├── other-customer-name│ │ ├── favicon.ico│ │ │ └── META-INF│ │ └── WEB-INF│ └── many other customers└── other dirs (bin, conf, log, etc)

Page 147: How we took our server side application to the cloud and liked what we got

Tomcat Root – Where are the JARs?┌── lib├── webapps│ ├── customer-name│ │ ├── favicon.ico│ │ ├── META-INF│ │ └── WEB-INF│ │ ├── web.xml│ │ └── classes│ │ └── DUMMY.TXT│ ├── other-customer-name│ │ ├── favicon.ico│ │ │ └── META-INF│ │ └── WEB-INF│ └── many other customers└── other dirs (bin, conf, log, etc)

Tenant WAR

Page 148: How we took our server side application to the cloud and liked what we got

Tomcat Root – Where are the JARs?┌── lib├── webapps│ ├── customer-name│ │ ├── favicon.ico│ │ ├── META-INF│ │ └── WEB-INF│ │ ├── web.xml│ │ └── classes│ │ └── DUMMY.TXT│ ├── other-customer-name│ │ ├── favicon.ico│ │ │ └── META-INF│ │ └── WEB-INF│ └── many other customers└── other dirs (bin, conf, log, etc)

Tenant WAR

Look ma, no JARs, nor classes!

Page 149: How we took our server side application to the cloud and liked what we got

Tomcat Root – Global lib folder

┌── lib│ ├── artifactory│ │ ├── artifactory-*.jar│ │ ├── jackrabbit-core-jfrog-2.2.8c.jar│ │ ├── spring-core-3.1.1.RELEASE.jar│ │ ├── wicket-core-1.5.3.jar│ │ └── other jars│ ├── catalina.jar│ ├── servlet-api.jar│ └── other jars├── webapps└── other dirs (bin, conf, log, etc)

Page 150: How we took our server side application to the cloud and liked what we got

Tomcat Root – Global lib folder

┌── lib│ ├── artifactory│ │ ├── artifactory-*.jar│ │ ├── jackrabbit-core-jfrog-2.2.8c.jar│ │ ├── spring-core-3.1.1.RELEASE.jar│ │ ├── wicket-core-1.5.3.jar│ │ └── other jars│ ├── catalina.jar│ ├── servlet-api.jar│ └── other jars├── webapps└── other dirs (bin, conf, log, etc)

Global lib

Page 151: How we took our server side application to the cloud and liked what we got

Tomcat Root – Global lib folder

┌── lib│ ├── artifactory│ │ ├── artifactory-*.jar│ │ ├── jackrabbit-core-jfrog-2.2.8c.jar│ │ ├── spring-core-3.1.1.RELEASE.jar│ │ ├── wicket-core-1.5.3.jar│ │ └── other jars│ ├── catalina.jar│ ├── servlet-api.jar│ └── other jars├── webapps└── other dirs (bin, conf, log, etc)

Global lib

Artifactory JARs

Page 152: How we took our server side application to the cloud and liked what we got

Tomcat Root – Global lib folder

┌── lib│ ├── artifactory│ │ ├── artifactory-*.jar│ │ ├── jackrabbit-core-jfrog-2.2.8c.jar│ │ ├── spring-core-3.1.1.RELEASE.jar│ │ ├── wicket-core-1.5.3.jar│ │ └── other jars│ ├── catalina.jar│ ├── servlet-api.jar│ └── other jars├── webapps└── other dirs (bin, conf, log, etc)

The toys

Global lib

Artifactory JARs

Page 153: How we took our server side application to the cloud and liked what we got

Tomcat Root – Global lib folder

┌── lib│ ├── artifactory│ │ ├── artifactory-*.jar│ │ ├── jackrabbit-core-jfrog-2.2.8c.jar│ │ ├── spring-core-3.1.1.RELEASE.jar│ │ ├── wicket-core-1.5.3.jar│ │ └── other jars│ ├── catalina.jar│ ├── servlet-api.jar│ └── other jars├── webapps└── other dirs (bin, conf, log, etc)

The toys

Global lib

Artifactory JARs

Tenants WARs (no JAR-ов)

Page 154: How we took our server side application to the cloud and liked what we got

PaaS or IaaS?

Page 155: How we took our server side application to the cloud and liked what we got

PaaS or IaaS?

Page 156: How we took our server side application to the cloud and liked what we got

Self-Service?

Page 157: How we took our server side application to the cloud and liked what we got

Prevent the Fork!

Page 158: How we took our server side application to the cloud and liked what we got
Page 159: How we took our server side application to the cloud and liked what we got
Page 160: How we took our server side application to the cloud and liked what we got

The process

Page 161: How we took our server side application to the cloud and liked what we got
Page 162: How we took our server side application to the cloud and liked what we got
Page 163: How we took our server side application to the cloud and liked what we got
Page 164: How we took our server side application to the cloud and liked what we got

Artifactory is built with Artifactory!

Page 165: How we took our server side application to the cloud and liked what we got

The Process

Page 166: How we took our server side application to the cloud and liked what we got

The Process

Page 167: How we took our server side application to the cloud and liked what we got

The Process

Page 168: How we took our server side application to the cloud and liked what we got

The Process

Page 169: How we took our server side application to the cloud and liked what we got

The Process

Page 170: How we took our server side application to the cloud and liked what we got

The Process

Page 171: How we took our server side application to the cloud and liked what we got

The Process

Page 172: How we took our server side application to the cloud and liked what we got

The Process

Page 173: How we took our server side application to the cloud and liked what we got

It’s all about right tools

Page 174: How we took our server side application to the cloud and liked what we got

Also right tools

Page 175: How we took our server side application to the cloud and liked what we got

The Paradigm…

Page 176: How we took our server side application to the cloud and liked what we got

Now we do it the other way around

Page 177: How we took our server side application to the cloud and liked what we got

Actually, now we do it the right way!

Page 178: How we took our server side application to the cloud and liked what we got

And we love what we got!

Page 179: How we took our server side application to the cloud and liked what we got

And we love what we got!

Page 180: How we took our server side application to the cloud and liked what we got

NO, THANK YOU!