SlideShare a Scribd company logo
1 of 18
Dev Stack – Building Connected
Salesforce Apps using Portable
Local Repos
Tanner Ellen
Lead Developer
@tannerellen
DayBack.com
Background
● Front-end developer at dayback.com
● Canvas app using Angular JS
● https://github.com/seedcode/canvas-starter-kit
○ Jason Young will be speaking about this at
Dreamforce
The Original Setup
● Stand alone web server with SSL certificate
○ Limited code sharing
○ Creates versioning headaches
○ Hard to test code changes as you develop
○ Who maintains the servers?
○ Matching production and SSL isn’t easy
The Challenge
● Wanted a way to develop locally
○ Test changes quickly
○ In multiple branches
○ Share between developers
○ Easily move to different computers
○ Allow developers to use preferred editors
The Solution
● Vagrant is key
● Beauty is in the details, and there are a lot of them
● https://github.com/seedcode/vagrant-base-config
Demo Time
● “Vagrant Up”
● Changes to code show up immediately
● Test locally with custom host name
● Test in Salesforce with custom domain name
● ngrok when port forwarding isn’t practical
Getting Started
● Copy Vagrant-Base-Config contents to project folder
● Modify config in Vagrantfile
○ Change ports, IP address, hostname, and name
○ Collisions will auto-correct but I like to define them
● In Terminal navigate to the vagrant folder
○ vagrant up
What can we do at this point?
● Code and test locally with custom host name
● Build and deploy with grunt or gulp
● Unit testing or other software dev processes
● Config is in source control, consistency for all devs
What about Salesforce?
● Salesforce needs access from over the WAN
○ Use a FQDN (Fully qualified domain name)
○ I like CloudFlare for managing DNS
● Port forwarding is easy to set up and free
○ Need router access
○ Dynamic IP’s can make this difficult to use
ngrok To The Rescue!
● Creates a secure tunnel to your computer
○ Don’t need router access like port forwarding
○ Map to custom domain with paid plan
○ Can use anywhere, even tethered with phone
○ Other useful features, captured requests, replay
● Let’s create an http tunnel
Salesforce Craves HTTPS!
● Production canvas apps require HTTPS
● OAuth won’t work over HTTP
● Your browser will nag you if not HTTPS
● Salesforce Docs tell us to use HTTPS
OK, Let’s Do It With Let’s Encrypt!
● vagrant ssh
○ cd /vagrant
○ npm install (if not done already)
○ grunt ssl:<email>:<domain>
● Now let’s open an https tunnel with ngrok
A Bit About Let’s Encrypt
● Certificates are valid for 90 days
● Renewals can be automated with a CRON job
● Limits 20 certificate requests per domain per week
● 100% free
● Can also be used in production
What Can We Do Now?
● All the things!
○ Salesforce can access your computer over HTTPS
○ Allows you to code locally and test in a dev org
○ Code never leaves version control
○ Development team has consistency
○ Dev matches production
○ Code from anywhere in the world
Helpful Links
● VirtualBox: https://www.virtualbox.org
● Vagrant: https://www.vagrantup.com
● Vagrant Plugins: http://bit.ly/1lIDarz
● CloudFlare: https://www.cloudflare.com
● ngrok: https://ngrok.com/
● PageKite (ngrok alternative): https://pagekite.net/
● Let’s Encrypt: https://letsencrypt.org
Q&A
Thank you!

More Related Content

What's hot

Writing power shell the right tool for the job
Writing power shell   the right tool for the jobWriting power shell   the right tool for the job
Writing power shell the right tool for the jobJaap Brasser
 
Secure your environment by automation
Secure your environment by automationSecure your environment by automation
Secure your environment by automationJaap Brasser
 
Overview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysisOverview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysisMichael Bryzek
 
Building Extensions in VSTS and TFS
Building Extensions in VSTS and TFSBuilding Extensions in VSTS and TFS
Building Extensions in VSTS and TFSJeff Bramwell
 
Using REST with VSTS and TFS
Using REST with VSTS and TFSUsing REST with VSTS and TFS
Using REST with VSTS and TFSJeff Bramwell
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure WorldAdvancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure WorldPronovix
 
Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...AndrewMagerman
 
