SlideShare a Scribd company logo
1 of 35
Download to read offline
MongoDB @ Fiverr:
The Road to Atlas
14 May 2019
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Sergei Makarevich Moshe Belostotsky
Hi! We are,
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
What is Fiverr?
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Fiverr's mission is to change how the world works
together.
Fiver is a global marketplace connecting freelancers
and businesses for their digital services needs.
Meet Fiverr.
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Background: Fiverr development DNA
Some facts...
● Task Forces - Business Domain oriented development teams
● Very fast MVP development cycle
● Many AB tests at once (80~ in parallel, 25~ new per week)
● Large amount of rollouts (52~ at once)
● High deploy rate (100~ per day)
● Ruby as the main language, Golang and Nodejs
● Micro-services architecture with CQRS (command query responsibility segregation) and event sourcing
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Once upon a time
There was a tiny startup
That had to get to market- FAST
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Architecture V1 – The quick way
Main incentive: get to market - FAST
SQL
Monolith:
Ruby on Rails
● Fastest to iterate
● Single SQL Database
● Memcached as caching layer
Memcached
READ/WRITE READ/WRITE
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Advantages of Relational Schema backed Database
Why do we want to use it?
● Fast and simple integration with RoR ORM
● “Protection” from data inconsistency
● Common knowledge and practice
● Reliability and resilience
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
But then…
The small startup became bigger...
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Relational Database Bottleneck
The collapse of the naive approach
● Table locks on multiple insert/updates
● Severe impact on large tables with high write rate due to the locks above
● Schema changes are a “pain”
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Architecture V2 - Async writes
Main incentive: Fiverr at scale
SQL
Ruby on Rails
Monolith
● Async writes to alleviate stress from web
● RabbitMQ for passing command events
RabbitMQ
WorkerREAD/WRITE
WRITE
Memcached
READ
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
And bigger...
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Problem: Relational Database slows us down
We need to find another solution...
● Databases became too big with too many indexes to alter schema without downtime
● Database schema changes require “maintenance windows”
● Transactions are not “MUST” on most of the features
● The need to change schema slows the development
● Code reverts should drive schema updates as well
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Solution: Document store Database
Why do we want to use it?
● Faster than Relational database on large sets
● No schema
○ No need of infra changes with new features
○ Also when reverting a feature…
● Have good enough ORM for RoR (Mongoid)
● Can create databases/collections without DevOps as bottle-neck
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Architecture V3 - Microservices
Main incentive: Scale for productivity
Ruby on Rails Monolith
● Microservices
● Use new tech outside the monolith
● Teams get more ownership and
autonomy
● Schemaless and fast storage -
Introduced MongoDB RabbitMQ
Worker
AMQP
Consumer
MongoDB
Service
HTTP API
Worker
AMQP
Consumer
MongoDB
Service
HTTP API
READ/WRITE
Gigs serviceOrders service
Memcached
READ/WRITE
READ/WRITE
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB replica-sets in Fiverr
mongo-rs
fiverr_prod
RoR
app1
app2app3
app4
app5
mongo-rs2
fiverr_prod
app4
app5
app6
mongo-rs3
fiverr_prod
app7
app8
app9
mongo-rs4
fiverr_prod
app10
app11
app12
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
And even bigger...
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Architecture V4 - LOSA
Data flow
Worker
AMQP&Kafka
Consumer
Dataview
Service
HTTP API
Gig authoring service
RoR (API Gateway)
Worker
Kafka
Consumer
Dataview
Service
HTTP API
Controller
READ WRITE
Buyer dashboard
Kafka
PRODUCE/CONSUME
View (Server side rendered)
CONSUME
● Micro-frontends
● Kubernetes
● Backend, view oriented, microservices
serving data over REST
● Read optimized private DBs
● Kafka as event broker
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB replica-sets in fiverr
mongo-rs
RoR
app1
app2app3
app4
app5
mongo-rs2
fiverr_prod
app4
app5
app6
mongo-rs3
fiverr_prod
app7
app8
app9
mongo-rs4
app10
app11
app12
mongo-rs5
app...
app...
app...
mongo-rs6
app...
app...
app...
mongo-rs7
app...
app...
app...
fiverr_prod
mongo-rs8
app...
app...
app...
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Problem: Cross-domain self-hosted databases
● Database sizing by the highest consumer and buffer
● Failure causes cross domain interruptions - Up to full service denial
● No ownership on the data and performance: DevOps as bottleneck
● Takes a lot of time and resources to maintain/backup/support/optimize the databases
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Solution: Domain Dedicated databases
● More accurate size: smaller databases
● Failures cause small extent of damage (mostly one domain)
● Co-ownership between Domain (Development Team) ownership and DevOps
● Higher Development team autonomy
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB as a service
Do you really want to manage so many
clusters on your own??
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB Atlas
And so, our road to Atlas begins...
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB Atlas
First, we need to make some lists...
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Knowing Yourself
Making checklists and preparing the existing environment
● Our source databases (versions, storage engines)
● Client specs (their types and versions)
● Application classification (migration readiness)
● Source infra specifications (VPC)
● New database scale and sizing
● Activating new features after the cutoff
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Knowing Yourself
More preparations and coordinations
● How and when to migrate?
● Who should check the process?
● A new staging environment?
● Breaking changes that might pop-up?
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB Atlas
Once we were all set up, we took on the road
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
The Migration Process
Automating the process
● Running the migration process itself
● Pitfalls and how to overcome them
● Failures along the road
● System impact during the migration
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
The Migration Process
Switching over to Atlas
● Finishing the migration process
● Defining successful migration
● Post migration actions
● Monitoring application and cluster behavior
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
MongoDB Atlas
Taking first steps, and it is a whole new world
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
New Environment and Features
First technical impressions and perks
● The alerts and activity systems
● Real time and metrics monitoring
● The performance advisor tab
● Users and teams access control
● On-demand cluster configuration update
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
Knowing the Road
The ongoing work and migrations
● Monitoring systems consolidation
● Building new and scaling existing clusters
● Working with the Atlas API
● Setting up proper alerts and signals
● Refreshing the staging environment
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
So what’s next?
Things we are planning
● Fully automate cluster creation and scaling
● Continue data migrations to Atlas
● Align all clients with Atlas prerequisites
● Test new Atlas infra features (NVM)
© 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
moshe.b@fiverr.com
sergei.m@fiverr.com
Thank You
We’re hiring :)

