SlideShare a Scribd company logo
1
Lessons learned from using
Firebase in Production
Maik Buchmeyer
@mediavrog
CTO @ AIR at en-japan
https://air.en-japan.io
2
Intro
Innovation arm of en-japan since 2014
Digitalise en-japans service portfolio
Innovate in HR using modern technology
CTO at AIR
Creator, love side projects
Suica and IC Card reader
3
Agenda
1. What is Firebase?
2. About Video Interview
3. Service Architecture
4. Lessons learned
5. Q&A
4
What is Firebase?
5
Mobile Application
Development Platform
What is Firebase?
6
GrowAnalytics
Develop Quality
In 2018
What is Firebase?
7
Gets a lot of love
as well as critique*
and everything in between.
* recently less so
Firebase
8
Why chose
Firebase?
“Focus on providing value”
● Start low cost but able to scale
● Performance and Availability
● Infrastructure, Auth, API,
common app features
out of the box
9
VideoInterview.io
10
Video Interviewing Platform
About Video Interview
11
Released Aug. 2017
> 500 company accounts
~ 100 interviews / month
About Video Interview
12
Service Architecture
13
Integration C
(Optional) Hosting
Integration B
Service Architecture
media storage
transcoding pipeline
iOSWebWeb
Recruiter Candidate
raw
video
HLS
video
Realtime Database
Main app database
Light file storage
(profile images, logos)
Main (d/s/p)
“Backend”
(Mails, HTTP API.)
Candidate (d/s/p)
Hosting CDN
Dashboard
Hosting CDN
d/s/p: development / staging / production environments
Integration A
(Optional) Hosting
HTTP API
3rd Parties
A B C
Admin
(read only) Web
auth
Hosting CDN
web socket connections via
Firebase Web & iOS SDKs
...
url
Media
upload
request
Media
upload
14
Integration C
(Optional) Hosting
Integration B
Service Architecture
media storage
transcoding pipeline
iOSWebWeb
Recruiter Candidate
raw
video
HLS
video
Realtime Database
Main app database
Light file storage
(profile images, logos)
Main (d/s/p)
“Backend”
(Mails, HTTP API.)
Candidate (d/s/p)
Hosting CDN
Dashboard
Hosting CDN
d/s/p: development / staging / production environments
Integration A
(Optional) Hosting
HTTP API
3rd Parties
A B C
Admin
(read only) Web
auth
Hosting CDN
web socket connections via
Firebase Web & iOS SDKs
...
url
Media
upload
request
Media
upload
15
Integration C
(Optional) Hosting
Integration B
Service Architecture
media storage
transcoding pipeline
iOSWebWeb
Recruiter Candidate
raw
video
HLS
video
Realtime Database
Main app database
Light file storage
(profile images, logos)
Main (d/s/p)
“Backend”
(Mails, HTTP API.)
Candidate (d/s/p)
Hosting CDN
Dashboard
Hosting CDN
d/s/p: development / staging / production environments
Integration A
(Optional) Hosting
HTTP API
3rd Parties
A B C
Admin
(read only) Web
auth
Hosting CDN
...
url
Integration B
C
16
Integration C
(Optional) Hosting
Integration B
Service Architecture
media storage
transcoding pipeline
iOSWebWeb
Recruiter Candidate
raw
video
HLS
video
Realtime Database
Main app database
Light file storage
(profile images, logos)
Main (d/s/p)
“Backend”
(Mails, HTTP API.)
Candidate (d/s/p)
Hosting CDN
Dashboard
Hosting CDN
d/s/p: development / staging / production environments
Integration A
(Optional) Hosting
HTTP API
3rd Parties
A B C
Admin
(read only) Web
auth
Hosting CDN
...
url
Integration C
(Optional) Hosting
Integration B
Integration A
(Optional) Hosting
HTTP API
3rd Parties
A B C
17
Integration C
(Optional) Hosting
Integration B
Service Architecture
media storage
transcoding pipeline
iOSWebWeb
Recruiter Candidate
raw
video
HLS
video
Realtime Database
Main app database
Light file storage
(profile images, logos)
Main (d/s/p)
“Backend”
(Mails, HTTP API.)
Candidate (d/s/p)
Hosting CDN
Dashboard
Hosting CDN
d/s/p: development / staging / production environments
Integration A
(Optional) Hosting
HTTP API
3rd Parties
A B C
Admin
(read only) Web
auth
Hosting CDN
...
url
18
Lessons learned
19
Event-driven
database
Lessons learned
“Realtime” as default great
design choice for UX.
+ Reactive, delightful UI/UX
- Denormalized data in RTDB,
needs to be kept in sync
- “Big JSON”
- No shallow queries
- One region us-west-1
- 100.000 concurrent users
New projects should default to
Firestore!
- Collections/Documents
- Complex queries
- Multi-region
- 1.000.000 concurrent users
20
Security
Rules
Lessons learned
3,000+ mobile apps leaking
data from unsecured Firebase
databases
+ Single location for
authorization close to data
- huge, brittle JSON with inline
Javascript.
Need tooling like bolt & testing!
- generic PERMISSION_DENIED if
rule fails: need duplicate
validation logic on clients
21
Reliability
Lessons learned
Backed by Google Cloud
Platform and very reliable.
SLA has 99.95% uptime,
but in reality it’s better.
Downtime
+ Google will fix it
- still hurts; no control
- partial downtime (e.g. functions)
might lead to temporary data
inconsistencies
→ use db triggers carefully!
Strategy: Switch app to maintenance
mode in sync with Firebase outages
Backups
- No auto-backup for auth data
22
Customization
Lessons learned
A lot you get out of the box is
very basic but takes you a
long way.
- Emails like “Reset password”
provided multi-language,
but basic, no customization
→ Eventually
replace
vs
23
Build
integrations
Lessons learned
Setting up support for API
keys for 3rd party access
fast and simple.
Build an integration with
greenhouse ATS in one week.
- Add API key related rules
- Separate Firebase project
- HTTP Functions (express)
Authenticate as API key user
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://databaseName.firebaseio.com",
databaseAuthVariableOverride: {
uid: "API-KEY"
}
});
24
Access from
China
& some corporate networks
Lessons learned
- Great Firewall actively blocks
requests to Google API
- SDK communicates with
Google APIs for Authentication
and Websocket negotiation
(cannot customize endpoints using SDK)
- Currently, candidates from
China cannot access our
solution
25
Know your tools’ benefits & trade-offs.
SimplicityControl
26
Works for us at
our current stage!
1. Small team can deliver scalable, reliable
product across multiple platforms.
2. No infrastructure headaches
3. Cheap *Less than 100円/mo
27
Closing thought
“Empowerment of creators”
ML & Blockchain & X will eventually see similar tools.
Web2.0 / Wordpress
Bloggers
Youtube / Vimeo
VJays
AWS / Azure / Google Cloud
Accessible Infrastructure
Firebase / AWS Amplify
Accessible development
28
Create!
29

