SlideShare a Scribd company logo
Back-end ecosystems
                          for your applications

                                      Claudio Tesoriero
                           @baasbox   Cesare Rocchi
Monday, February 25, 13
Outline
                          • Needs when choosing a backend
                          • Features

                          • Overview of different approaches




                                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Who am I?



                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
UX designer and developer



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Who are you?



                                         SWIPE CONFERENCE 2012

Monday, February 25, 13
Quick version



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
It’s complicated



                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Thank you!



                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
App Target
                          • Not apps where mobile is “just a view”
                          • Apps which are inherently mobile

                          • From web to app

                          • App needs a back-end


                                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Examples



                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
dayoneapp.com




                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
culturedcode.com/things




                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Questions



                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?



                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?
                          • At which level?
                          • Am I able to do it?

                           • Have I time to learn?

                           • Is it worth it?


                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?
                          • Does it match my goals?
                          • Can I change it if needed?

                          • What about protocols?




                                                         SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to pay?



                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to pay?



                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Who is to pay?



                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?
                          • Does it break any flow?
                          • How frequently?

                          • is it “ok” with that?




                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in?



                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in?
                          • How to migrate data?
                          • Switching cost?

                           • Effort

                            • Code front-end
                            • Data compatibility
                           • Cash

                                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
Options
                          • iCloud
                          • Dropbox

                          • Custom

                          • Back-end as a Service (BaaS)


                                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
What is iCloud?



                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Stores and synchs stuff



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
It just works ...



                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
... when it works.



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
Questions
                          • Have I to manage it?
                          • What’s the synch model?

                          • Who’s to pay?

                          • Impact on UX?
                          • Lock-in?

                                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?
                          • Learn the API
                          • Apple takes care of

                           • installation

                           • scalability


                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Daemon
                          • Monitors changes
                          • Works on metadata

                          • Shreds files

                          • Supports conflict resolution


                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Special folder, synched



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Synched when “appropriate”



                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
Types of Information
                          • Key-value
                          • Documents

                          • CoreData




                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Who’s to pay?
                          • The final user
                          • Your app will use his quota

                          • 5Gb for free




                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?




                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?
                          • User expectation
                          • No control on upload

                          • “Why isn’t there?”

                          • Open the app to synch
                          • User turns off iCloud?

                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in
                          • Huge
                          • Only on iOS

                          • No way to migrate




                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Dropbox



                                    SWIPE CONFERENCE 2012

Monday, February 25, 13
Dropbox
                          • File-based
                          • Special folder

                          • Synchronized across devices

                          • Supports other platforms


                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Have I to manage it?
                          • Already set up
                           • installation

                           • bandwidth

                           • scalability


                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?
                          • Desktop synchronizes continuously
                          • Mobile apps have to query the backend

                          • HTTP API

                          • SDKs for iOS, Android, Ruby, Python


                                                                    SWIPE CONFERENCE 2012