Building your own JEA Configuration
Building your own JEA ConfigurationBuilding your own JEA Configuration
Building your own JEA ConfigurationJaap Brasser
 
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens  SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens Sencha
 
Lessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation systemLessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation systemPronovix
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresRodolfo Finochietti
 
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHEREECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHEREEuropean Collaboration Summit
 
O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...
O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...
O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...NCCOMMS
 
Orchestrator for QlikView: add-on product description
Orchestrator for QlikView: add-on product descriptionOrchestrator for QlikView: add-on product description
Orchestrator for QlikView: add-on product descriptionMarco Zampieri
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOpsUsing Chat Automation - ChatOps
Using Chat Automation - ChatOpsJaap Brasser
 
Integration Testing with Selenium
Integration Testing with SeleniumIntegration Testing with Selenium
Integration Testing with SeleniumAll Things Open
 
Building autonomous components with OWIN, PSake, NuGet, GitVersion and Swagger
Building autonomous components with OWIN, PSake, NuGet, GitVersion and SwaggerBuilding autonomous components with OWIN, PSake, NuGet, GitVersion and Swagger
Building autonomous components with OWIN, PSake, NuGet, GitVersion and SwaggerDennis Doomen
 
JS digest. November 2017
JS digest. November 2017JS digest. November 2017
JS digest. November 2017ElifTech
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIsAllen Dean
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure FunctionsJaap Brasser
 

What's hot (20)

Writing power shell the right tool for the job
Writing power shell   the right tool for the jobWriting power shell   the right tool for the job
Writing power shell the right tool for the job
 
Secure your environment by automation
Secure your environment by automationSecure your environment by automation
Secure your environment by automation
 
Overview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysisOverview of modern software ecosystem for big data analysis
Overview of modern software ecosystem for big data analysis
 
Building Extensions in VSTS and TFS
Building Extensions in VSTS and TFSBuilding Extensions in VSTS and TFS
Building Extensions in VSTS and TFS
 
Using REST with VSTS and TFS
Using REST with VSTS and TFSUsing REST with VSTS and TFS
Using REST with VSTS and TFS
 
Advancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure WorldAdvancing Your API Strategy in an Infrastructure World
Advancing Your API Strategy in an Infrastructure World
 
Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...
 
Building your own JEA Configuration
Building your own JEA ConfigurationBuilding your own JEA Configuration
Building your own JEA Configuration
 
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens  SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
 
Lessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation systemLessons learned: Choosing your documentation system
Lessons learned: Choosing your documentation system
 
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladoresQue hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
 
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHEREECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
ECS19 - Daniel Neumann - AZURE FUNCTIONS 2.0 - RUNNING SERVERLESS EVERYWHERE
 
O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...
O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...
O365Con18 - Implementing Automated UI Testing for SharePoint Solutions - Elio...
 
Orchestrator for QlikView: add-on product description
Orchestrator for QlikView: add-on product descriptionOrchestrator for QlikView: add-on product description
Orchestrator for QlikView: add-on product description
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOpsUsing Chat Automation - ChatOps
Using Chat Automation - ChatOps
 
Integration Testing with Selenium
Integration Testing with SeleniumIntegration Testing with Selenium
Integration Testing with Selenium
 
Building autonomous components with OWIN, PSake, NuGet, GitVersion and Swagger
Building autonomous components with OWIN, PSake, NuGet, GitVersion and SwaggerBuilding autonomous components with OWIN, PSake, NuGet, GitVersion and Swagger
Building autonomous components with OWIN, PSake, NuGet, GitVersion and Swagger
 
JS digest. November 2017
JS digest. November 2017JS digest. November 2017
JS digest. November 2017
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
 
Automate it with Azure Functions
Automate it with Azure FunctionsAutomate it with Azure Functions
Automate it with Azure Functions
 

Viewers also liked

Forcelandia 2016 Wave App Development
Forcelandia 2016   Wave App DevelopmentForcelandia 2016   Wave App Development
Forcelandia 2016 Wave App DevelopmentSkip Sauls
 
Forcelandia 2016 PK Chunking
Forcelandia 2016 PK ChunkingForcelandia 2016 PK Chunking
Forcelandia 2016 PK ChunkingDaniel Peter
 
