Submit Search
Upload
Migrando um legado de 30M de Requests/Dia
•
0 likes
•
7 views
Gabriel Pereira
Follow
Apresentação realizada no primeirto meetup do Ada.rb
Read less
Read more
Software
Report
Share
Report
Share
1 of 41
Download now
Download to read offline
Recommended
Automate Your FME Server Installs, Take a Five Minute Break
Automate Your FME Server Installs, Take a Five Minute Break
Safe Software
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
Kai Zhao
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014
cornelia davis
One Person's Perspective on a Pragmatic REST Interface
One Person's Perspective on a Pragmatic REST Interface
abrummett
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server
Masahiro Nagano
Facebook的缓存系统
Facebook的缓存系统
yiditushe
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp Vault
Bram Vogelaar
Intro to PSGI and Plack
Intro to PSGI and Plack
Tatsuhiko Miyagawa
Recommended
Automate Your FME Server Installs, Take a Five Minute Break
Automate Your FME Server Installs, Take a Five Minute Break
Safe Software
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
Kai Zhao
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014
cornelia davis
One Person's Perspective on a Pragmatic REST Interface
One Person's Perspective on a Pragmatic REST Interface
abrummett
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server
Masahiro Nagano
Facebook的缓存系统
Facebook的缓存系统
yiditushe
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp Vault
Bram Vogelaar
Intro to PSGI and Plack
Intro to PSGI and Plack
Tatsuhiko Miyagawa
Techdays Helsinki - Creating the distributed apps of the future using dapr - ...
Techdays Helsinki - Creating the distributed apps of the future using dapr - ...
Geert van der Cruijsen
Control your deployments with Capistrano
Control your deployments with Capistrano
Ramazan K
Monitoring CloudStack and components
Monitoring CloudStack and components
ShapeBlue
Stacki and Chef at Pardot
Stacki and Chef at Pardot
Salesforce Engineering
Nko workshop - node js crud & deploy
Nko workshop - node js crud & deploy
Simon Su
Hadoop security
Hadoop security
Kashif Khan
GitOps - Operation By Pull Request
GitOps - Operation By Pull Request
Kasper Nissen
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
guoqing75
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
nickblah
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
Ben Hall
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
Fastly
Stackato Presentation Techzone 2013
Stackato Presentation Techzone 2013
Martin Kenneth Michalsky
Pyramid deployment
Pyramid deployment
Carlos de la Guardia
Infrastructure = code - 1 year later
Infrastructure = code - 1 year later
Christian Ortner
Hacking Client Side Insecurities
Hacking Client Side Insecurities
amiable_indian
Information security programming in ruby
Information security programming in ruby
Hiroshi Nakamura
Docker Security workshop slides
Docker Security workshop slides
Docker, Inc.
Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
Toshiaki Maki
Api Design
Api Design
sartak
How to Get Your Website Into the Cloud
How to Get Your Website Into the Cloud
All Things Open
RubyConf Brasil - 2018
RubyConf Brasil - 2018
Gabriel Pereira
Intro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on Rails
Gabriel Pereira
More Related Content
Similar to Migrando um legado de 30M de Requests/Dia
Techdays Helsinki - Creating the distributed apps of the future using dapr - ...
Techdays Helsinki - Creating the distributed apps of the future using dapr - ...
Geert van der Cruijsen
Control your deployments with Capistrano
Control your deployments with Capistrano
Ramazan K
Monitoring CloudStack and components
Monitoring CloudStack and components
ShapeBlue
Stacki and Chef at Pardot
Stacki and Chef at Pardot
Salesforce Engineering
Nko workshop - node js crud & deploy
Nko workshop - node js crud & deploy
Simon Su
Hadoop security
Hadoop security
Kashif Khan
GitOps - Operation By Pull Request
GitOps - Operation By Pull Request
Kasper Nissen
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
guoqing75
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
nickblah
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
Ben Hall
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
Fastly
Stackato Presentation Techzone 2013
Stackato Presentation Techzone 2013
Martin Kenneth Michalsky
Pyramid deployment
Pyramid deployment
Carlos de la Guardia
Infrastructure = code - 1 year later
Infrastructure = code - 1 year later
Christian Ortner
Hacking Client Side Insecurities
Hacking Client Side Insecurities
amiable_indian
Information security programming in ruby
Information security programming in ruby
Hiroshi Nakamura
Docker Security workshop slides
Docker Security workshop slides
Docker, Inc.
Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
Toshiaki Maki
Api Design
Api Design
sartak
How to Get Your Website Into the Cloud
How to Get Your Website Into the Cloud
All Things Open
Similar to Migrando um legado de 30M de Requests/Dia
(20)
Techdays Helsinki - Creating the distributed apps of the future using dapr - ...
Techdays Helsinki - Creating the distributed apps of the future using dapr - ...
Control your deployments with Capistrano
Control your deployments with Capistrano
Monitoring CloudStack and components
Monitoring CloudStack and components
Stacki and Chef at Pardot
Stacki and Chef at Pardot
Nko workshop - node js crud & deploy
Nko workshop - node js crud & deploy
Hadoop security
Hadoop security
GitOps - Operation By Pull Request
GitOps - Operation By Pull Request
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
Altitude San Francisco 2018: Programming the Edge
Altitude San Francisco 2018: Programming the Edge
Stackato Presentation Techzone 2013
Stackato Presentation Techzone 2013
Pyramid deployment
Pyramid deployment
Infrastructure = code - 1 year later
Infrastructure = code - 1 year later
Hacking Client Side Insecurities
Hacking Client Side Insecurities
Information security programming in ruby
Information security programming in ruby
Docker Security workshop slides
Docker Security workshop slides
Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
Api Design
Api Design
How to Get Your Website Into the Cloud
How to Get Your Website Into the Cloud
More from Gabriel Pereira
RubyConf Brasil - 2018
RubyConf Brasil - 2018
Gabriel Pereira
Intro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on Rails
Gabriel Pereira
Csm o quê eu aprendi?
Csm o quê eu aprendi?
Gabriel Pereira
Programadores. Quem são eles? Onde vivem? O que comem?
Programadores. Quem são eles? Onde vivem? O que comem?
Gabriel Pereira
Coding dojo
Coding dojo
Gabriel Pereira
Daily Stand Up Meeting
Daily Stand Up Meeting
Gabriel Pereira
Desenvolvimento de Aplicações Sociais com Ruby
Desenvolvimento de Aplicações Sociais com Ruby
Gabriel Pereira
More from Gabriel Pereira
(7)
RubyConf Brasil - 2018
RubyConf Brasil - 2018
Intro - Ruby e Ruby on Rails
Intro - Ruby e Ruby on Rails
Csm o quê eu aprendi?
Csm o quê eu aprendi?
Programadores. Quem são eles? Onde vivem? O que comem?
Programadores. Quem são eles? Onde vivem? O que comem?
Coding dojo
Coding dojo
Daily Stand Up Meeting
Daily Stand Up Meeting
Desenvolvimento de Aplicações Sociais com Ruby
Desenvolvimento de Aplicações Sociais com Ruby
Recently uploaded
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Bert Jan Schrijver
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
masabamasaba
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
kalichargn70th171
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
masabamasaba
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
Presentation.STUDIO
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
proinshot.com
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
Shrmpro
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
panagenda
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
masabamasaba
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
Papp Krisztián
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
harshavardhanraghave
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
aagamshah0812
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
masabamasaba
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
masabamasaba
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
masabamasaba
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
masabamasaba
Recently uploaded
(20)
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
Migrando um legado de 30M de Requests/Dia
1.
25 de Novembro
de 2020 Migrando um legado de 30M de Requests/Dia 1º encontro do ada.rb
2.
Gabriel Pereira @gabrielpedepera
3.
4.
5.
6.
7.
8.
Disclaimer
9.
10.
Domain
11.
12.
Challenge
13.
14.
Code
15.
Consumer
16.
REST APIs
17.
Good Test Suite
18.
Strategy
19.
ctrl + c ctrl
+ v
20.
$ bundle exec
rails server
21.
Monitoring
22.
How make sure
that everything is working correctly? 🤔
23.
24.
Diffy
25.
Diffy
26.
Diffy Interface
27.
NGINX + Diffy Monitoring
28.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { mirror /mirror; mirror_request_body on; add_header X-Will-Mirror 'Yes'; proxy_pass http://primary; } location = /mirror { internal; proxy_set_header X-Original-Host $host; proxy_pass http://diffy$request_uri; } }
29.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { mirror /mirror; mirror_request_body on; add_header X-Will-Mirror 'Yes'; proxy_pass http://primary; } location = /mirror { internal; proxy_set_header X-Original-Host $host; proxy_pass http://diffy$request_uri; } }
30.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { mirror /mirror; mirror_request_body on; add_header X-Will-Mirror 'Yes'; proxy_pass http://primary; } location = /mirror { internal; proxy_set_header X-Original-Host $host; proxy_pass http://diffy$request_uri; } }
31.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { mirror /mirror; mirror_request_body on; add_header X-Will-Mirror 'Yes'; proxy_pass http://primary; } location = /mirror { internal; proxy_set_header X-Original-Host $host; proxy_pass http://diffy$request_uri; } }
32.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { mirror /mirror; mirror_request_body on; add_header X-Will-Mirror 'Yes'; proxy_pass http://primary; } location = /mirror { internal; proxy_set_header X-Original-Host $host; proxy_pass http://diffy$request_uri; } }
33.
Diffy Interface
34.
NGINX Replacing the APIs
35.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { add_header X-Candidate-Service 'Yes'; proxy_pass http://candidate; } }
36.
server { listen 80; server_name
"nginx-diffy-proxy"; location / { proxy_pass http://primary; } location /endpoint-to-be-migrated { add_header X-Candidate-Service 'Yes'; proxy_pass http://candidate; } }
37.
38.
39.
Questions?
40.
Thank You !!
41.
References • https://gabrielpereira.dev/pt_br/2020/10/28/migrando-apis-utilizando-diffy-e- nginx • https://travelupdate.com/gladys-ingle-repairing-plane-video •
https://blog.twitter.com/engineering/en_us/a/2015/diffy-testing-services- without-writing-tests.html • https://www.softwaretestingmagazine.com/videos/regression-testing-with- diffy • https://medium.com/@rahulmuthu80/mirroring-incoming-web-traffic-with- nginx-fit-devops-d688ddca7d30
Download now