Slide 1

Slide 1 text

Closed PaaS to Open PaaS Migrating Google App Engine Apps to OpenShift PRESENTED BY Shekhar Gulati

Slide 2

Slide 2 text

AGENDA ● Introductions ● Overview ● What is CapeDwarf ● OpenShift Ecosystem ● Demo

Slide 3

Slide 3 text

WHO AM I? • Shekhar Gulati • OpenShift Developer Evangelist at Red Hat • 8 years of software development experience • Learning JavaScript these days :) • Java / NoSQL/ Cloud • Loves to learn and try new technologies • Twitter Handle : shekhargulati • Github https://github.com/shekhargulati • Slides https://speakerdeck.com/shekhargulati

Slide 4

Slide 4 text

WHO ARE YOU?

Slide 5

Slide 5 text

● We all know Google App Engine, right? – Google's platform to build web applications on the cloud. – Supports Java, Python , and Go – Automatic scaling and load balancing – Transactional data model based on Big Table – Additional features like Mail, XMPP, Google Accounts, Cron, Memcache, Image, etc. GOOGLE APP ENGINE

Slide 6

Slide 6 text

● API ● The services behind ● Scalability , reliability, size, price,... ITS ALL ABOUT

Slide 7

Slide 7 text

Google App Engine is Great But ...

Slide 8

Slide 8 text

● Can't port existing applications ● Requires change in mindset ● Lock-in ● Platform limitations like write to file system ● Deployment environment does not replicate the same restrictions of the Production ● Not open source ● Every GET or POST from the one server to other, is aborted if it has not finished within 10 seconds ● Pace of innovation is very slow ● Public cloud only GAE LIMITATIONS

Slide 9

Slide 9 text

What if you could get Java GAE for free?

Slide 10

Slide 10 text

● Java GAE for Free ● Easy setup ● Debug support ● Multi node ● Migrate data Now you can == JBoss CapeDwarf CAPEDWARF

Slide 11

Slide 11 text

● Drop in replacement for GAE – Take an existing GAE app and drop into JBossAS env – It just works ● No vendor lock-in ● Enable cluster debugging / testing ● On-premise cloud CAPEDWARF GOALS

Slide 12

Slide 12 text

● CapeDwarf implements GAE API on top of JBoss and other open source libs ● It runs on top of JBoss AS7 subsystem HOW DOES CAPEDWARF WORKS?

Slide 13

Slide 13 text

● Big Table → Infinispan ● Tasks → HornetQ ● Search → Lucene and Hibernate ● Blobs → GridFS ● Clustering → JGroups ● XYZ → OSS or DIY CAPEDWARF TECHNOLOGY CHOICES

Slide 14

Slide 14 text

OpenShift is PaaS by Red Hat Multi-language, Auto-Scaling, Self-service, Elastic, Cloud Application Platform

Slide 15

Slide 15 text

Lowers Cost Improves Developer Efficiency Scales WHY PAAS?

Slide 16

Slide 16 text

origin Public Cloud Service On- premise or Private Cloud Software Open Source Project FLAVORS OF OPENSHIFT

Slide 17

Slide 17 text

Developer IDE Integrations Web Browser Console Command Line Tooling REST APIs INTERACTIONS

Slide 18

Slide 18 text

18 https://openshift.redhat.com/app/account/new Promo code is JUDCONBR13 CREATING OPENSHIFT ACCOUNT

Slide 19

Slide 19 text

● OpenShift is free-as-in-beer & free-as-in-freedom ● You get three free gears, each with 512MB memory and 1GB of disk space. ● Need more resources, just ask! ● The catch is we are in developer preview right now WHAT DO I GET?

Slide 20

Slide 20 text

20 ➢ Login to OpenShift web console ➢ Click on “My Account” ➢ Namespace – JUDCONBR13 – Unique per user CREATING NAMESPACE

Slide 21

Slide 21 text

21 Some terminology for today 1. Application – your web code and any data store. Has to be on 1 or more gears 2. Gear – is like a server. It can have only 1 language for the web programming. 3. Cartridge – it adds a language, a data store, or other functionality 4. Git – used for version control and managing code between server and your development machine 5. Ssh – command line tool to connect to your gear

Slide 22

Slide 22 text

22 Install Ruby 1.8.7 or greater Install Git Install rhc OpenShift gem Refer to documentation INSTALLING CLIENT TOOLS

Slide 23

Slide 23 text

23 rhc setup -l -> creates namespace -> upload ssh keys SETUP OPENSHIFT ENVIRONMENT

Slide 24

Slide 24 text

24 OPENSHIFT CAPEDWARF QUICKSTART

Slide 25

Slide 25 text

25 CAPEDWARF APP

Slide 26

Slide 26 text

26 CLONE REPO $ rhc git-clone -a todo

Slide 27

Slide 27 text

27 Look at template application

Slide 28

Slide 28 text

28 $ git remote add upstream https://github.com/shekhargulati/todo- capedwarf.git $ git pull -s recursive -X theirs upstream master PULLING THE CODE

Slide 29

Slide 29 text

29 $ git push PUSHING CODE TO CLOUD

Slide 30

Slide 30 text

QUESTIONS?

Slide 31

Slide 31 text

DONE!