Monday, February 25, 13
What’s the synch model?
                          • No conflict resolution (revision #)
                          • Data serialization is up to you

                          • No file shredding




                                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Who’s to pay?
                          • The final user
                          • Your app will use his disk quota

                          • 2 Gb for free




                                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Impact on UX?
                          • Authentication the first time
                          • User might modify files

                          • Control on the upload




                                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Lock-in
                          • None
                          • Each user owns his data

                          • Personal/team usage

                          • ... but nothing more


                                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Similar
                          • box.net
                          • sugarsync.com

                          • google drive

                          • amazon S3


                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Custom



                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS   PaaS   SaaS



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS            PaaS          SaaS
                          • Data          • Data
                          • Application   • Application

                          • Runtime

                          • Middleware
                          • OS

                                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS                  PaaS                SaaS
                          • Data                • Data
                          • Application         • Application

                          • Runtime

                          • Middleware
                          • OS
                          AWS, Rackspace, ...    Heroku, Appfog, ...   Baasbox

                                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS                   PaaS
                          • Data                 • Data

                          • Application          • Application
                          • Runtime
                          • Middleware
                          • OS


                           AWS, Rackspace, ...     Heroku, Appfog, ...

                                                                         SWIPE CONFERENCE 2012

Monday, February 25, 13
PaaS
                          • Data

                          • Application




                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
PaaS Questions
                          • Which language?
                          • Which DB?




                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
Heroku



                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
Languages
                          • Ruby
                          • Python

                          • Java

                          • Scala
                          • Closure
                          • Node.js

                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
DBs
                          • Postgres
                          • MySQL (via addon)

                          • MongoDB (via addon)




                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
Dyno
                          • Essentially a process
                           • Web

                           • Worker

                          • # of dynos + db profile + addons = backend cost


                                                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS            PaaS
                          • OS            • Data

                          • Middleware    • Application
                          • Runtime
                          • Data

                          • Application



                                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
IaaS
                          • OS
                          • Middleware

                          • Runtime

                          • Data
                          • Application

                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Questions
                          • Which OS?
                          • Which language?

                          • Which DB?

                          • How many machines?


                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Amazon Web Services



                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Amazon Web Services
                          • CDN
                          • Storage

                          • Networking

                          • DBs
                          • Services: email, queue managers
                          • Con: cost estimation

                                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
Good old way
                          • Buy a server
                           • pick the hardware

                           • install OS

                          • rent space/bandwidth in a farm


                                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Server side frameworks



                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Ruby
                          • http://rubyonrails.org
                          • http://www.sinatrarb.com

                          • http://www.padrinorb.com




                                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
Python
                          • https://www.djangoproject.com
                          • http://www.pylonsproject.org

                          • http://flask.pocoo.org




                                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Node.js
                          • http://expressjs.com
                          • http://geddyjs.org

                          • http://flatironjs.org

                          • http://railwayjs.com
                          • http://towerjs.org

                                                   SWIPE CONFERENCE 2012

Monday, February 25, 13
ORM
                          • ActiveRecord
                          • DataMapper

                          • Sequel

                          • SQLAlchemy


                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
BaaS



                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Baas
                          • Backend for mobile apps
                          • Files, key-value

                          • API SDK

                          • Push notifications


                                                      SWIPE CONFERENCE 2012

Monday, February 25, 13
Baas
                          • User management
                           • account creation/verification

                           • Login with Twitter/Facebook

                           • ACL


                                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Baas
                          • Time to market
                          • Focus on the front-end




                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
Services
                          • cloudmine.me
                          • stackmob.com

                          • kinvey.com

                          • parse.com
                          • buddy.com
                          • sencha.io

                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Blood pact



                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
Claudio Tesoriero



                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox
                          • No application server
                          • No database server

                          • JVM only requirement

                          • Runs everywhere


                                                    SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox
                          • User management
                           • ACL

                          • Assets

                          • Collections


                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox
                          • Download
                          •   ./start




                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox on OpenShift

                          rhc app create pizzabox diy-0.1
                          cd pizzabox
                          tar xvfz baasbox-openshift-xx.tar.gz
                          git add .
                          git commit -m "init"
                          git push

                                                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox on CentOS

                          yum install java-1.7.0-openjdk

                          scp baasbox-xx.tar.gz user@host:remotepath

                          cd remotepath

                          ./start

                                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
PizzaBox
                                    Dev




                                  BaasBox

                      Pizzaiolo             Clienti
                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox Console




                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox Web app




                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
BaasBox iPhone app




                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
Asset


                          curl --form file=@margherita.png
                               --form name=margherita
                               --user admin:admin
                               -H X-BAASBOX-APPCODE:1234567890
                               http://localhost:9000/admin/asset


                                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
Menu
                          curl -d "name=menu&meta=[
                          
 {
                          
 
 "name": "Margherita",
                          
 
 "id" : "margherita",
                          
 
 "price": 5,
                          
 
 "ingredients": "Pizza con pomodoro e mozzarella"
                          
 }, ... ]"
                            --user admin:admin
                            -H X-BAASBOX-APPCODE:1234567890
                            http://localhost:9000/admin/asset

                                                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