More Related Content

What's hot

Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...
Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...
Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...
AgileNetwork
 
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
VMware Tanzu
 
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
VMware Tanzu
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
Oracle Developers
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
Márton Kodok
 
Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)
Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)
Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)
VMware Tanzu
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
uEngine Solutions
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM Garage
Holly Cummins
 
A Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to BluemixA Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to Bluemix
ibmwebspheresoftware
 
Fishbowl Solutions' Oracle ECM 11g Upgrade, Migration & Solutions
Fishbowl Solutions' Oracle ECM 11g Upgrade,  Migration & SolutionsFishbowl Solutions' Oracle ECM 11g Upgrade,  Migration & Solutions
Fishbowl Solutions' Oracle ECM 11g Upgrade, Migration & Solutions
Billy Cripe
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architecture
Kim Clark
 
Case Study: Orange Labs & Cloud Foundry
 Case Study: Orange Labs & Cloud Foundry  Case Study: Orange Labs & Cloud Foundry
Case Study: Orange Labs & Cloud Foundry
Guillaume Berche
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
Kim Clark
 
James Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 KeynoteJames Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 Keynote
James Watters
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
Márton Kodok
 
Accelerate Digital Transformation with Pivotal Cloud Foundry on Azure
Accelerate Digital Transformation with Pivotal Cloud Foundry on AzureAccelerate Digital Transformation with Pivotal Cloud Foundry on Azure
Accelerate Digital Transformation with Pivotal Cloud Foundry on Azure
VMware Tanzu
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
VMware Tanzu
 
