Heroku Introduction: Scaling customer facing apps & services

982 views
885 views

Published on

An introduction to Heroku, the Platform as a Service from Salesforce for all your customer facing applications.

Discover how to get going with the Heroku platform and additional services you can use to speed up the deployment of your custom application.

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
982
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
46
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Apps obviously require infrastructure to run on and someone needs to commission and manage that infrastructure. The infrastructure needs to be established quickly to meet growth in the business and deliver a level of trust through reliability and security.Which parts of managing your own infrastructure provides value or can be done so more effectively than service providers?Can you provide an easy way to consume this infrastructure whist keeping the flexibility of a traditional server?
  • Apps obviously require infrastructure to run on and someone needs to commission and manage that infrastructure. The infrastructure needs to be established quickly to meet growth in the business and deliver a level of trust through reliability and security.Which parts of managing your own infrastructure provides value or can be done so more effectively than service providers?Can you provide an easy way to consume this infrastructure whist keeping the flexibility of a traditional server?
  • Apps obviously require infrastructure to run on and someone needs to commission and manage that infrastructure. The infrastructure needs to be established quickly to meet growth in the business and deliver a level of trust through reliability and security.Which parts of managing your own infrastructure provides value or can be done so more effectively than service providers?Can you provide an easy way to consume this infrastructure whist keeping the flexibility of a traditional server?
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • The deployment version is taken from the Git commit number
  • use environment variables to configure database connections, etc.
  • Team deployment around Heroku, using Github as an example of how to collaborate on code effectively.Heroku do not recommend using the HerokuGit repository as the canonical source code repository.
  • Team deployment around Heroku, using Github as an example of how to collaborate on code effectively.Heroku do not recommend using the HerokuGit repository as the canonical source code repository.
  • You can manage your 3rd party relationships at the code and app level easilyYou can selectively give scaling access to people in the org, so that 3rd party developers can only push and scale specific apps
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Build scripts provide a standard way to deploy your apps over and over again. Every time you push to heroku a new environment is created
  • Some advanced user roles are planned for Heroku Orgs
  • Apps in an HerokuOrganisation can be locked to prevent collaborators joining without being invited by the current collaborators.
  • You can manage your 3rd party relationships at the code and app level easilyYou could set up an Heroku Org with another company and share services at the app level. You could publish apps to the Org and selectively give access to the 3rd party you are working with. Or just allow the 3rd party to publish their apps within the org.Or you could do the reverse. The 3rd party owns the org and you can push any commodity apps and services to them easily.
  • . By abstracting away the infrastructure, Heroku lets developers focus on their application and not on servers. Using known tools like Git and the command line, developers can instantly and continuously deploy their application to the cloud. By leveraging a broad catalog of add-ons, developers can accelerate their development and quickly add features to their applications.A simplified definition of resourcesRuns one or more application processesRequires no patching or other maintenance a typical (virtual) server would need
  • . By abstracting away the infrastructure, Heroku lets developers focus on their application and not on servers. Using known tools like Git and the command line, developers can instantly and continuously deploy their application to the cloud. By leveraging a broad catalog of add-ons, developers can accelerate their development and quickly add features to their applications.A simplified definition of resourcesRuns one or more application processesRequires no patching or other maintenance a typical (virtual) server would need
  • . By abstracting away the infrastructure, Heroku lets developers focus on their application and not on servers. Using known tools like Git and the command line, developers can instantly and continuously deploy their application to the cloud. By leveraging a broad catalog of add-ons, developers can accelerate their development and quickly add features to their applications.A simplified definition of resourcesRuns one or more application processesRequires no patching or other maintenance a typical (virtual) server would need
  • Every HerokuDyno is recycled every 24 hours. This ensures any patches or upgrades to the underlying system (eg. OS) are applied.If there is a problem with the process running on a dyno, eg. It fails to respond in a timely manor or consumes all its memory then a new dyno is created from the current application slug and requests are routed to this new dyno. The existing dyno is asked to kill its running processes gracefully and is then decommissioned.Creating a new dyno from an application slug is almost instantaneous, however your application process may take a few seconds to start up. The quicker your application starts the sooner your new dyno is able to handle requests.
  • Heroku can give you an almost instantaneous rollback, without the need for a new deployment. You can view all the previous releases of your app on Heroku from the command line using heroku releases. You can see the details of each release to help you determine the release to roll back to.Once you have choses the most appropriate release to roll back to, the command herokurleases: rollback number will create a new deployment from the slug already created from the version number release you specified. This slug was stored in local storage (relative to your app deployment – an Amazon S3 bucket). This slug creates a new release version.This approach gives you a fast way to back out of a error-prone app deployment. It does not take care of any database rollback, so you may want to put your app in maintenance mode. This approach also does not fix the error for you. So if there is an issue with the code, you should fix it and check that code fix into Git and push it up to the Heroku repository to create a new deployment version (version 23).
  • Heroku can give you an almost instantaneous rollback, without the need for a new deployment. You can view all the previous releases of your app on Heroku from the command line using heroku releases. You can see the details of each release to help you determine the release to roll back to.Once you have choses the most appropriate release to roll back to, the command herokurleases: rollback number will create a new deployment from the slug already created from the version number release you specified. This slug was stored in local storage (relative to your app deployment – an Amazon S3 bucket). This slug creates a new release version.This approach gives you a fast way to back out of a error-prone app deployment. It does not take care of any database rollback, so you may want to put your app in maintenance mode. This approach also does not fix the error for you. So if there is an issue with the code, you should fix it and check that code fix into Git and push it up to the Heroku repository to create a new deployment version (version 23).
  • Heroku has over 100 services and datastores available via addons.heroku.com
  • I am unsure if the command “herokupg:wait”
  • Click on the names of the addons in order to configure them. So co start using Heroku1 Connect, click on the herokuconnectaddon name.(Note: this screenshot was taken before the application was deployed)
  • This is the first pop-up dialog you see when you click on the herokuconnectaddon in your Apps heroku dashboard (see previous slide).
  • There are two rows of data (records) in the Salesforce Org for Plant. As soon as the mapping is complete, Heroku1 connect will synchronise the data (at least that is what it seems like happens).Note that when viewing the Activity dashboard then Heroku1 connect will synchronise all changes every 3 minutes, rather than the default 10 minutes.Customers are requesting to be able to configure the time duration between synchronisation from within the dashboard settings.
  • You can still access your HerokuPostgress database using the typical developer tooling, eg. Postress Admin (pictured), Postgres command line shell, etc.
  • Heroku Introduction: Scaling customer facing apps & services

    1. 1. Introduction to Heroku Scaling Customer facing apps and services
    2. 2. 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 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.
    3. 3. Apps Require Infrastructure This is what the Salesforce Data Centers provide for Salesforce Orgs Servers Networking Operations
    4. 4. Apps Require Infrastructure What if a customer wants to deliver apps outside of their Salesforce Org ? Servers Networking Operations
    5. 5. Apps Require Infrastructure Servers Networking Operations Managing your own Data Center is expensive Provisioning Servers is often a bottleneck, even when they are virtualised
    6. 6. Heroku: The Developers Choice “Heroku lets us focus on our app and deliver more value to customers.” – Aaron Peckham, Urban Dictionary
    7. 7. Example apps on Heroku Retail Media Marketing Campaigns Customer & Web Sites E-Commerce & Media Mobile & SaaS Apps App Portfolios success.heroku.com
    8. 8. 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
    9. 9. 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
    10. 10. Proven Success 5 Billion Requests 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
    11. 11. 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
    12. 12. Free Developer Environment Using only 1 dyno for your Heroku App is free - Your app will sleep after 1 hour of inactivity
    13. 13. What is Heroku? Database Enterprise grade Postgres as a service Add-ons Marketplace for data stores and app services Dynos Run virtually any language at any scale Everything you need to build, run and scale customer apps
    14. 14. Connected easy linking of the Heroku Postgres database driving your apps with your Salesforce Org Transforming customer data translated into business applicable information Managed 2-way synchronization of high volumes of data at a sustainable rate Heroku1 Connect Heroku & Force.com
    15. 15. Heroku: Technical Overview
    16. 16. Heroku core language support Ruby, Java, NodeJS & Python Virtually every language you can think of is supported by community buildpacks https://devcenter.heroku.com/articles/third-party-buildpacks
    17. 17. Developer driven deployment Deploy using Git version control - the most popular software versioning tool for developers git push heroku master
    18. 18. Continuous Deployment Easy to deploy changes, so developers deploy smaller changes more often - quickly understand the value of software you create
    19. 19. Consistent Deployment Build scripts ensure that the entire environment is built in the same way git push heroku master
    20. 20. Consistent Deployment Creating an Heroku app provides a placeholder for your app heroku create app-name --region us|eu
    21. 21. Consistent Deployment Pushing code to Heroku creates brand new infrastructure git push heroku master
    22. 22. Heroku Demo Time Demo Gods, please by kind
    23. 23. Traceable deployment Every deployment is traceable to the exact code version in your Git repository git log --graph --oneline --decorate
    24. 24. Traceable deployment Heroku dashboard shows your deployment versions
    25. 25. Repeatable deployment You app is deployed from the code in your Git repository git push my-app-test master git push my-app-staging master Establish a complete set of consistent environments to support your development
    26. 26. Consistent Environments Buildpacks ensure consistency across environment setups Test Environment Staging Environment Production Environment Environment variables used for specific database connections, services, etc.
    27. 27. Collaborative deployment Using Git is an effective way for developers and teams to collaborate around projects
    28. 28. Heroku Orgs for apps oversight and collaboration
    29. 29. Heroku Orgs Manage all your applications under one organisation heroku create app-name --org org-name
    30. 30. Heroku Orgs Resource Management
    31. 31. Creating an Heroku Org
    32. 32. Heroku Orgs
    33. 33. Manage your apps in one place
    34. 34. Controlling access to Org Apps
    35. 35. Controlling access to Org Apps
    36. 36. 3rd Party Orgs Manage access to applications under one organisation - 3rd party developers can be limited to specific apps
    37. 37. Scaling your apps on Heroku
    38. 38. Scaling your apps on Heroku Dynos can be spun up on demand, scaling resources almost instantaneously heroku ps:scale web=10 heroku ps:scale web=0 Dynos can also be scaled down instantaneously when not needed
    39. 39. Scaling your apps on Heroku Dynos can run different processes, enabling fine grain scaling heroku ps:scale web=10 heroku ps:scale background=3 Heroku ps:scale queue=1 Web processes listen to http[s] requests, other are background processes
    40. 40. Scaling your apps on Heroku
    41. 41. Performance Dynos - Px Have 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
    42. 42. Performance Dynos - Px https://blog.heroku.com/archives/2014/2/3/heroku-xl
    43. 43. Managing your apps on Heroku
    44. 44. Troubleshooting your app Heroku Logplex gives a unified log to find the real root cause of issues heroku logs
    45. 45. Managing Heroku infrastructure Dynos 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 Current Slug
    46. 46. Production access without the risk Connect via secure shell to a copy of your Production app Temporary dyno Production dyno heroku run bash Current Slug
    47. 47. Production access without the risk
    48. 48. Heroku Production Health Check Quickly review your app to ensure it is configured to be used in production
    49. 49. status.heroku.com
    50. 50. status.heroku.com
    51. 51. Fast Rollbacks Roll-forward a previously working deployment - allowing time to fix the root cause of a deployment issue Roll-forward dyno Version 22 (cloned from v20) Production Dyno Version 21 heroku releases heroku releases:info 20 Heroku releases:rollback 20
    52. 52. Fast Rollbacks You can see your release history via the command line or the Heroku dashboard
    53. 53. Boosting app development with Heroku add-ons
    54. 54. Largest Paas Marketplace Developer-focused add- ons allow you to provision datastores & services on demand
    55. 55. Heroku Postgres
    56. 56. Heroku Postgres Services
    57. 57. New Relic – end 2 end monitoring
    58. 58. Hirefire – auto-scaling
    59. 59. Building Scalable apps
    60. 60. 12 Factor App Even 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.
    61. 61. Heroku1 Connect In action Automated syncronisation between Heroku Postgress and your Salesforce Org www.heroku.com/1
    62. 62. Heroku1 Connect Heroku Salesforce Org Auto synchronization of data Customer facing App / website Customer data captured Understanding about your customers Turn customer interaction to valuable business insight
    63. 63. Add Heroku Postgres to your App
    64. 64. Adding the Heroku1 Connect addon to your App
    65. 65. Your app on the Heroku Dashboard
    66. 66. Choosing an Heroku Postgress Database
    67. 67. Authorising access to your Salesforce Org
    68. 68. Your Heroku1 Connect Dashboard
    69. 69. Choose a Salesforce Object for Syncronisation
    70. 70. Example: Selecting a Plant object
    71. 71. Choosing Fields to sync on the Salesforce Object
    72. 72. Example: Selecting Plant fields to synchronize
    73. 73. Summary of Object Fields to be synchronised
    74. 74. Your mapped objects
    75. 75. First Sync happens as soon as an object is mapped
    76. 76. Viewing your Database configuration
    77. 77. Pause & Resume Sync’ing
    78. 78. Developer tools can access your Heroku Postgress Database
    79. 79. Heroku1 Connect Summary Get 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
    80. 80. Heroku Summary Developer 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
    81. 81. Try Heroku for yourself Learn more at: http://heroku.com/ Getting started with Heroku guides: http://developers.salesforce.com

    ×