Orders


                          curl -d ""
                               -H X-BAASBOX-APPCODE:1234567890
                               --user admin:admin
                               http://localhost:9000/admin/collection/orders




                                                                               SWIPE CONFERENCE 2012

Monday, February 25, 13
Create order
                          curl -d "{
                            "list": {"margherita": 2,"quattrostagioni": 2},
                            "user": {
                                "name": "Cesare",
                                "surname": "Rocchi",
                                "address": "Via delle vie 12, Roma", ...
                            },
                            "time": "2013-01-02Z14:21",
                            "total": 12.5,
                            }"
                            -H X-BAASBOX-APPCODE:1234567890
                            --user cesare:cesare
                            http://localhost:9000/document/orders
                                                                                SWIPE CONFERENCE 2012

Monday, February 25, 13
Demo



                                 SWIPE CONFERENCE 2012

Monday, February 25, 13
Migration




                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
Now we are working on
                          • Push Notification
                          • SDK (iOS, Android, JS)

                          • 3rd party authentication

                          • Business analytics


                                                       SWIPE CONFERENCE 2012

Monday, February 25, 13
Federico Pacilli
                           CEO BaasBox


                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
How can we help
                            each other?


                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
Video Tutorials



                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
How can
                             YOU
                          make money?

                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
Marketplace



                                        SWIPE CONFERENCE 2012

Monday, February 25, 13
PizzaBox
                                    Dev




                                  BaasBox

                      Pizzaiolo             Clienti
                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
Marketplace
                          • Referral program (30%)
                          • 35% if non-exclusive

                          • 50%-70% if selling exclusive




                                                           SWIPE CONFERENCE 2012

Monday, February 25, 13
We have 3 ideas



                                            SWIPE CONFERENCE 2012

Monday, February 25, 13
You can candidate
                            job@baasbox.com



                                              SWIPE CONFERENCE 2012

Monday, February 25, 13
We provide
                          back-end support


                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
70% for the first year
                            (+ 30% referral)


                                                  SWIPE CONFERENCE 2012

Monday, February 25, 13
1000€ upfront



                                          SWIPE CONFERENCE 2012

Monday, February 25, 13
Contacts
                          • http://www.baasbox.com
                          • twitter.com/baasbox

                          • facebook.com/baasbox

                          • github.com/baasbox
                          • info@baasbox.com

                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13
jobs@baasbox.com



                                             SWIPE CONFERENCE 2012

Monday, February 25, 13
youtube.com/user/LiveSeeweb

                              Lunedi 25 alle 18.30


                                                     SWIPE CONFERENCE 2012

Monday, February 25, 13

More Related Content

PDF
Going independent - making it as a freelance web professional - TriNUD RDU Co...
KEY
Javascript revolution front end to back end
PDF
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
PDF
Mobile API Design Techniques
PDF
The Future Of Technical Communication
PDF
Webvs Native
PDF
Choosing a backend for your mobile app? Don’t roll the dice!
PDF
mistaeks i’ve made developing software products
Going independent - making it as a freelance web professional - TriNUD RDU Co...
Javascript revolution front end to back end
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
Mobile API Design Techniques
The Future Of Technical Communication
Webvs Native
Choosing a backend for your mobile app? Don’t roll the dice!
mistaeks i’ve made developing software products

Similar to HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Claudio Tesoriero (20)