More Related Content

What's hot

Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzkenetzke
 
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...MongoDB
 
The Rise of Microservices - Containers and Orchestration
The Rise of Microservices - Containers and OrchestrationThe Rise of Microservices - Containers and Orchestration
The Rise of Microservices - Containers and OrchestrationMongoDB
 
Advanced Caching Patterns used by 2000 microservices - Api World
Advanced Caching Patterns used by 2000 microservices - Api WorldAdvanced Caching Patterns used by 2000 microservices - Api World
Advanced Caching Patterns used by 2000 microservices - Api WorldNatan Silnitsky
 
Jax london - Battle-tested event-driven patterns for your microservices archi...
Jax london - Battle-tested event-driven patterns for your microservices archi...Jax london - Battle-tested event-driven patterns for your microservices archi...
Jax london - Battle-tested event-driven patterns for your microservices archi...Natan Silnitsky
 
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
How Different are MongoDB Drivers
How Different are MongoDB DriversHow Different are MongoDB Drivers
How Different are MongoDB DriversNorberto Leite
 
MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...
MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...
MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...MongoDB
 
Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...
Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...
Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...zekeLabs Technologies
 
Open sourcing a successful internal project - Reversim 2021
Open sourcing a successful internal project - Reversim 2021Open sourcing a successful internal project - Reversim 2021
Open sourcing a successful internal project - Reversim 2021Natan Silnitsky
 
