Heroku Introduction: Scaling customer facing apps & services
-
Author
john-stevenson -
Category
Technology
-
view
386 -
download
3
Embed Size (px)
description
Transcript of Heroku Introduction: Scaling customer facing apps & services

Introduction to HerokuScaling Customer facing apps
and services

Safe harborSafe 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 any litigation, risks associated with completed and any 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-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These 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.

Apps Require Infrastructure
This is what the Salesforce Data Centers provide for Salesforce Orgs
Servers Networking Operations

Apps Require Infrastructure
What if a customer wants to deliver apps outside oftheir Salesforce Org ?
Servers Networking Operations

Apps Require Infrastructure
Servers Networking Operations
Managing your own Data Center is expensive
Provisioning Servers is often a bottleneck,even when they are virtualised

Heroku: The Developers Choice“Heroku lets us focus on our app and deliver more value to customers.”
– Aaron Peckham, Urban Dictionary

Example apps on Heroku
Retail
Media
MarketingCampaigns
Customer & Web Sites
E-Commerce &
Media
Mobile &SaaS Apps
AppPortfolios
success.heroku.com

SolutionChallenge A highly-scalable system
Supporting over 1 million customers
Processing 3 million payments Thousands of payment
partners
- Allow people to buy food & provisions when nothing works- Fast response times- No down-time
Hurricane Sandy proof payments via
your mobile

SolutionChallenge
NEB bio-freezers provide live enzymes for genomic research in labs around the world
Heroku + Force.com connects NEB to customers
with live support and bi-directional access to
inventory and usage for automated restocking
Manual process of distribution, inventory control and customer engagement created business inefficiencies

Proven Success
5 BillionRequests per
day
4+ Million
Apps Created
125+Add-on Services
“Heroku enables us to build, test and ship faster than we ever would be able to
otherwise"– Jay Stakelon, VP of Product, Fullscreen

Heroku is the developers’ choice“I recommend Heroku to anyone that wants to
spend time working on their product and not on servers.”– Ryan Twomey, Lead Platform Engineer, LevelUp

Free Developer EnvironmentUsing only 1 dyno for your Heroku App is free
- Your app will sleep after 1 hour of inactivity

What is Heroku?
DatabaseEnterprise grade
Postgres as a service
Add-onsMarketplace for data
stores and app services
DynosRun virtually any language at any
scale
Everything you need to build, run and scale customer apps

Connectedeasy linking of the Heroku Postgres database driving your apps with your Salesforce OrgTransformingcustomer data translated into business applicable information
Managed2-way synchronization of high volumes of data at a sustainable rate
Heroku1 ConnectHeroku & Force.com

Heroku: Technical Overview

Heroku core language supportRuby, Java, NodeJS & Python
Virtually every language you can think of is supported by community buildpacks
https://devcenter.heroku.com/articles/third-party-buildpacks

Developer driven deploymentDeploy using Git version control
- the most popular software versioning tool for developers
git push heroku master

Continuous DeploymentEasy to deploy changes, so developers deploy smaller changes more often - quickly understand the value of software you create
Version code locally
Deploy code on Heroku
Develop application
code

Consistent DeploymentBuild scripts ensure that the entire environment is built in the same way
git push heroku master

Consistent DeploymentCreating an Heroku app provides a placeholder for your app
heroku create app-name --region us|eu

Consistent DeploymentPushing code to Heroku creates brand new infrastructure
git push heroku master



Heroku Demo Time
Demo Gods, please by kind

Traceable deploymentEvery deployment is traceable to the exact code version in your Git repository
git log --graph --oneline --decorate

Traceable deploymentHeroku dashboard shows your deployment versions

Repeatable deploymentYou app is deployed from the code in your Git repository
git push my-app-test mastergit push my-app-staging master
Establish a complete set of consistent environments to support your development

Consistent EnvironmentsBuildpacks ensure consistency across environment setups
Test Environment
Staging Environment
Production Environment
Environment variables used for specific database connections, services, etc.

Collaborative deployment
Using Git is an effective way for developers and teams to collaborate around projects



Heroku Orgs for apps oversight and collaboration

Heroku Orgs
Manage all your applications under one organisation
heroku create app-name --org org-name