PDF
mCommerce NFC Payments - QrCode Payment
PDF
Jobs Nearby Week 3
PPTX
Exploring the Cloud
PDF
Best Practices - Seeqnce - 23/24-02-2012
PDF
Interactive publication presentation
PDF
PLM and IT consumerization
PDF
Data Intensive RIAs on Rails with very little code (Netzke)
DOCX
2011 2012 syllabus bsad310
PDF
Angel & Devil: Danger of Emerging Technologies
PDF
La era de los smart devices mexico
PDF
La era de los smart devices mexico
PDF
Mobile Web to Mobile Apps
PDF
Community IT Innovators - IT Trends for Nonprofits
PDF
The conference formula has changed, but we haven't
PDF
457 WWDC08 Student Welcome
PDF
Innovation By Design -- Organize
KEY
Apple Store, London 2009 02 25
PDF
Evento 2012 - Where do we go?
ZIP
The Interaction Design Of APIs
PDF
Increasing Productivity With Google Apps & Gmail Tools
mCommerce NFC Payments - QrCode Payment
Jobs Nearby Week 3
Exploring the Cloud
Best Practices - Seeqnce - 23/24-02-2012
Interactive publication presentation
PLM and IT consumerization
Data Intensive RIAs on Rails with very little code (Netzke)
2011 2012 syllabus bsad310
Angel & Devil: Danger of Emerging Technologies
La era de los smart devices mexico
La era de los smart devices mexico
Mobile Web to Mobile Apps
Community IT Innovators - IT Trends for Nonprofits
The conference formula has changed, but we haven't
457 WWDC08 Student Welcome
Innovation By Design -- Organize
Apple Store, London 2009 02 25
Evento 2012 - Where do we go?
The Interaction Design Of APIs
Increasing Productivity With Google Apps & Gmail Tools
Ad

More from marcocasario (20)

PDF
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
PPTX
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
PDF
HTML5 cross-platform and device development: web app per tutti gli schermi
PDF
Applicazioni HTML5 Superveloci - Salvatore Romeo
PDF
Mobile HTML5 Web Apps - Codemotion 2012
PPTX
Enterprise Spring and Flex applications
PDF
Local Persistent data with ActionScript 3 and AIR
PDF
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
PPT
Adobe TechConnection: Flex Best Practices
PPT
We make it RIA at Comtaste
PDF
Flex and AIR User Interface Design Showcases and Examples
PDF
Designing Flex and AIR applications
PDF
Architecting ActionScript 3 applications using PureMVC
PPT
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
PPT
Developing Mash up applications with Adobe AIR
PPT
FlexCamp London
PPT
Flex Daily Solutions @ FITC 2008
PPT
Rich Internet Application con Flex, AIR e Java
PPT
Developing Adobe AIR desktop applications
PPT
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
HTML5, CSS3 e Javascript per sviluppare Web App per tutti gli schermi - Codem...
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 cross-platform and device development: web app per tutti gli schermi
Applicazioni HTML5 Superveloci - Salvatore Romeo
Mobile HTML5 Web Apps - Codemotion 2012
Enterprise Spring and Flex applications
Local Persistent data with ActionScript 3 and AIR
Enterprise Rich Internet Applications con Java, Livecycle DS e Flex 3
Adobe TechConnection: Flex Best Practices
We make it RIA at Comtaste
Flex and AIR User Interface Design Showcases and Examples
Designing Flex and AIR applications
Architecting ActionScript 3 applications using PureMVC
The ActionScript Conference 08, Singapore - Developing ActionScript 3 Mash up...
Developing Mash up applications with Adobe AIR
FlexCamp London
Flex Daily Solutions @ FITC 2008
Rich Internet Application con Flex, AIR e Java
Developing Adobe AIR desktop applications
Developing AJAX pages using the Adobe Spry framework in Dreamweaver CS3
Ad

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
MYSQL Presentation for SQL database connectivity
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Spectroscopy.pptx food analysis technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Encapsulation theory and applications.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
cuic standard and advanced reporting.pdf
PPTX
Big Data Technologies - Introduction.pptx
Electronic commerce courselecture one. Pdf
Review of recent advances in non-invasive hemoglobin estimation
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Encapsulation_ Review paper, used for researhc scholars
MYSQL Presentation for SQL database connectivity
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectroscopy.pptx food analysis technology
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
20250228 LYD VKU AI Blended-Learning.pptx
The AUB Centre for AI in Media Proposal.docx
Encapsulation theory and applications.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
cuic standard and advanced reporting.pdf
Big Data Technologies - Introduction.pptx

