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
Felipe Talavera
October 17, 2014
Programming
1
59
4 years building services at peerTransfer
Felipe Talavera
October 17, 2014
Tweet
Share
More Decks by Felipe Talavera
See All by Felipe Talavera
web development with ruby
felipetalavera
0
99
infrastructure at peertransfer
felipetalavera
3
280
ruby + rails
felipetalavera
5
550
Other Decks in Programming
See All in Programming
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
340
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
950
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
230
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
110
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
480
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
230
Amazon Qを使ってIaCを触ろう!
maruto
0
410
Featured
See All Featured
Side Projects
sachag
452
42k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Music & Morning Musume
bryan
46
6.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Why Our Code Smells
bkeepers
PRO
334
57k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Being A Developer After 40
akosma
87
590k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
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!