DayBack at Dreamforce 2016
DayBack at Dreamforce 2016DayBack at Dreamforce 2016
DayBack at Dreamforce 2016SeedCode
 
Мобильное рабочее место руководителя
Мобильное рабочее место руководителяМобильное рабочее место руководителя
Мобильное рабочее место руководителяSoloten
 
бодовнA листa интерних активности стручног усавршавања
бодовнA листa интерних активности стручног усавршавањабодовнA листa интерних активности стручног усавршавања
бодовнA листa интерних активности стручног усавршавањаmkaseric
 
SoloDelivery
SoloDeliverySoloDelivery
SoloDeliverySoloten
 
CSR & HR - Presentation Jordi Lesaffer
CSR & HR - Presentation Jordi LesafferCSR & HR - Presentation Jordi Lesaffer
CSR & HR - Presentation Jordi LesafferEChr
 
Power point lesson_5_prep_g
Power point lesson_5_prep_gPower point lesson_5_prep_g
Power point lesson_5_prep_gbluepool
 
Desenvolvimento de Comunidade Rural na Roménia - Denise Deshaies
Desenvolvimento de Comunidade Rural na Roménia - Denise DeshaiesDesenvolvimento de Comunidade Rural na Roménia - Denise Deshaies
Desenvolvimento de Comunidade Rural na Roménia - Denise DeshaiesPROUTugal
 
Desigualdades e Desastre Económico – Novas Evidências - Mark Friedman
Desigualdades e Desastre Económico – Novas Evidências - Mark FriedmanDesigualdades e Desastre Económico – Novas Evidências - Mark Friedman
Desigualdades e Desastre Económico – Novas Evidências - Mark FriedmanPROUTugal
 
Solo Docs
Solo DocsSolo Docs
Solo DocsSoloten
 
Re-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira Alves
Re-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira AlvesRe-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira Alves
Re-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira AlvesPROUTugal
 
Passive voice by aliona antonevic
Passive voice by aliona antonevicPassive voice by aliona antonevic
Passive voice by aliona antonevicAntonevic
 
Presentation summative task
Presentation   summative taskPresentation   summative task
Presentation summative taskbluepool
 
Solowords
SolowordsSolowords
SolowordsSoloten
 
Biographies
BiographiesBiographies
Biographiesab8179
 
Presentation Example
Presentation ExamplePresentation Example
Presentation Examplebluepool
 
SoloTours
SoloToursSoloTours
SoloToursSoloten
 
SoloTours
SoloToursSoloTours
SoloToursSoloten
 

Viewers also liked (20)

Forcelandia 2016 Wave App Development
Forcelandia 2016   Wave App DevelopmentForcelandia 2016   Wave App Development
Forcelandia 2016 Wave App Development
 
Heroku Demo
Heroku DemoHeroku Demo
Heroku Demo
 
Forcelandia 2016 PK Chunking
Forcelandia 2016 PK ChunkingForcelandia 2016 PK Chunking
Forcelandia 2016 PK Chunking
 
DayBack at Dreamforce 2016
DayBack at Dreamforce 2016DayBack at Dreamforce 2016
DayBack at Dreamforce 2016
 
Мобильное рабочее место руководителя
Мобильное рабочее место руководителяМобильное рабочее место руководителя
Мобильное рабочее место руководителя
 
бодовнA листa интерних активности стручног усавршавања
бодовнA листa интерних активности стручног усавршавањабодовнA листa интерних активности стручног усавршавања
бодовнA листa интерних активности стручног усавршавања
 
SoloDelivery
SoloDeliverySoloDelivery
SoloDelivery
 
CSR & HR - Presentation Jordi Lesaffer
CSR & HR - Presentation Jordi LesafferCSR & HR - Presentation Jordi Lesaffer
CSR & HR - Presentation Jordi Lesaffer
 
Power point lesson_5_prep_g
Power point lesson_5_prep_gPower point lesson_5_prep_g
Power point lesson_5_prep_g
 
Desenvolvimento de Comunidade Rural na Roménia - Denise Deshaies
Desenvolvimento de Comunidade Rural na Roménia - Denise DeshaiesDesenvolvimento de Comunidade Rural na Roménia - Denise Deshaies
Desenvolvimento de Comunidade Rural na Roménia - Denise Deshaies
 
