Agenda
1. Introduction to Heroku Enterprise
2. Backup
3. Archiving
4. Business Continuity
5. Data Processing
6. Q&A
Introduction to Heroku Enterprise
Build Apps Deliver customized, scalable apps; seamlessly connect to Salesforce data
Accelerate Development Build collaboratively, with support for the latest frameworks and languages (java, ruby, node.js)
Increase Control Rely on a managed, trusted and secure architecture, with enterprise grade controls
Increase Innovation Decrease time to market – no need to spend time on infrastructure – get further, faster.
Reduce Operational Overhead Fully supported platform – low operational overhead – we wear the pager.
Build faster with enterprise trust and control
Heroku Enterprise Is Proven and Trusted “We rely on Heroku as the platform for mission-critical apps, and it is helping us transform how we connect and engage with our customers.” - Pierre Masai , CIO, Toyota Motor Europe
9 Billion Requests per day
5+ Million Apps Created
Introduction to Heroku Enterprise Platform components to build Salesforce Data solutions
Compute Containers
Heroku Dynos
Deploy fast and without friction, run almost any code at scale.
Data Services
Heroku Postgres
Enterprise-grade Postgres –managed service with high availability.
Salesforce Synchronisation
Heroku Connect
Heroku and Salesforce Data Synchronisation – click to configure.
Heroku Connect
Users select objects and fields from a Salesforce Org for synchronisation to Heroku Postgres.
Heroku Connect creates and maintains a schema inside Postgres for the Salesforce Org.
Salesforce -> Postgres: Org = Schema Object = Table Field = Column
Salesforce Org
Object
Object
Object
Object
Schema
Table
Table
Table
Heroku Postgres
Heroku External Objects and Salesforce Connect
• Heroku Connect provides an oData provider for the Heroku Postgres database
• Used in tandem with Salesforce Connect, the feature permits data in a Heroku Postgres database to be represented as External Objects in a Salesforce Org
• Point and click configuration of the database tables to share
• Access Heroku Postgres using other oData consumers
Work with data in Heroku Postgres from within Salesforce
Optional (depending on requirements)
Backup
*This isn’t out of the box – the Management Dashboard would require implementation
Salesforce Org Heroku Postgres
Snapshots
Heroku Connect
Management Dashboard*
Backup
• Use Heroku Connect to synchronise data from Salesforce to Heroku Postgres
• Configuration of synchronisation is performed with clicks, not code
• Synchronisation frequency can be configured – from 1 hour down to near-realtime*
• Data in Heroku Postgres is stored encrypted at rest • Data that uses encryption within Salesforce needs some consideration – review the encryption
needs of your data to define the right approach
• In it’s standard form, Heroku Postgres now acts as a near-time backup of the data ‘as-is’
• Simple processes can move data into backup tables and filter delete operations
• Easily take snapshots of the Postgres database for long term storage
* Synchronisation frequency will depend on configuration and the volume of data – it’s best to expect a latency of at least 30s – it is not realtime
Backup – Restoring Data
• Restore type • Full
• Partial
• Partial restores • Where the object with a matching SFID still exists a simple dashboard could provide the ability to
select records and update in Salesforce with the data from the backup tables
• Where the object no longer exists consideration needs to be given to SFIDs – a process would need to run to resolve foreign keys and maintain referential integrity
• Full restores • Are hard to do due to the SFID constraints – inserting new records to Salesforce creates new SFIDs
and processing would need to be done to maintain integrity; this is a similar process to a partial restore – but on a much larger scale
Backup – Summary
• Good for.. • Simple to configure near real-time reference backup
• Simple to configure snapshots of point in time data
• Storing backups for compliance reasons
• OK for.. • Partial restore of data with caveats around SFID maintenance
• Not great for.. • Full restore of data from a backup – need to manage referential integrity with new SFIDs
Archive
• Use Heroku Connect to synchronise data from Salesforce to Heroku Postgres
• Configuration of synchronisation is performed with clicks, not code
• Synchronisation frequency can be configured – from 1 hour down to near-realtime*
• Data in Heroku Postgres is stored encrypted at rest – consider Salesforce encryption just as for the backup use-case
• Define a set of archiving criteria – there are a number of options on how to achieve this
• Externalise the archived data back to Salesforce using Heroku External Objects and Salesforce Connect; access archived data from other systems
• Requires some implementation to define archiving criteria and processes – either roll your own, or use one of our Partners that have this pre-baked
* Synchronisation frequency will depend on configuration and the volume of data – it’s best to expect a latency of at least 30s – it is not realtime
Archive - Considerations
• What objects need to be archived and what relationships do those objects have?
• Do I need to see archived records in Salesforce?
• When do I want to archive and which records should I archive? • On demand vs scheduled
• Does this configuration need to be flexible over time?
• Do I need to unarchive? When and how should I unarchive?
• Do I need to auto archive/unarchive related objects?
• How do I maintain relationships between live and archived records?
Archive – Partner Solution
Salesforce Connect
Web Services
Archive & Unarchive Calls
Stored Procedures
External Objects
Sync
Postgres
Heroku Connect
Heroku App
Processing
Bi-directional Sync
Odata API
Archive – Summary
• Good for.. • Archiving data to reduce bloat in a Salesforce Org
• Externalise data back into Salesforce – retain access to archived data
• Partner solutions available to make archiving process easy to implement and maintain
• Combine with backup snapshots to retain data long term – archive data for compliance reasons
• Large data volumes – Heroku can scale
• Exposing data to other systems
• Not great for.. • Small volumes of data – the components required to implement archiving make more sense at
scale
Building Apps – The Heroku Developer Experience A superior developer experience, with features designed for innovation, focus, and flow
Github integration
Simple scaling, resource allocation and app management from Heroku Dashboard
Heroku Metrics for real-time insight and performance tuning
One-click data cloning and data rollbacks, built-in encryption at rest
Dataclips for simple and instant reporting
Powerful command line tools
Heroku Button for instant deploy of over 800 open source templates
* Currently in Beta
*
Run Heroku Services in a Secure Managed Environment Build apps with the most demanding requirements and full manageability
Private Network Network isolated runtime Network access controls Trusted connections Private Data Services Heroku Postgres – with managed EX Heroku Redis – with managed E Global Regions Americas (Virginia, Oregon) Europe (Frankfurt) Asia Pacific (Tokyo)
Business Continuity
• Use Heroku Connect to synchronise data from Salesforce to Heroku Postgres
• Configuration of synchronisation is performed with clicks, not code
• Synchronisation frequency can be configured – from 1 hour down to near-realtime*
• Data in Heroku Postgres is stored encrypted at rest • For business continuity the decryption requirement will depend on use-case – if data needs to be
accessed from the Heroku layer, it will need to be stored in an accessible format
• Heroku Postgres now provides an asynchronous copy of the selected org data
• This data can be accessed and manipulated and will be updated in Salesforce once available
• Build apps to allow users to access and work with the data to allow business to continue
* Synchronisation frequency will depend on configuration and the volume of data – it’s best to expect a latency of at least 30s – it is not realtime
Business Continuity
*Apps aren’t provided ‘out of the box’ – they would require simple implementation of an interface to work with the data
Salesforce Org Heroku Postgres
Heroku Connect
Data Access App Data Access App
Business Continuity – Summary
• Good for.. • Providing access to work with data when Salesforce is not available
• Subset of Salesforce data is are high value to ensure continued access
• Not great for.. • Full organisation synchronisation for business continuity purposes – would likely be a lot of effort
to implement
• Versus Org-Sync • Can be ‘always-on’ – no technical switchover period
• Likely for a smaller subset of organisation data
• Consider cost and user experience
Data Processing
• Use Heroku Connect to synchronise data from Salesforce to Heroku Postgres
• Configuration of synchronisation is performed with clicks, not code
• Synchronisation frequency can be configured – from 1 hour down to near-realtime
• Data in Heroku Postgres is stored encrypted at rest
• Heroku Postgres provides an asynchronous copy of the selected org data
• This data can be accessed and manipulated within the Heroku layer – and synchronised back to Salesforce automatically with Heroku Connect
• Build data processing apps to allow users and processes to access and work with the data • Process Salesforce data with the Heroku elastic runtime – large volume data processing
• Build apps that allow suppliers, partners, customers or any audience work on a common set of data
* Synchronisation frequency will depend on configuration and the volume of data – it’s best to expect a latency of at least 30s – it is not realtime
Heroku
Data Processing Process data within Heroku – seamlessly synchronise back to Salesforce
Canvas (optional)
Heroku Data
Heroku Application Layer
UI in Salesforce
Ap
ps
Processing
Persistence
Heroku Connect (Long-term Data/Cases/Events/Notifications)
Real-time Processing
Intelligence
Sync External Objects
Data Processing - Summary
• Good for.. • Processing large volumes of data free of governor and API limits
• Integrating with external services to enrich data
• Synchronise result set or expose processed data as external objects
• Consolidate data – keep only valuable data in Salesforce
• Expose data to external services like BI/Analytics
• Not great for.. • Multi-org sync – we have people doing it, but it requires a lot of effort to implement
• Be aware.. • Implementation required – will need the services of a Partner or in-house development team