IBM Multicloud Management on the OpenShift Container Platform
IBM Multicloud Management on theOpenShift Container PlatformIBM Multicloud Management on theOpenShift Container Platform
IBM Multicloud Management on the OpenShift Container Platform
Michael Elder
 
API more than payload
API more than payloadAPI more than payload
API more than payload
Phil Wilkins
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
Daniela Zuppini
 

What's hot (20)

Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...
Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...
Agile Mumbai 2020 Conference | Value of DevOps - Journey from Automation to N...
 
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
vCloud Automation Center and Pivotal Cloud Foundry – Better PaaS Solution (VM...
 
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
 
Container Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey BoxellContainer Native Development Tools - Talk by Mickey Boxell
Container Native Development Tools - Talk by Mickey Boxell
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)
Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)
Unlock your VMWare Investment with Pivotal Cloud Foundry (VMworld 2014)
 
성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택성공적인 서비스로의 플랫폼 선택
성공적인 서비스로의 플랫폼 선택
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM Garage
 
A Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to BluemixA Node.js Developer's Guide to Bluemix
A Node.js Developer's Guide to Bluemix
 
Fishbowl Solutions' Oracle ECM 11g Upgrade, Migration & Solutions
Fishbowl Solutions' Oracle ECM 11g Upgrade,  Migration & SolutionsFishbowl Solutions' Oracle ECM 11g Upgrade,  Migration & Solutions
Fishbowl Solutions' Oracle ECM 11g Upgrade, Migration & Solutions
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architecture
 
Case Study: Orange Labs & Cloud Foundry
 Case Study: Orange Labs & Cloud Foundry  Case Study: Orange Labs & Cloud Foundry
Case Study: Orange Labs & Cloud Foundry
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
 
James Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 KeynoteJames Watters Kafka Summit NYC 2019 Keynote
James Watters Kafka Summit NYC 2019 Keynote
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
Accelerate Digital Transformation with Pivotal Cloud Foundry on Azure
Accelerate Digital Transformation with Pivotal Cloud Foundry on AzureAccelerate Digital Transformation with Pivotal Cloud Foundry on Azure
Accelerate Digital Transformation with Pivotal Cloud Foundry on Azure
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
 
IBM Multicloud Management on the OpenShift Container Platform
IBM Multicloud Management on theOpenShift Container PlatformIBM Multicloud Management on theOpenShift Container Platform
IBM Multicloud Management on the OpenShift Container Platform
 
API more than payload
API more than payloadAPI more than payload
API more than payload
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
 

Similar to Lessons learned using Firebase in Production

Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)
wesley chun
 
仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習
Aki Ariga
 
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve The Adobe Digital Marketing Community
 
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
apidays
 
AZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdf
AZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdfAZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdf
AZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdf
shirlybaker1
 
이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...
이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...
이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...
Amazon Web Services Korea
 
Cloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google CloudCloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google Cloud
wesley chun
 
App engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nycApp engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nyc
Chris Schalk
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
wesley chun
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressGeorge Kanellopoulos
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic apps
Michael Stephenson
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
Ernest Mueller
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
e-Legion
 
Improve productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryImprove productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & Delivery
Amazon Web Services
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
POST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTINGPOST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTING
MamathaSharma4
 
SmartChat WhatsApp-clone using AWS Amplify AppSync
SmartChat WhatsApp-clone using AWS Amplify AppSyncSmartChat WhatsApp-clone using AWS Amplify AppSync
SmartChat WhatsApp-clone using AWS Amplify AppSync
Thanh Nguyen
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
Amazon Web Services
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
wesley chun
 