Desigualdades e Desastre Económico – Novas Evidências - Mark Friedman
Desigualdades e Desastre Económico – Novas Evidências - Mark FriedmanDesigualdades e Desastre Económico – Novas Evidências - Mark Friedman
Desigualdades e Desastre Económico – Novas Evidências - Mark Friedman
 
Solo Docs
Solo DocsSolo Docs
Solo Docs
 
Re-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira Alves
Re-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira AlvesRe-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira Alves
Re-desenhando um novo Paradigma para a ECOnomia - Filipe Moreira Alves
 
Passive voice by aliona antonevic
Passive voice by aliona antonevicPassive voice by aliona antonevic
Passive voice by aliona antonevic
 
Presentation summative task
Presentation   summative taskPresentation   summative task
Presentation summative task
 
Solowords
SolowordsSolowords
Solowords
 
Biographies
BiographiesBiographies
Biographies
 
Presentation Example
Presentation ExamplePresentation Example
Presentation Example
 
SoloTours
SoloToursSoloTours
SoloTours
 
SoloTours
SoloToursSoloTours
SoloTours
 

Similar to Tanner Ellen - Forcelandia 2016 - Dev Stack.pptx

Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...
Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...
Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...Serdar Basegmez
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by stepDaniel Fahlke
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesYshay Yaacobi
 
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than EverJava Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than EverStefan Schmidt
 
Bgoug 2019.11 building free, open-source, plsql products in cloud
Bgoug 2019.11   building free, open-source, plsql products in cloudBgoug 2019.11   building free, open-source, plsql products in cloud
Bgoug 2019.11 building free, open-source, plsql products in cloudJacek Gebal
 
What cloud changes the developer
What cloud changes the developerWhat cloud changes the developer
What cloud changes the developerSimon Su
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)Igalia
 
Introduction to Modern DevOps Technologies
Introduction to  Modern DevOps TechnologiesIntroduction to  Modern DevOps Technologies
Introduction to Modern DevOps TechnologiesKriangkrai Chaonithi
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowAnn Cascarano
 
Idi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessIdi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessLinuxaria.com
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless worldMatthias Luebken
 
Harnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platforHarnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platforLuke Summerfield
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowAnn Cascarano
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Kazuhiro Ogura
 
Hacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass FirewallsHacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass FirewallsNetsparker
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Dan Farrelly
 
Overview of SSL: choose the option that's right for you
Overview of SSL: choose the option that's right for youOverview of SSL: choose the option that's right for you
Overview of SSL: choose the option that's right for youCloudflare
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker composeLinkMe Srl
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Systems
 

Similar to Tanner Ellen - Forcelandia 2016 - Dev Stack.pptx (20)

Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...
Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...
Engage 2022: The Superpower of Integrating External APIs for Notes and Domino...
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by step
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than EverJava Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
Java Enterprise Applications in the Cloud: Fast, Fun and Easier than Ever
 
Bgoug 2019.11 building free, open-source, plsql products in cloud
Bgoug 2019.11   building free, open-source, plsql products in cloudBgoug 2019.11   building free, open-source, plsql products in cloud
Bgoug 2019.11 building free, open-source, plsql products in cloud
 
What cloud changes the developer
What cloud changes the developerWhat cloud changes the developer
What cloud changes the developer
 
You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)You Can Work on the Web Patform! (GOSIM 2023)
You Can Work on the Web Patform! (GOSIM 2023)
 
Introduction to Modern DevOps Technologies
Introduction to  Modern DevOps TechnologiesIntroduction to  Modern DevOps Technologies
Introduction to Modern DevOps Technologies
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress Workflow
 
Idi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean OpslessIdi2018 - Serverless does not mean Opsless
Idi2018 - Serverless does not mean Opsless
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
Harnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platforHarnessing the cloud_for_saa_s_hosted_platfor
Harnessing the cloud_for_saa_s_hosted_platfor
 
Node js for beginners
Node js for beginnersNode js for beginners
Node js for beginners
 
Go with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress WorkflowGo with the Flow - A Guide to a WordPress Workflow
Go with the Flow - A Guide to a WordPress Workflow
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)
 
Hacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass FirewallsHacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass Firewalls
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
 
Overview of SSL: choose the option that's right for you
Overview of SSL: choose the option that's right for youOverview of SSL: choose the option that's right for you
Overview of SSL: choose the option that's right for you
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 

