Cloud Integration with
Database.com and Heroku David Messinger, Appirio, Community Architect
@dmessing
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if
any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-
looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of
product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments
and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth,
interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other l itigation, risks associated
with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling
non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the
financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This
documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
David Messinger
Community Architect
@dmessing
Appirio Helps Enterprises Power Their Business with Public Cloud Solutions
Technology-enabled professional services, supported by 500 cloud experts and
a 50,000+ cloud developer community
Helping Enterprises Become:
Efficient Effective
5 years, 300 enterprises, 1.5M users moved to the cloud
Social Mobile
Agile
What to Walk Away With
• Learn strategies on connecting various cloud platforms with
Heroku and DB.com
• Learn advantages of different platforms
• Review examples of using Heroku.com to integrate with cloud
platforms.
Agenda
• Brief Intro to Cloud Databases
• Why we chose Heroku / database.com
• Example Decomposition of Work
• Demo
• Database.com
• Redis
• Heroku (Ruby/Rails)
• Q/A
NoSQL, NewSQL, YourSQL?
What SQL should I use?
Database Map by the 451 Group - 2011
• Pros
• Large data volumes
• Flexible Schemas
• Easy to administer
• Scales out not up
• Specialized DB for the task
• Cons
• No Joins/Not Relational
• No complex transactions
• May not guarantee ACID
• No SQL
NoSQL
Document Based
Key Valued
Graph Based
New SQL
• Pros
• Horizontal scale w/ no
coding changes
• Cost Reduction
• Server Resources
• Admin
• Increased Reliability
• Cons
• Relatively young
• Most are not hosted
New SQL Pros/Cons
So What does it All Mean?
Historically
• Cloud Applications need to be fast.
• APIs need to be flexible, fast and scalable.
• RDBMS (in most cases) do not scale for certain types of
applications.
New Times = New Services
Decoupled Services / Apps
• No ultimate DB
• No one size fits all
• Select the right DB
• Flexible data
• Big Data
• Transactional Data
Ultimate Ninja DB
Our Selection of Database.com/Heroku
Cloud Migration
Help Desk
Commute
Calculator Chatter
Compliance
Event Check-in
Mobile App
CloudSpokes
Argh, Chatter Me Mateys
• 95 Countries
• 387K Page Views
• %10 Login Rate
Stats
CloudSpokes Architecture
• PaaS vs IaaS
• Easy to Scale (manual but
still easy)
• No infrastructure resources
• Heroku vs Cloud Foundry
• True Public Cloud
• More mature / Stable not in
GA
• Larger Add on market
• Git built in Credit: Comparing IAAS and PAAS: A Developer’s Perspective
Why Heroku
Why We Settled on database.com
A secure, cloud database for building social and mobile enterprise
apps.
Slimmed down version of Force.com
Only custom objects (no CRUD UI)
Apex classes, triggers & workflow
Identity & user management plus role and profile security
OAuth2 & REST baked in
• Utilize your favorite Force.com tools
Pricing based upon user licenses, records and transactions
DB.com adds the fries to the Happy Meal!
Application design, development
Declarative, configuration, reporting
Application integration and
scale
Enough Slides!
Redis
Redis Structure
Keyword based search index
(Sets) keyword:<keyword>, (Sets) keyword:<id>
To store minimal required data for each challenge
(Keys) title:<id>, (Keys) end_date:<id>, (Keys) open:<id>, (Sets)
categories:<id>, (Sets) category:<category_name>
To keep track of open and closed challenges
(Sets) open_challenges, (Sets) closed_challenges
To keep track of categories
(Sets) category_names
How To Do Efficient Searches
R.sunion(redis_keys)
key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
sunion {a,b,c,d,e}
R.sinter(redis_keys) # exclusive –
intersect
key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
sinter {c}
Effective Matching -Metaphone
# modified from -
http://text.rubyforge.org/s
vn/lib/text/metaphone.rb
def
metaphones_for_keywor
d(keyword)
Demo & Resources
http://cs-search.herokuapp.com/
https://addons.heroku.com/
Github - https://github.com/cloudspokes/cs-search
Redis
Mongo (10gen.com)
Database.com
Heroku.com
David Messinger
Community Architect
@dmessing
Recommended