Similar to Lessons learned using Firebase in Production (20)

Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)
 
仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習
 
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
 
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
APIdays Paris 2019 - Delivering Exceptional User Experience with REST and Gra...
 
AZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdf
AZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdfAZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdf
AZ-204 A Top-Notch Exam Of Developing Solutions for Microsoft Azure.pdf
 
이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...
이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...
이제는 말할 수 있다: KBS, beNX의 AWS 활용법 – 선영진 KBS 부장, 강진우 beNX 팀장, 강호성 beNX 엔지니어:: AW...
 
Cloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google CloudCloud computing overview & Technical intro to Google Cloud
Cloud computing overview & Technical intro to Google Cloud
 
App engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nycApp engine cloud_comp_expo_nyc
App engine cloud_comp_expo_nyc
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
Tech UG - Newcastle 09-17 - logic apps
Tech UG - Newcastle 09-17 -   logic appsTech UG - Newcastle 09-17 -   logic apps
Tech UG - Newcastle 09-17 - logic apps
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
Improve productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & DeliveryImprove productivity with Continuous Integration & Delivery
Improve productivity with Continuous Integration & Delivery
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
POST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTINGPOST GRADUATE PROGRAM IN CLOUD COMPUTING
POST GRADUATE PROGRAM IN CLOUD COMPUTING
 
SmartChat WhatsApp-clone using AWS Amplify AppSync
SmartChat WhatsApp-clone using AWS Amplify AppSyncSmartChat WhatsApp-clone using AWS Amplify AppSync
SmartChat WhatsApp-clone using AWS Amplify AppSync
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 

Recently uploaded

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 

Recently uploaded (20)

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 

