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
AskDoctorsの13年目を支える技術
Search
Owl
March 22, 2019
Programming
0
290
AskDoctorsの13年目を支える技術
RailsDM2019 Day1 B-7 登壇資料 『AskDoctorsの13年目を支える技術』
Owl
March 22, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
2 週間で Twitter Bot を作ってみた
contour_gara
0
810
業務ツールとして使うPostman
msys75
0
120
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
110
Anthropic Cookbook のおすすめレシピ
schroneko
7
1.4k
WebGLで始める コンピュータグラフィックス入門
heller77
0
350
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
1.1k
Going beyond Apache Parquet's default settings
xhochy
0
140
Revisiting the Hotwire Landscape after Turbo 8 @ RailsConf 2024, Detroit
marcoroth
0
210
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
6
1.3k
2024 コーディング研修
ckazu
0
370
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.3k
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
470
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
The Invisible Customer
myddelton
114
12k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
14
8.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
YesSQL, Process and Tooling at Scale
rocio
165
13k
In The Pink: A Labor of Love
frogandcode
138
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
It's Worth the Effort
3n
180
27k
For a Future-Friendly Web
brad_frost
172
9k
Transcript
Technologies supporting for 13 years @RailsDM 2019
> Web Engineer @M3, inc > Love Ruby, Vim, Gopher
> Board-game Geek About Me Owl (@owl_works)
Changing the World of Medicine Using the Internet
Central Service: m3.com 270,000 In Japan 4,500,000 Worldwide Member Doctors
Our Services 1/2 NDPN Medical News ΤϜεϦʔ ΩϟϦΞ Job Recruitment
.3܅ Pharmaceutical Promotion
Our Services 2/2 And over 20 other services σδΧϧ Cloud
Electronic Medical Records "TL%PDUPST Medical Consultation
And over 20 other services σδΧϧ Our Services 2/2 Cloud
Electronic Medical Records "TL%PDUPST Medical Consultation
You Can Ask Doctors 5,900 Doctors 2,000,000 Q&A
Back To the 2005 First release: 2005 (Dec) Now: 2019
(Mar)
Back To the 2005 First release: 2005 (Dec) Now: 2019
(Mar) 13years
Back To the 2005 !!
2019
2015
2011
2005
None
( ).present? (2005) => True -Rails (v.1 Release) -Git (v.1
Release) -PHP 5.0 (Release) -Feature phone
( ).present? (2005) => False -iPhone (2008) -Chrome (2008) -jQuery
(2006)
Tech Stack in 2005 Version Control System => CVS Bug
Tracker => Mantis JS Framework => prototype.js
I have never heard of those (I became an engineer
3 years ago)
We also used Generator, a framework for developing web apps
with xmls. xml…Pardon?
Version Control System 1.CVS 2.SVN (subversion) 3.Git (now!)
Bug Tracker 1.Mantis 2.REDMINE 3.Jira (now!)
JS Framework 1.Prototype 2.jQuery 3.Vue (now!)
App History
App Structure (ancient) Apps PC Smart phone Feature phone For
women DB Java Java Perl Java
Apps Constitution (ancient) Apps PC Smart phone Feature phone For
women DB Java Java Perl Java DB structures are NOT shared.
Historical Background Feature Phone Outsourced to external organizations. For Women
(AskMoon) Launched as a service with a different concept.
New Requirement Let's share content data between services! Sounds good.
PC Smart phone Feature phone For women CoreAPI New! Topic
Q&A Patient Web API
3 years later…
New Requirement We need to develop Views faster. How about
integrating PC with SP? LGTM !
PC & SP Apps Constitution (middle) Apps Feature phone For
women DB New!
Pain Points
New Requirement FP users must also be able to use
PC sites. Right.
Membership integration Apps Feature phone DB PC & SP Insert
User Data
Membership integration Apps Feature phone DB PC & SP Insert
User Data User model has become complicated…
DB has longevity Applications Replaced Replaced Replaced DB is unchanged
Pain Points #2
Back To the 2005 First release: 2005 (Dec) Now: 2019
(Mar) 13years
Version Control System 1.CVS 2.SVN (subversion) 3.Git (now!)
Bug Tracker 1.Mantis 2.REDMINE 3.Jira (now!)
No one knows Is this batch still working? Oh, this
is ten years old. I was a high school student at that time.
History rhymes 1/2 It’s inconvenient if we don't have a
batch list. I made one. It’s all right now.
3 years later…
History rhymes 1/2 It’s inconvenient if we don't have a
batch list. I made one. It’s all right now.
Now batches are consolidated in Digdag.
Get back on track…
PC & SP Apps Constitution (middle) Apps Feature phone For
women DB Stop active development
PC & SP Feature phone For women CoreAPI Web API
Stop active development ……
Problems with CoreAPI 1. Increased volume of coding 2. Data
integrity problem (API transaction) 3. API design difficulties
It’s micro-service !
At that time the best practices were not yet known.
Keyword Trend on Google Keyword: microservice (ϚΠΫϩαʔϏεΞʔΩςΫνϟ) 2014 2016
Keyword Trend on Google Keyword: microservice (ϚΠΫϩαʔϏεΞʔΩςΫνϟ) 2014 CoreAPI 2009
Too many services V1 V2 Askmn CoreAPI Inspection Manage Admin
smartphone Payment Apps developed by our team FP M3com
Let’s reduce V1 V2 Askmn CoreAPI Inspection Manage Admin smartphone
Payment FP Replace and remove M3com
Admin Let’s reduce V1 V2 Askmn CoreAPI Inspection Manage smartphone
Payment FP Stop active development M3com
Admin Let’s reduce V2 Inspection Manage M3com Konmari !
Wait. Why did we have so many services?
Step By Step We cannot replace all systems at once.
Step By Step!
Step By Step, and zombie And zombie services are born.
Step By Step, and zombie The replacement is almost over.
But an old app is still alive.
Step By Step, and zombie Reason 1: 99% complete! But
a few complicated batches are running….
Step By Step, and zombie Reason 2: 99% complete! But
the http server config is complex and we need to leave the redirectors...
Progress of replacement 1 month later: 2 months later: 12
months later: 50% 95% 99%
Nonetheless, the replacement will be over soon. Thank you for
everything! Rest in peace.
Next step ? 2005-2009 : Let's just release anyway! 2009-2017
: Calm down. Let's reorganize.
Next step is SCALING. Env and Application
Background 2009-2017(Reorganize Age) The number of users was flat. And
scalability was not important. But recently we have started offering services for companies.
More users! Surely. Scalability !
Development Env 1. Add E2E tests 2. DB migration (flyway)
3. Consolidate batches (Digdag)
Application 1. Replace Full-text search (Solr => Elasticsearch) 2. Cache
strategy 3. DB ScaleUp 4. Docker
But environmental improvement tends to be postponed… RoI is a
top priority…
Engineer’s Time Within our team, engineers have time to make
technical improvements. Many improvements were made by this system.
Learn the history of your services
History Tells Us 1. How hard our predecessors worked 2.
What was the concept of the service 3. Where we are in history