HTML5 Italy: Back end ecosystems for your applications - Cesare Rocchi + Claudio Tesoriero

  • 1. Back-end ecosystems for your applications Claudio Tesoriero @baasbox Cesare Rocchi Monday, February 25, 13
  • 2. Outline • Needs when choosing a backend • Features • Overview of different approaches SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 3. Who am I? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 4. UX designer and developer SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 5. Who are you? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 6. Quick version SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 7. It’s complicated SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 8. Thank you! SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 9. App Target • Not apps where mobile is “just a view” • Apps which are inherently mobile • From web to app • App needs a back-end SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 10. Examples SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 11. dayoneapp.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 12. culturedcode.com/things SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 13. Questions SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 14. Have I to manage it? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 15. Have I to manage it? • At which level? • Am I able to do it? • Have I time to learn? • Is it worth it? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 16. What’s the synch model? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 17. What’s the synch model? • Does it match my goals? • Can I change it if needed? • What about protocols? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 18. Have I to pay? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 19. Have I to pay? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 20. Who is to pay? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 21. Impact on UX? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 22. Impact on UX? • Does it break any flow? • How frequently? • is it “ok” with that? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 23. Lock-in? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 24. Lock-in? • How to migrate data? • Switching cost? • Effort • Code front-end • Data compatibility • Cash SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 25. Options • iCloud • Dropbox • Custom • Back-end as a Service (BaaS) SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 26. What is iCloud? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 27. Stores and synchs stuff SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 28. It just works ... SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 29. ... when it works. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 30. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 31. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 32. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 33. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 34. Questions • Have I to manage it? • What’s the synch model? • Who’s to pay? • Impact on UX? • Lock-in? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 35. Have I to manage it? • Learn the API • Apple takes care of • installation • scalability SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 36. What’s the synch model? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 37. Daemon • Monitors changes • Works on metadata • Shreds files • Supports conflict resolution SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 38. Special folder, synched SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 39. Synched when “appropriate” SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 40. Types of Information • Key-value • Documents • CoreData SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 41. Who’s to pay? • The final user • Your app will use his quota • 5Gb for free SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 42. Impact on UX? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 43. Impact on UX? • User expectation • No control on upload • “Why isn’t there?” • Open the app to synch • User turns off iCloud? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 44. Lock-in • Huge • Only on iOS • No way to migrate SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 45. Dropbox SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 46. Dropbox • File-based • Special folder • Synchronized across devices • Supports other platforms SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 47. Have I to manage it? • Already set up • installation • bandwidth • scalability SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 48. What’s the synch model? • Desktop synchronizes continuously • Mobile apps have to query the backend • HTTP API • SDKs for iOS, Android, Ruby, Python SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 49. What’s the synch model? • No conflict resolution (revision #) • Data serialization is up to you • No file shredding SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 50. Who’s to pay? • The final user • Your app will use his disk quota • 2 Gb for free SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 51. Impact on UX? • Authentication the first time • User might modify files • Control on the upload SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 52. Lock-in • None • Each user owns his data • Personal/team usage • ... but nothing more SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 53. Similar • box.net • sugarsync.com • google drive • amazon S3 SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 54. Custom SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 55. SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 56. IaaS PaaS SaaS SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 57. IaaS PaaS SaaS • Data • Data • Application • Application • Runtime • Middleware • OS SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 58. IaaS PaaS SaaS • Data • Data • Application • Application • Runtime • Middleware • OS AWS, Rackspace, ... Heroku, Appfog, ... Baasbox SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 59. IaaS PaaS • Data • Data • Application • Application • Runtime • Middleware • OS AWS, Rackspace, ... Heroku, Appfog, ... SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 60. PaaS • Data • Application SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 61. PaaS Questions • Which language? • Which DB? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 62. Heroku SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 63. Languages • Ruby • Python • Java • Scala • Closure • Node.js SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 64. DBs • Postgres • MySQL (via addon) • MongoDB (via addon) SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 65. Dyno • Essentially a process • Web • Worker • # of dynos + db profile + addons = backend cost SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 66. IaaS PaaS • OS • Data • Middleware • Application • Runtime • Data • Application SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 67. IaaS • OS • Middleware • Runtime • Data • Application SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 68. Questions • Which OS? • Which language? • Which DB? • How many machines? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 69. Amazon Web Services SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 70. Amazon Web Services • CDN • Storage • Networking • DBs • Services: email, queue managers • Con: cost estimation SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 71. Good old way • Buy a server • pick the hardware • install OS • rent space/bandwidth in a farm SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 72. Server side frameworks SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 73. Ruby • http://rubyonrails.org • http://www.sinatrarb.com • http://www.padrinorb.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 74. Python • https://www.djangoproject.com • http://www.pylonsproject.org • http://flask.pocoo.org SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 75. Node.js • http://expressjs.com • http://geddyjs.org • http://flatironjs.org • http://railwayjs.com • http://towerjs.org SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 76. ORM • ActiveRecord • DataMapper • Sequel • SQLAlchemy SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 77. BaaS SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 78. Baas • Backend for mobile apps • Files, key-value • API SDK • Push notifications SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 79. Baas • User management • account creation/verification • Login with Twitter/Facebook • ACL SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 80. Baas • Time to market • Focus on the front-end SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 81. Services • cloudmine.me • stackmob.com • kinvey.com • parse.com • buddy.com • sencha.io SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 82. Blood pact SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 83. Claudio Tesoriero SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 84. BaasBox • No application server • No database server • JVM only requirement • Runs everywhere SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 85. BaasBox • User management • ACL • Assets • Collections SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 86. BaasBox • Download • ./start SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 87. BaasBox on OpenShift rhc app create pizzabox diy-0.1 cd pizzabox tar xvfz baasbox-openshift-xx.tar.gz git add . git commit -m "init" git push SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 88. BaasBox on CentOS yum install java-1.7.0-openjdk scp baasbox-xx.tar.gz user@host:remotepath cd remotepath ./start SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 89. PizzaBox Dev BaasBox Pizzaiolo Clienti SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 90. BaasBox Console SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 91. BaasBox Web app SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 92. BaasBox iPhone app SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 93. Asset curl --form file=@margherita.png --form name=margherita --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 94. Menu curl -d "name=menu&meta=[ { "name": "Margherita", "id" : "margherita", "price": 5, "ingredients": "Pizza con pomodoro e mozzarella" }, ... ]" --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 95. Orders curl -d "" -H X-BAASBOX-APPCODE:1234567890 --user admin:admin http://localhost:9000/admin/collection/orders SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 96. Create order curl -d "{ "list": {"margherita": 2,"quattrostagioni": 2}, "user": { "name": "Cesare", "surname": "Rocchi", "address": "Via delle vie 12, Roma", ... }, "time": "2013-01-02Z14:21", "total": 12.5, }" -H X-BAASBOX-APPCODE:1234567890 --user cesare:cesare http://localhost:9000/document/orders SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 97. Demo SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 98. Migration SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 99. Now we are working on • Push Notification • SDK (iOS, Android, JS) • 3rd party authentication • Business analytics SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 100. Federico Pacilli CEO BaasBox SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 101. How can we help each other? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 102. Video Tutorials SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 103. How can YOU make money? SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 104. Marketplace SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 105. PizzaBox Dev BaasBox Pizzaiolo Clienti SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 106. Marketplace • Referral program (30%) • 35% if non-exclusive • 50%-70% if selling exclusive SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 107. We have 3 ideas SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 108. You can candidate job@baasbox.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 109. We provide back-end support SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 110. 70% for the first year (+ 30% referral) SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 111. 1000€ upfront SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 112. Contacts • http://www.baasbox.com • twitter.com/baasbox • facebook.com/baasbox • github.com/baasbox • info@baasbox.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 113. jobs@baasbox.com SWIPE CONFERENCE 2012 Monday, February 25, 13
  • 114. youtube.com/user/LiveSeeweb Lunedi 25 alle 18.30 SWIPE CONFERENCE 2012 Monday, February 25, 13