Heroku Orgs Resource Management

Creating an Heroku Org

Heroku Orgs

Manage your apps in one place

Controlling access to Org Apps

Controlling access to Org Apps

3rd Party OrgsManage access to applications under one organisation - 3rd party developers can be limited to specific apps

Scaling your apps on Heroku

Scaling your apps on HerokuDynos can be spun up on demand, scaling resources almost
instantaneously
heroku ps:scale web=10heroku ps:scale web=0
Dynos can also be scaled down instantaneously when not needed

Scaling your apps on HerokuDynos can run different processes, enabling fine grain scaling
heroku ps:scale web=10heroku ps:scale background=3Heroku ps:scale queue=1
Web processes listen to http[s] requests, other are background processes

Scaling your apps on Heroku

Performance Dynos - PxHave a whole block of resources to scale your Heroku app - routing latency advantages when you scale past 10 dynos
heroku ps:resize web=PX
https://blog.heroku.com/archives/2014/2/3/heroku-xl

Performance Dynos - Px
https://blog.heroku.com/archives/2014/2/3/heroku-xl

Managing your apps on Heroku

Troubleshooting your appHeroku Logplex gives a unified log to find the real root cause of issues
heroku logs

Managing Heroku infrastructureDynos are automatically patched for security vulnerabilities
- a new dyno is established before the current one is decommissioned
- requests are automatically routed to the new dyno Unresponsive & run-away processes have their dyno “recycled”
New DynoCurrent Dyno
CurrentSlug

Production access without the riskConnect via secure shell to a copy of your Production app
Temporarydyno
Production dyno
heroku run bash
CurrentSlug

Production access without the risk

Heroku Production Health Check
Quickly review your app to ensure it is configured to be used in production

status.heroku.com

status.heroku.com

Fast RollbacksRoll-forward a previously working deployment - allowing time to fix the root cause of a deployment issue
Roll-forward dynoVersion 22
(cloned from v20)
Production DynoVersion 21
heroku releasesheroku releases:info 20Heroku releases:rollback 20

Fast RollbacksYou can see your release history via the command line or the Heroku dashboard

Boosting app development with Heroku add-ons

Largest Paas
Marketplace
Developer-focused add-ons allow you to provision datastores & services on demand

Heroku Postgres

Heroku Postgres Services

New Relic – end 2 end monitoring

Hirefire – auto-scaling

Building Scalable apps

12 Factor AppEven if your platform is scalable, it does not mean your app is - or it may not scale efficiently
12factor.net
Heroku engineers defined a set of principles to help you create and manage a highly scalable application.

Heroku1 Connect In action
Automated syncronisation between Heroku Postgress and your Salesforce Org
www.heroku.com/1

Heroku1 Connect
Heroku
Salesforce Org
Auto synchronization of data
Customer facingApp /
websiteCustomer data
captured
Understandingabout your customers
Turn customer interaction to valuable business insight

Add Heroku Postgres to your App

Adding the Heroku1 Connect addon to your App

Your app on the Heroku Dashboard

Choosing an Heroku Postgress Database

Authorising access to your Salesforce Org

Your Heroku1 Connect Dashboard

Choose a Salesforce Object for Syncronisation

Example: Selecting a Plant object

Choosing Fields to sync on the Salesforce Object

Example: Selecting Plant fields to synchronize

Summary of Object Fields to be synchronised

Your mapped objects

First Sync happens as soon as an object is mapped

Viewing your Database configuration

Pause & Resume Sync’ing

Developer tools can access your Heroku Postgress
Database

Heroku1 Connect SummaryGet a single view of all your customer data - from every single touch point you create - connecting only that data that will provide value
An easy service to configure & monitor - ensuring you maximize the resources of your Salesforce Org
Save time & costs by not building your own solution - no value in building & maintaining commodity services

Heroku SummaryDeveloper driven deployment - using tools developers are used to using
Easy scaling to support your growth - scale quickly and easily view your usage
Save time & costs by building on Heroku services - reduce the operations effort and build innovate apps quickly

Try Heroku for yourself
Learn more at: http://heroku.com/
Getting started with Heroku guides: http://developers.salesforce.com