Lessons learned using Firebase in Production

  • 1. 1 Lessons learned from using Firebase in Production Maik Buchmeyer @mediavrog CTO @ AIR at en-japan https://air.en-japan.io
  • 2. 2 Intro Innovation arm of en-japan since 2014 Digitalise en-japans service portfolio Innovate in HR using modern technology CTO at AIR Creator, love side projects Suica and IC Card reader
  • 3. 3 Agenda 1. What is Firebase? 2. About Video Interview 3. Service Architecture 4. Lessons learned 5. Q&A
  • 7. 7 Gets a lot of love as well as critique* and everything in between. * recently less so Firebase
  • 8. 8 Why chose Firebase? “Focus on providing value” ● Start low cost but able to scale ● Performance and Availability ● Infrastructure, Auth, API, common app features out of the box
  • 11. 11 Released Aug. 2017 > 500 company accounts ~ 100 interviews / month About Video Interview
  • 13. 13 Integration C (Optional) Hosting Integration B Service Architecture media storage transcoding pipeline iOSWebWeb Recruiter Candidate raw video HLS video Realtime Database Main app database Light file storage (profile images, logos) Main (d/s/p) “Backend” (Mails, HTTP API.) Candidate (d/s/p) Hosting CDN Dashboard Hosting CDN d/s/p: development / staging / production environments Integration A (Optional) Hosting HTTP API 3rd Parties A B C Admin (read only) Web auth Hosting CDN web socket connections via Firebase Web & iOS SDKs ... url Media upload request Media upload
  • 14. 14 Integration C (Optional) Hosting Integration B Service Architecture media storage transcoding pipeline iOSWebWeb Recruiter Candidate raw video HLS video Realtime Database Main app database Light file storage (profile images, logos) Main (d/s/p) “Backend” (Mails, HTTP API.) Candidate (d/s/p) Hosting CDN Dashboard Hosting CDN d/s/p: development / staging / production environments Integration A (Optional) Hosting HTTP API 3rd Parties A B C Admin (read only) Web auth Hosting CDN web socket connections via Firebase Web & iOS SDKs ... url Media upload request Media upload
  • 15. 15 Integration C (Optional) Hosting Integration B Service Architecture media storage transcoding pipeline iOSWebWeb Recruiter Candidate raw video HLS video Realtime Database Main app database Light file storage (profile images, logos) Main (d/s/p) “Backend” (Mails, HTTP API.) Candidate (d/s/p) Hosting CDN Dashboard Hosting CDN d/s/p: development / staging / production environments Integration A (Optional) Hosting HTTP API 3rd Parties A B C Admin (read only) Web auth Hosting CDN ... url Integration B C
  • 16. 16 Integration C (Optional) Hosting Integration B Service Architecture media storage transcoding pipeline iOSWebWeb Recruiter Candidate raw video HLS video Realtime Database Main app database Light file storage (profile images, logos) Main (d/s/p) “Backend” (Mails, HTTP API.) Candidate (d/s/p) Hosting CDN Dashboard Hosting CDN d/s/p: development / staging / production environments Integration A (Optional) Hosting HTTP API 3rd Parties A B C Admin (read only) Web auth Hosting CDN ... url Integration C (Optional) Hosting Integration B Integration A (Optional) Hosting HTTP API 3rd Parties A B C
  • 17. 17 Integration C (Optional) Hosting Integration B Service Architecture media storage transcoding pipeline iOSWebWeb Recruiter Candidate raw video HLS video Realtime Database Main app database Light file storage (profile images, logos) Main (d/s/p) “Backend” (Mails, HTTP API.) Candidate (d/s/p) Hosting CDN Dashboard Hosting CDN d/s/p: development / staging / production environments Integration A (Optional) Hosting HTTP API 3rd Parties A B C Admin (read only) Web auth Hosting CDN ... url
  • 19. 19 Event-driven database Lessons learned “Realtime” as default great design choice for UX. + Reactive, delightful UI/UX - Denormalized data in RTDB, needs to be kept in sync - “Big JSON” - No shallow queries - One region us-west-1 - 100.000 concurrent users New projects should default to Firestore! - Collections/Documents - Complex queries - Multi-region - 1.000.000 concurrent users
  • 20. 20 Security Rules Lessons learned 3,000+ mobile apps leaking data from unsecured Firebase databases + Single location for authorization close to data - huge, brittle JSON with inline Javascript. Need tooling like bolt & testing! - generic PERMISSION_DENIED if rule fails: need duplicate validation logic on clients
  • 21. 21 Reliability Lessons learned Backed by Google Cloud Platform and very reliable. SLA has 99.95% uptime, but in reality it’s better. Downtime + Google will fix it - still hurts; no control - partial downtime (e.g. functions) might lead to temporary data inconsistencies → use db triggers carefully! Strategy: Switch app to maintenance mode in sync with Firebase outages Backups - No auto-backup for auth data
  • 22. 22 Customization Lessons learned A lot you get out of the box is very basic but takes you a long way. - Emails like “Reset password” provided multi-language, but basic, no customization → Eventually replace vs
  • 23. 23 Build integrations Lessons learned Setting up support for API keys for 3rd party access fast and simple. Build an integration with greenhouse ATS in one week. - Add API key related rules - Separate Firebase project - HTTP Functions (express) Authenticate as API key user admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://databaseName.firebaseio.com", databaseAuthVariableOverride: { uid: "API-KEY" } });
  • 24. 24 Access from China & some corporate networks Lessons learned - Great Firewall actively blocks requests to Google API - SDK communicates with Google APIs for Authentication and Websocket negotiation (cannot customize endpoints using SDK) - Currently, candidates from China cannot access our solution
  • 25. 25 Know your tools’ benefits & trade-offs. SimplicityControl
  • 26. 26 Works for us at our current stage! 1. Small team can deliver scalable, reliable product across multiple platforms. 2. No infrastructure headaches 3. Cheap *Less than 100円/mo
  • 27. 27 Closing thought “Empowerment of creators” ML & Blockchain & X will eventually see similar tools. Web2.0 / Wordpress Bloggers Youtube / Vimeo VJays AWS / Azure / Google Cloud Accessible Infrastructure Firebase / AWS Amplify Accessible development
  • 29. 29

Editor's Notes

  1. JavaScript for both Frontend (React) & Backend (Node)