[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...
[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...
[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...Daniel Bryant
 
MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...
MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...
MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...MongoDB
 
MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...
MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...
MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...MongoDB
 
MongoDB Europe 2016 - Ops Manager and Cloud Manager
MongoDB Europe 2016 - Ops Manager and Cloud ManagerMongoDB Europe 2016 - Ops Manager and Cloud Manager
MongoDB Europe 2016 - Ops Manager and Cloud ManagerMongoDB
 
Standardizing Microservice Management With a Service Mesh
Standardizing Microservice Management With a Service MeshStandardizing Microservice Management With a Service Mesh
Standardizing Microservice Management With a Service MeshAspen Mesh
 
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB
 
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...Natan Silnitsky
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
5 lessons learned for successful migration to Confluent cloud | Natan Silinit...
5 lessons learned for successful migration to Confluent cloud | Natan Silinit...5 lessons learned for successful migration to Confluent cloud | Natan Silinit...
5 lessons learned for successful migration to Confluent cloud | Natan Silinit...HostedbyConfluent
 
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?MongoDB
 

What's hot (20)

Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzke
 
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
 
The Rise of Microservices - Containers and Orchestration
The Rise of Microservices - Containers and OrchestrationThe Rise of Microservices - Containers and Orchestration
The Rise of Microservices - Containers and Orchestration
 
Advanced Caching Patterns used by 2000 microservices - Api World
Advanced Caching Patterns used by 2000 microservices - Api WorldAdvanced Caching Patterns used by 2000 microservices - Api World
Advanced Caching Patterns used by 2000 microservices - Api World
 
Jax london - Battle-tested event-driven patterns for your microservices archi...
Jax london - Battle-tested event-driven patterns for your microservices archi...Jax london - Battle-tested event-driven patterns for your microservices archi...
Jax london - Battle-tested event-driven patterns for your microservices archi...
 
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
 
How Different are MongoDB Drivers
How Different are MongoDB DriversHow Different are MongoDB Drivers
How Different are MongoDB Drivers
 
MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...
MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...
MongoDB .local London 2019: Migrating a Monolith to MongoDB Atlas – Auto Trad...
 
Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...
Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...
Webinar - Build Cloud-native platform using Docker, Kubernetes, Prometheus, I...
 
Open sourcing a successful internal project - Reversim 2021
Open sourcing a successful internal project - Reversim 2021Open sourcing a successful internal project - Reversim 2021
Open sourcing a successful internal project - Reversim 2021
 
[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...
[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...
[HashiConf 2019] "Securing Cloud Native Communication with Ambassador and Con...
 
MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...
MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...
MongoDB .local London 2019: New Encryption Capabilities in MongoDB 4.2: A Dee...
 
MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...
MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...
MongoDB .local London 2019: Modern Data Backup and Recovery from On-premises ...
 
MongoDB Europe 2016 - Ops Manager and Cloud Manager
MongoDB Europe 2016 - Ops Manager and Cloud ManagerMongoDB Europe 2016 - Ops Manager and Cloud Manager
MongoDB Europe 2016 - Ops Manager and Cloud Manager
 
Standardizing Microservice Management With a Service Mesh
Standardizing Microservice Management With a Service MeshStandardizing Microservice Management With a Service Mesh
Standardizing Microservice Management With a Service Mesh
 
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
MongoDB .local Bengaluru 2019: Using MongoDB Services in Kubernetes: Any Plat...
 
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
Polyglot, Fault Tolerant Event-Driven Programming with Kafka, Kubernetes and ...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
5 lessons learned for successful migration to Confluent cloud | Natan Silinit...
5 lessons learned for successful migration to Confluent cloud | Natan Silinit...5 lessons learned for successful migration to Confluent cloud | Natan Silinit...
5 lessons learned for successful migration to Confluent cloud | Natan Silinit...
 
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
MongoDB Europe 2016 - Star in a Reasonably Priced Car - Which Driver is Best?
 

Similar to MongoDB @ Fiverr: The Road to Atlas

IMCSummit 2015 - 1 IT Business - The Evolution of Pivotal Gemfire
IMCSummit 2015 - 1 IT Business  - The Evolution of Pivotal GemfireIMCSummit 2015 - 1 IT Business  - The Evolution of Pivotal Gemfire
IMCSummit 2015 - 1 IT Business - The Evolution of Pivotal GemfireIn-Memory Computing Summit
 
DrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.gov
DrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.govDrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.gov
DrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.govClinton Herget
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?Tammy Bednar
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2
 
Sydney mule soft meetup #8 1 August 2019 - all slides
Sydney mule soft meetup #8   1 August 2019 - all slidesSydney mule soft meetup #8   1 August 2019 - all slides
Sydney mule soft meetup #8 1 August 2019 - all slidesRoyston Lobo
 
Application Modernization using the Strangler Pattern
Application Modernization using the Strangler PatternApplication Modernization using the Strangler Pattern
Application Modernization using the Strangler PatternTom Laszewski
 
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBDistributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBYugabyteDB
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Cloud Native Day Tel Aviv
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology OverviewKeith Hollman
 
Micro Everything - Our Road to Scale
Micro Everything - Our Road to ScaleMicro Everything - Our Road to Scale
Micro Everything - Our Road to ScaleAhmad Assaf
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016AdobeMarketingCloud
 
Microservices And Containerization by Steven Mason
Microservices And Containerization by Steven MasonMicroservices And Containerization by Steven Mason
Microservices And Containerization by Steven MasonSynerzip
 
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...Amazon Web Services
 
Breaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS SummitBreaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS SummitAmazon Web Services
 
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...apidays
 
Танки в облаках
Танки в облакахТанки в облаках
Танки в облакахOpenStackRussia
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
 
The New Possible: How Platform-as-a-Service Changes the Game
 The New Possible: How Platform-as-a-Service Changes the Game The New Possible: How Platform-as-a-Service Changes the Game
The New Possible: How Platform-as-a-Service Changes the GameInside Analysis
 

Similar to MongoDB @ Fiverr: The Road to Atlas (20)

IMCSummit 2015 - 1 IT Business - The Evolution of Pivotal Gemfire
IMCSummit 2015 - 1 IT Business  - The Evolution of Pivotal GemfireIMCSummit 2015 - 1 IT Business  - The Evolution of Pivotal Gemfire
IMCSummit 2015 - 1 IT Business - The Evolution of Pivotal Gemfire
 
DrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.gov
DrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.govDrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.gov
DrupalGovCon 2016: Consuming Third-party APIs in Drupal - Lessons from USGS.gov
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
WSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happenWSO2Con US 2013 - Connected Business - making it happen
WSO2Con US 2013 - Connected Business - making it happen
 
Sydney mule soft meetup #8 1 August 2019 - all slides
Sydney mule soft meetup #8   1 August 2019 - all slidesSydney mule soft meetup #8   1 August 2019 - all slides
Sydney mule soft meetup #8 1 August 2019 - all slides
 
The rise of microservices
The rise of microservicesThe rise of microservices
The rise of microservices
 
Application Modernization using the Strangler Pattern
Application Modernization using the Strangler PatternApplication Modernization using the Strangler Pattern
Application Modernization using the Strangler Pattern
 
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBDistributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
Micro Everything - Our Road to Scale
Micro Everything - Our Road to ScaleMicro Everything - Our Road to Scale
Micro Everything - Our Road to Scale
 
Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016Adobe Ask the AEM Community Expert Session Oct 2016
Adobe Ask the AEM Community Expert Session Oct 2016
 
Microservices And Containerization by Steven Mason
Microservices And Containerization by Steven MasonMicroservices And Containerization by Steven Mason
Microservices And Containerization by Steven Mason
 
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
 
Containers for Startups
Containers for StartupsContainers for Startups
Containers for Startups
 
Breaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS SummitBreaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS Summit
 
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
 
Танки в облаках
Танки в облакахТанки в облаках
Танки в облаках
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
The New Possible: How Platform-as-a-Service Changes the Game
 The New Possible: How Platform-as-a-Service Changes the Game The New Possible: How Platform-as-a-Service Changes the Game
The New Possible: How Platform-as-a-Service Changes the Game
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDBMongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
MongoDB .local Paris 2020: Les bonnes pratiques pour sécuriser MongoDB
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
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
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

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...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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 ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
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...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
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)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

MongoDB @ Fiverr: The Road to Atlas

  • 1. MongoDB @ Fiverr: The Road to Atlas 14 May 2019
  • 2. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Sergei Makarevich Moshe Belostotsky Hi! We are,
  • 3. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. What is Fiverr?
  • 4. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Fiverr's mission is to change how the world works together. Fiver is a global marketplace connecting freelancers and businesses for their digital services needs. Meet Fiverr.
  • 5. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential.
  • 6. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Background: Fiverr development DNA Some facts... ● Task Forces - Business Domain oriented development teams ● Very fast MVP development cycle ● Many AB tests at once (80~ in parallel, 25~ new per week) ● Large amount of rollouts (52~ at once) ● High deploy rate (100~ per day) ● Ruby as the main language, Golang and Nodejs ● Micro-services architecture with CQRS (command query responsibility segregation) and event sourcing
  • 7. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Once upon a time There was a tiny startup That had to get to market- FAST
  • 8. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Architecture V1 – The quick way Main incentive: get to market - FAST SQL Monolith: Ruby on Rails ● Fastest to iterate ● Single SQL Database ● Memcached as caching layer Memcached READ/WRITE READ/WRITE
  • 9. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Advantages of Relational Schema backed Database Why do we want to use it? ● Fast and simple integration with RoR ORM ● “Protection” from data inconsistency ● Common knowledge and practice ● Reliability and resilience
  • 10. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. But then… The small startup became bigger...
  • 11. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Relational Database Bottleneck The collapse of the naive approach ● Table locks on multiple insert/updates ● Severe impact on large tables with high write rate due to the locks above ● Schema changes are a “pain”
  • 12. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Architecture V2 - Async writes Main incentive: Fiverr at scale SQL Ruby on Rails Monolith ● Async writes to alleviate stress from web ● RabbitMQ for passing command events RabbitMQ WorkerREAD/WRITE WRITE Memcached READ
  • 13. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. And bigger...
  • 14. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Problem: Relational Database slows us down We need to find another solution... ● Databases became too big with too many indexes to alter schema without downtime ● Database schema changes require “maintenance windows” ● Transactions are not “MUST” on most of the features ● The need to change schema slows the development ● Code reverts should drive schema updates as well
  • 15. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Solution: Document store Database Why do we want to use it? ● Faster than Relational database on large sets ● No schema ○ No need of infra changes with new features ○ Also when reverting a feature… ● Have good enough ORM for RoR (Mongoid) ● Can create databases/collections without DevOps as bottle-neck
  • 16. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Architecture V3 - Microservices Main incentive: Scale for productivity Ruby on Rails Monolith ● Microservices ● Use new tech outside the monolith ● Teams get more ownership and autonomy ● Schemaless and fast storage - Introduced MongoDB RabbitMQ Worker AMQP Consumer MongoDB Service HTTP API Worker AMQP Consumer MongoDB Service HTTP API READ/WRITE Gigs serviceOrders service Memcached READ/WRITE READ/WRITE
  • 17. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB replica-sets in Fiverr mongo-rs fiverr_prod RoR app1 app2app3 app4 app5 mongo-rs2 fiverr_prod app4 app5 app6 mongo-rs3 fiverr_prod app7 app8 app9 mongo-rs4 fiverr_prod app10 app11 app12
  • 18. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. And even bigger...
  • 19. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Architecture V4 - LOSA Data flow Worker AMQP&Kafka Consumer Dataview Service HTTP API Gig authoring service RoR (API Gateway) Worker Kafka Consumer Dataview Service HTTP API Controller READ WRITE Buyer dashboard Kafka PRODUCE/CONSUME View (Server side rendered) CONSUME ● Micro-frontends ● Kubernetes ● Backend, view oriented, microservices serving data over REST ● Read optimized private DBs ● Kafka as event broker
  • 20. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB replica-sets in fiverr mongo-rs RoR app1 app2app3 app4 app5 mongo-rs2 fiverr_prod app4 app5 app6 mongo-rs3 fiverr_prod app7 app8 app9 mongo-rs4 app10 app11 app12 mongo-rs5 app... app... app... mongo-rs6 app... app... app... mongo-rs7 app... app... app... fiverr_prod mongo-rs8 app... app... app...
  • 21. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Problem: Cross-domain self-hosted databases ● Database sizing by the highest consumer and buffer ● Failure causes cross domain interruptions - Up to full service denial ● No ownership on the data and performance: DevOps as bottleneck ● Takes a lot of time and resources to maintain/backup/support/optimize the databases
  • 22. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Solution: Domain Dedicated databases ● More accurate size: smaller databases ● Failures cause small extent of damage (mostly one domain) ● Co-ownership between Domain (Development Team) ownership and DevOps ● Higher Development team autonomy
  • 23. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB as a service Do you really want to manage so many clusters on your own??
  • 24. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB Atlas And so, our road to Atlas begins...
  • 25. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB Atlas First, we need to make some lists...
  • 26. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Knowing Yourself Making checklists and preparing the existing environment ● Our source databases (versions, storage engines) ● Client specs (their types and versions) ● Application classification (migration readiness) ● Source infra specifications (VPC) ● New database scale and sizing ● Activating new features after the cutoff
  • 27. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Knowing Yourself More preparations and coordinations ● How and when to migrate? ● Who should check the process? ● A new staging environment? ● Breaking changes that might pop-up?
  • 28. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB Atlas Once we were all set up, we took on the road
  • 29. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. The Migration Process Automating the process ● Running the migration process itself ● Pitfalls and how to overcome them ● Failures along the road ● System impact during the migration
  • 30. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. The Migration Process Switching over to Atlas ● Finishing the migration process ● Defining successful migration ● Post migration actions ● Monitoring application and cluster behavior
  • 31. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. MongoDB Atlas Taking first steps, and it is a whole new world
  • 32. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. New Environment and Features First technical impressions and perks ● The alerts and activity systems ● Real time and metrics monitoring ● The performance advisor tab ● Users and teams access control ● On-demand cluster configuration update
  • 33. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. Knowing the Road The ongoing work and migrations ● Monitoring systems consolidation ● Building new and scaling existing clusters ● Working with the Atlas API ● Setting up proper alerts and signals ● Refreshing the staging environment
  • 34. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. So what’s next? Things we are planning ● Fully automate cluster creation and scaling ● Continue data migrations to Atlas ● Align all clients with Atlas prerequisites ● Test new Atlas infra features (NVM)
  • 35. © 2019 Fiverr Int. Lmt. All Rights Reserved. Proprietary & Confidential. moshe.b@fiverr.com sergei.m@fiverr.com Thank You We’re hiring :)