Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
4 years building services at peerTransfer
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Felipe Talavera
October 17, 2014
Programming
71
1
Share
4 years building services at peerTransfer
Felipe Talavera
October 17, 2014
More Decks by Felipe Talavera
See All by Felipe Talavera
web development with ruby
felipetalavera
0
120
infrastructure at peertransfer
felipetalavera
3
300
ruby + rails
felipetalavera
5
580
Other Decks in Programming
See All in Programming
安いハードウェアでVulkan
fadis
1
890
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
5
2.5k
The free-lunch guide to idea circularity
hollycummins
0
410
感情を設計する
ichimichi
5
740
へんな働き方
yusukebe
6
2.9k
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
220
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
240
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
310
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
1
290
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.8k
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
120
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
140
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Code Reviewing Like a Champion
maltzj
528
40k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
660
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
250
How to train your dragon (web standard)
notwaldorf
97
6.6k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Exploring anti-patterns in Rails
aemeredith
3
310
Embracing the Ebb and Flow
colly
88
5k
Transcript
4 years building services Felipe Talavera
A.K.A. Services vs Monoliths
"Microservices" - yet another new term on the crowded streets
of software architecture. http://martinfowler.com/articles/microservices.html -Martin Fowler
None
1B$ process +500 schools almost 4 years
0 sinatra 1 rails 0 daemons 0 libraries 1 server
November 2010!
None
0 sinatra 2 rails 1 daemons 0 libraries 2 servers
January 2011!
HTTP REST API’s! ! Async process with a message broker
None
App per git repo! ! Apps are deployed separately !
Infra as code
Issues
Features involving multiple apps ! One rails app failure affect
the other ! Complex monitoring/acceptance needed !
dependency resolution ! version tagging and deployment! ! handling performance
degradation Manual
! Error Handling cascading, trace, storm, retry
Infra on AWS June 2012!
http://martinfowler.com/bliki/MicroservicePrerequisites.html Rapid provisioning Basic Monitoring Rapid application deployment
4 sinatra 4 rails 4 daemons 3 libraries 6 servers
June 2012!
None
None
None
10 sinatra 4 rails 8 daemons 7 libraries 21 servers
October 2014!
teams around services
Accidental complexities
API consumers Auto generated consumer, ex: ActiveResource ! Cross app
testing, consumer mock mode ! Recording traffic, VCR approach
A/B testing across apps ! Feature flagging
None
40 sinatra 3 rails 15 daemons 20 libraries 40 servers
July 2016!
! Docker containers ! Consul ! Etcd ! Terraform Our
next steps:!
Modern alternatives !
! Hystrix/RxJava Latency and Fault Tolerance for Distributed Systems Java
lib runs in JVM languages, scala, clojure, etc… from netflix http://blog.josephwilk.net/clojure/building-clojure-services-at-scale.html
! Finagle Pipes-and-Filters meets Futures model. Thrift for RPC ZooKeeper
for Service Discovery from twitter Finatra Scala lib
! Zipkin A distributed tracing system
Apache Mesos Develop and run resource-efficient distributed systems ! !
Cluster manager that simplifies the complexity of running applications on a shared pool of servers.
Learned lessons! ! What things we would do differently?
Thanks!