Recently uploaded

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Tanner Ellen - Forcelandia 2016 - Dev Stack.pptx

  • 1. Dev Stack – Building Connected Salesforce Apps using Portable Local Repos Tanner Ellen Lead Developer @tannerellen DayBack.com
  • 2. Background ● Front-end developer at dayback.com ● Canvas app using Angular JS ● https://github.com/seedcode/canvas-starter-kit ○ Jason Young will be speaking about this at Dreamforce
  • 3.
  • 4. The Original Setup ● Stand alone web server with SSL certificate ○ Limited code sharing ○ Creates versioning headaches ○ Hard to test code changes as you develop ○ Who maintains the servers? ○ Matching production and SSL isn’t easy
  • 5. The Challenge ● Wanted a way to develop locally ○ Test changes quickly ○ In multiple branches ○ Share between developers ○ Easily move to different computers ○ Allow developers to use preferred editors
  • 6. The Solution ● Vagrant is key ● Beauty is in the details, and there are a lot of them ● https://github.com/seedcode/vagrant-base-config
  • 7. Demo Time ● “Vagrant Up” ● Changes to code show up immediately ● Test locally with custom host name ● Test in Salesforce with custom domain name ● ngrok when port forwarding isn’t practical
  • 8. Getting Started ● Copy Vagrant-Base-Config contents to project folder ● Modify config in Vagrantfile ○ Change ports, IP address, hostname, and name ○ Collisions will auto-correct but I like to define them ● In Terminal navigate to the vagrant folder ○ vagrant up
  • 9. What can we do at this point? ● Code and test locally with custom host name ● Build and deploy with grunt or gulp ● Unit testing or other software dev processes ● Config is in source control, consistency for all devs
  • 10. What about Salesforce? ● Salesforce needs access from over the WAN ○ Use a FQDN (Fully qualified domain name) ○ I like CloudFlare for managing DNS ● Port forwarding is easy to set up and free ○ Need router access ○ Dynamic IP’s can make this difficult to use
  • 11. ngrok To The Rescue! ● Creates a secure tunnel to your computer ○ Don’t need router access like port forwarding ○ Map to custom domain with paid plan ○ Can use anywhere, even tethered with phone ○ Other useful features, captured requests, replay ● Let’s create an http tunnel
  • 12. Salesforce Craves HTTPS! ● Production canvas apps require HTTPS ● OAuth won’t work over HTTP ● Your browser will nag you if not HTTPS ● Salesforce Docs tell us to use HTTPS
  • 13. OK, Let’s Do It With Let’s Encrypt! ● vagrant ssh ○ cd /vagrant ○ npm install (if not done already) ○ grunt ssl:<email>:<domain> ● Now let’s open an https tunnel with ngrok
  • 14. A Bit About Let’s Encrypt ● Certificates are valid for 90 days ● Renewals can be automated with a CRON job ● Limits 20 certificate requests per domain per week ● 100% free ● Can also be used in production
  • 15. What Can We Do Now? ● All the things! ○ Salesforce can access your computer over HTTPS ○ Allows you to code locally and test in a dev org ○ Code never leaves version control ○ Development team has consistency ○ Dev matches production ○ Code from anywhere in the world
  • 16. Helpful Links ● VirtualBox: https://www.virtualbox.org ● Vagrant: https://www.vagrantup.com ● Vagrant Plugins: http://bit.ly/1lIDarz ● CloudFlare: https://www.cloudflare.com ● ngrok: https://ngrok.com/ ● PageKite (ngrok alternative): https://pagekite.net/ ● Let’s Encrypt: https://letsencrypt.org
  • 17. Q&A

Editor's Notes

  1. Single speaker Title Slide
  2. Single speaker Title Slide
  3. General content slide
  4. Single speaker Title Slide
  5. Single speaker Title Slide
  6. Single speaker Title Slide
  7. Single speaker Title Slide
  8. Single speaker Title Slide
  9. Single speaker Title Slide
  10. Single speaker Title Slide
  11. Single speaker Title Slide
  12. Single speaker Title Slide
  13. Single speaker Title Slide
  14. Single speaker Title Slide
  15. Single speaker Title Slide
  16. Single speaker Title Slide