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
GCP サーバーレスサービス× 少数チームによる事業立ち上げ / gcp_serverless...
Search
mokuo
September 24, 2019
Programming
3
5.3k
GCP サーバーレスサービス× 少数チームによる事業立ち上げ / gcp_serverless_startup_business
GCP サーバーレス サービスについて / アーキテクチャ / メリット / ハマりどころ / 今後の課題
mokuo
September 24, 2019
Tweet
Share
More Decks by mokuo
See All by mokuo
誰が作成しても1つの構造になるモデリング作成技術、Theory of Models に夢を見る
mokuo
41
16k
文系大学生がプログラマーを志してから現在までをふりかえり、エンジニアの キャリアについて考える / review-and-engineer-career
mokuo
0
1.1k
新規事業開発を支える技術 / Technology for new business
mokuo
1
6.6k
Eight メンション機能の フロントエンド実装 / Eight Mention Frontend
mokuo
5
6.8k
e2e_prototype_capybara.pdf
mokuo
0
190
Other Decks in Programming
See All in Programming
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
1
370
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
440
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
770
為你自己學 Python
eddie
0
520
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.2k
AHC041解説
terryu16
0
360
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
280
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
290
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
4
1.1k
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
560
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
360
YesSQL, Process and Tooling at Scale
rocio
170
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Building Your Own Lightsaber
phodgson
104
6.2k
Adopting Sorbet at Scale
ufuk
74
9.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
A designer walks into a library…
pauljervisheath
205
24k
Optimising Largest Contentful Paint
csswizardry
33
3k
Music & Morning Musume
bryan
46
6.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Transcript
($1αʔόʔϨεαʔϏεʷগνʔϜ ʹΑΔࣄۀ্ཱͪ͛ 4FSWFSMFTTٕज़ษڧձʙϑϧϚωʔδυαʔϏε׆༻ࣄྫʙ %40$%FWFMPQNFOU(SPVQΤϯδχΞా༔Ұ 4BOTBOגࣜձࣾ
Agenda - ࣗݾհ - Sansan αʔϏεհ - ߴਫ਼ͳσʔλԽΛࢧ͑Δϊϋ - GCP
αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ 2
ࣗݾհ - ా ༔Ұ - Sansanגࣜձࣾ DSOC Development Group ΤϯδχΞ
- αʔόʔαΠυΛத৺ʹϑϩϯτΤϯυɾ Πϯϑϥʹڵຯ͕͋Γ·͢ - Sansan Tech Podcast ͬͯ·͢ʂ 3
Agenda - ࣗݾհ - Sansan αʔϏεհ - ߴਫ਼ͳσʔλԽΛࢧ͑Δϊϋ - GCP
αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ 4
๏ਓ͚Ϋϥυ໊ཧαʔϏε ݸਓ໊͚ΞϓϦ
6
Agenda - ࣗݾհ - Sansan αʔϏεհ - ߴਫ਼ͳσʔλԽΛࢧ͑Δϊϋ - GCP
αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ 7
ߴਫ਼ͳσʔλԽΛࢧ͑Δϊϋ ػցͷྗͱਓͷྗΛΈ߹ΘͤΔ 8
ϛεςΠΫσΟςΫλʔ 9 ޡΓͷΛֶशͯ͠ϛεͷ ՄೳੑΛ༧ଌ ͜ΕʹΑΓɺΦϖϨʔλʔޮతʹ ࠷ऴνΣοΫΛߦ͏͜ͱ͕ՄೳʹͳΓ·͢ɻ
ݴޠॲཧఆ 10 ໊ը૾͔ΒݴޠΛఆ • ̐ݴޠʢӳதؖʣʹରԠ • σʔλԽϑϩʔͷޮԽ • ΦϖϨʔλͷৼΓ͚ͷࣗಈԽ •
ਫ਼ 98 %
߲ηάϝϯςʔγϣϯ 11 จࣈΛಡΈऔΒͣʹɺ໊ͷ σβΠϯ͔Β߲Λݟ͚Δ • ߲ผͷ݁ՌΛֶश • ୯ମϞσϧͰ߲ۣܗɺ໊߲ͷਪఆ • ਫ਼
98 %
ΦϖϨʔλʔʹΑΔೖྗ - Ұͭͷ߲ʹର͢ΔɺෳͷΦϖϨʔλʹΑΔଟॏೖྗ - ೖྗ༰ʹର͢ΔࢹνΣοΫ - ೖྗϧʔϧτϨʔχϯάͷ࡞ 12
৽ͨͳσʔλԽαʔϏεͷݕূ ຊɺߴਫ਼ͳσʔλԽϊϋΛ׆༻ͨ͠ ʮٻॻͷσʔλԽʯʹؔ͢ΔऔΓΈΛ͝հ ※ ਖ਼ࣜͳ৽αʔϏεͷൃදͰ͍͟͝·ͤΜ 13
Agenda - ࣗݾհ - Sansan αʔϏεհ - ߴਫ਼ͳσʔλԽΛࢧ͑Δϊϋ - GCP
αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ 14
GCP αʔόʔϨε αʔϏε׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 16
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 17
GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - Google App Engine - Cloud Firestore
- Cloud Tasks - Stackdriver - Cloud Storage - Cloud Functions 18
GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - Google App Engine - Cloud Firestore
- Cloud Tasks - Stackdriver - Cloud Storage => AWS S3 - Cloud Functions => AWS Labmda 19
Google App Engine PaaSʢPlatform as a Serviceʣ - εέʔϧΞτɾσϓϩΠ͕ߴ -
Πϯελϯε͕θϩ·ͰεέʔϧΠϯ - αϙʔτϥϯλΠϜ - Java, Python, Go, PHP, Node.js, Rubyʢbetaʣ 20
Cloud Firestore αʔόʔϨεͳυΩϡϝϯτࢦ NoSQL σʔλϕʔε - ΞϓϦέʔγϣϯͷෛՙʹԠͯࣗ͡ಈతʹਫฏεέʔϦϯά - ڧ߹ੑ -
ߴ͍Մ༻ੑ - ϚϧνϦʔδϣϯͰ 99.999% Ҏ্ - ϦʔδϣϯͰ 99.99% Ҏ্ 21
Cloud Firestore ͷ֊σʔλ ྫʣͦΕͧΕͷνϟοτϧʔϜʹෳͷϝοηʔδ͕͋Δ - rooms - room-A - messages
- message-1 - message-2 - … - room-B - … 22 name: “։ൃϧʔϜ” from: “ଠ”, msg: “͜Μʹͪʂ” from: “࣍”, msg: “Hello!”
Cloud Firestore ͷ֊σʔλ ྫʣͦΕͧΕͷνϟοτϧʔϜʹෳͷϝοηʔδ͕͋Δ - rooms - room-A - messages
- message-1 - message-2 - … - room-B - … 23 name: “։ൃϧʔϜ” from: “ଠ”, msg: “͜Μʹͪʂ” from: “࣍”, msg: “Hello!” ← ʢϧʔτʣίϨΫγϣϯ ← υΩϡϝϯτ ← rooms ͷαϒίϨΫγϣϯ ← υΩϡϝϯτ
Cloud Firestore ͷσʔλܕ - Map - JavaScript ͷΦϒδΣΫτɺRuby ͷϋογϡɺPython ͷࣙॻܕͷΑ͏ͳΛೖΕΒ
ΕΔ - Array - Boolean - Date and time - String - … ࢀߟ: https://firebase.google.com/docs/firestore/manage-data/data-types 24
Cloud Tasks ϑϧϚωʔδυͳλεΫΩϡʔαʔϏε - ॲཧΛඇಉظͰ࣮ߦͰ͖Δ - HTTP Target λεΫʢbetaʣ -
App Engine λεΫ - ಉ࣌λεΫͷ࠷େϨʔτ࠷େΛઃఆͰ͖Δ 25
Stackdriver ΞϓϦέʔγϣϯɺΠϯϑϥετϥΫνϟͷϞχλϦϯάͱཧ - ϩΪϯά => Stackdriver Logging - Τϥʔ௨ =>
Stackdriver Error Reporting - ϞχλϦϯά => Stackdriver Monitoring 26
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 27
༻ݴޠ 28 Cloud Functions Node.js όοΫΤϯυ Node.js, TypeScript, Express ࣗಈԽΤϯδϯ
C# ϑϩϯτΤϯυ React, Redux, TypeScript
αʔϏεͷશମ૾ 29 ٻॻը૾ σʔλԽ݁Ռ ೖྗ / σʔλԽ γεςϜ ࣾΦϖϨʔλʔ ࣗಈԽΤϯδϯ
Ϣʔβʔଆ γεςϜ σʔλԽ ٻॻσʔλԽγεςϜ Ξοϓϩʔυ
αʔϏεͷશମ૾ 30 ٻॻը૾ σʔλԽ݁Ռ ೖྗ / σʔλԽ γεςϜ ࣾΦϖϨʔλʔ ࣗಈԽΤϯδϯ
Ϣʔβʔଆ γεςϜ Ξοϓϩʔυ σʔλԽ ٻॻσʔλԽγεςϜ
ΞʔΩςΫνϟ KPI ج൫ ϩΪϯά / Τϥʔ௨ Stackdriver Ϣʔβʔଆ γεςϜ BigQuery
Cloud Pub/Sub ࣗಈԽΤϯδϯ Cloud Dataflow App Engine Cloud Functions Cloud Storage Cloud Firestore Compute Engine Cloud Tasks ೖྗ / σʔλԽ γεςϜ
ΞʔΩςΫνϟ KPI ج൫ ϩΪϯά / Τϥʔ௨ Stackdriver Ϣʔβʔଆ γεςϜ BigQuery
Cloud Pub/Sub ࣗಈԽΤϯδϯ Cloud Dataflow App Engine Cloud Functions Cloud Storage Cloud Firestore Compute Engine Cloud Tasks ೖྗ / σʔλԽ γεςϜ
ΦϖϨʔλʔ͔ΒͷೖྗΛड͚͚Δ 3 App Engine ʢNode.jsʣ Cloud Tasks Cloud Firestore ࣾΦϖϨʔλʔ
App Engine ʢSPA ΞϓϦέʔγϣϯʣ ඇಉظॲཧ
ϑΝΠϧΞοϓϩʔυͰಛఆͷॲཧΛߦ͏ - Cloud Functions ͷ Cloud Storage τϦΨʔ - Cloud
Tasks ͷ App Engine λεΫ 34 Cloud Storage Cloud Functions App Engine Cloud Tasks
ࣗಈԽΤϯδϯ - Compute Engine 35 ٻॻը૾ͱΦϖϨʔλʔͷೖྗσʔλͷηοτΛֶश গͣͭࣗ͠ಈԽ͍ͯ͘͠ ※ Web API
ͱͯ͠࿈ܞ
KPI ج൫ - Google App Engine ͔Β Cloud Pub/Sub ܦ༝ͰϩάΛૹ৴
- Tableau ͰՄࢹԽ 36 App Engine BigQuery Cloud Pub/Sub Cloud Dataflow
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 37
ϝϦοτ - ᶃ ΞϓϦέʔγϣϯͷίʔυʹूதͰ͖Δ - ᶄ αʔόʔཧෆཁ - ᶅ ίετ࠷దԽ
38
ϝϦοτᶃɿΞϓϦέʔγϣϯͷίʔυʹूதͰ͖Δ - ඇಉظ࣮ߦ - ఆظ࣮ߦ - σϓϩΠ - IPΞυϨε੍ݶ -
τϥϑΟοΫׂ 39 App Engine
ϝϦοτᶃɿΞϓϦέʔγϣϯͷίʔυʹूதͰ͖Δ - ඇಉظ࣮ߦ - ఆظ࣮ߦ - σϓϩΠ - IPΞυϨε੍ݶ -
τϥϑΟοΫׂ 40 Cloud Tasks App Engine Cron gcloud ίϚϯυ App Engine ϑΝΠΞ Υʔϧ Traffic Splitting App Engine
ϝϦοτᶃɿΞϓϦέʔγϣϯͷίʔυʹूதͰ͖Δ - ඇಉظ࣮ߦ - ఆظ࣮ߦ - σϓϩΠ - IPΞυϨε੍ݶ -
τϥϑΟοΫׂ 41 Cloud Tasks App Engine Cron gcloud ίϚϯυ App Engine ϑΝΠΞ Υʔϧ Traffic Splitting App Engine
τϥϑΟοΫׂ - Traffic Splitting - ෳόʔδϣϯͷΠϯελϯεΛಉ࣌ʹಈ͔ͤΔ - IP ΞυϨε Cookie
ͰτϥϑΟοΫΛׂͰ͖Δ - ཧը໘͔ΒΠϯελϯεͷόʔδϣϯΛมߋͰ͖Δ 42 App Engine
τϥϑΟοΫׂ - Traffic Splitting - ෳόʔδϣϯͷΠϯελϯεΛಉ࣌ʹಈ͔ͤΔ => ಈ࡞֬ೝςετ - IP
ΞυϨε Cookie ͰτϥϑΟοΫΛׂͰ͖Δ => A/B ςετ - ཧը໘͔ΒΠϯελϯεͷόʔδϣϯΛมߋͰ͖Δ 43 App Engine
τϥϑΟοΫׂ - Traffic Splitting - ෳόʔδϣϯͷΠϯελϯεΛಉ࣌ʹಈ͔ͤΔ => ಈ࡞֬ೝςετ - IP
ΞυϨε Cookie ͰτϥϑΟοΫΛׂͰ͖Δ => A/B ςετ - ཧը໘͔ΒΠϯελϯεͷόʔδϣϯΛมߋͰ͖Δ 44 App Engine
τϥϑΟοΫׂ - Traffic Splitting - ෳόʔδϣϯͷΠϯελϯεΛಉ࣌ʹಈ͔ͤΔ => ಈ࡞֬ೝςετ - IP
ΞυϨε Cookie ͰτϥϑΟοΫΛׂͰ͖Δ => A/B ςετ - ཧը໘͔ΒΠϯελϯεͷόʔδϣϯΛมߋͰ͖Δ => ϩʔϧόοΫ 45 App Engine
ϝϦοτᶄɿαʔόʔཧෆཁ - ෛՙʹԠͯ͡Φʔτεέʔϧ - αʔόʔͷϓϩϏδϣχϯά͕ෆཁ 46 App Engine Cloud Firestore
ίετ࠷దԽ - جຊ͚ͬͨͩ՝ۚ - Πϯελϯε͕θϩ·ͰεέʔϧΠϯͳͲ - Google App Engine /
Standard Environment - Cloud Run 47
ϝϦοτʢ;Γ͔͑Γʣ - ᶃ ΞϓϦέʔγϣϯͷίʔυʹूதͰ͖Δ - ᶄ αʔόʔཧෆཁ - ᶅ ίετ࠷దԽ
48
ϝϦοτʢ;Γ͔͑Γʣ - ᶃ ΞϓϦέʔγϣϯͷίʔυʹूதͰ͖Δ - ᶄ αʔόʔཧෆཁ - ᶅ ίετ࠷దԽ
49 => ݶΒΕͨϦιʔεͰεϐʔυײΛ࣋ͬͯ։ൃͰ͖Δ
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 50
ϋϚΓͲ͜Ζ - ᶃ Google App Engine ڥ - ᶄ App
Engine ϑΝΠΞΥʔϧ - ᶅ Cloud Firestore ͷσʔλϕʔεઃܭ 51
ϋϚΓͲ͜ΖᶃɿGoogle App Engine ڥ - ελϯμʔυڥ or ϑϨΩγϒϧڥ => ՄೳͳݶΓελϯμʔυڥΛ͏
- σϓϩΠεέʔϦϯά͕ߴ - Πϯελϯε͕θϩ·ͰεέʔϧΠϯ - ެࣜυΩϡϝϯτࢀর - https://cloud.google.com/appengine/docs/flexible/java/flexible-for- standard-users?hl=ja 52 App Engine
GAE/FE Λ͏໘ - Google App Engine / Flexible Environment -
- GAEΠϯελϯεΛ VPC ωοτϫʔΫʹඥ͚͍ͨ࣌ - AWS ্ͷࣾαʔϏεͱ VPN Ͱଓ͔ͨͬͨ͠ͷͰɺҰ෦ GAE/FE Λ ༻ - ݱࡏ Serverless VPC Access Λ͑ɺελϯμʔυڥ͔Β VPC Ϧ ιʔεʹΞΫηεՄೳ - Γ͑Λݕ౼த 53 App Engine
GAE/FE Λ͏໘ - Google App Engine / Flexible Environment -
- ಛఆͷϥΠϒϥϦΛ͍͍ͨ࣌ - ผαʔϏεʹΓग़ͯ͠ Docker ΠϝʔδΛ༻ - ݱࡏ Cloud Run Λ༻͢Δ͜ͱͰɺGAE/SE ͷΑ͏ͳεέʔϥϏϦ ςΟΛอͪͭͭɺDocker ΠϝʔδΛͬͨߏʹͰ͖Δ 54 App Engine
ϋϚΓͲ͜ΖᶄɿApp Engine ϑΝΠΞΥʔϧ GCP αʔϏεؒͷ௨৴ϒϩοΫ͞ΕΔ͜ͱ͕͋Δ - Cloud Pub/Sub άϩʔόϧͳαʔϏεͰ͋ΔͨΊɺ ϗϫΠτϦετՃͰ͖ͳ͍
- Cloud Tasks ෦తʹ URL ϑΣον αʔϏεΛ͍ͬͯΔͨΊɺ URL ϑΣον αʔϏεͷ IP ΞυϨεΛڐՄ͢Δ 55 Cloud Storage Cloud Functions App Engine Cloud Tasks App Engine Cloud Pub/ Sub Cloud Storage App Engine
ϋϚΓͲ͜ΖᶅɿCloud Firestore ͷσʔλϕʔεઃܭ SQL ͷΑ͏ͳ COUNT ؔͳ͍ - υΩϡϝϯτΛΨόͬͱऔ͖ͬͯͯΧϯτ͢Δ͜ͱͰ͖Δ -
ࢄΧϯλΛ͏ - ੍ɿ1 υΩϡϝϯτ͋ͨΓ 1 ඵؒʹ 1 ճ͔͠ߋ৽Ͱ͖ͳ͍ - Χϯλ༻ͷυΩϡϝϯτΛෳ༻ҙͯ͠ɺϥϯμϜʹΠϯΫϦϝϯτ͢Δ - શυΩϡϝϯτΛऔಘͯ͠߹ܭΛܭࢉ͢Δ - FieldValue.increment() Λ͏ʢv1.1.0 ͰϦϦʔεʣ - ཁ݅ʹΑͬͯɺRedis ͳͲͰΧϯτ͢Δͷ͋Γ 56 Cloud Firestore
Firestore Ͱؔ࿈ΛͲͷΑ͏ʹ͔࣋ͭ ॻ͖ࠐΈಡΈࠐΈͷසͰஅ͢Δ - 1 : N ͷσʔλʹ͍ͭͯ - Ұॹʹѻ͏͜ͱ͕ଟ͍߹
=> Array ܕͱͯ͠ϑΟʔϧυʹ࣋ͨͤΔ - 1 υΩϡϝϯτ͋ͨΓ 1 ඵؒʹ 1 ճ͔͠ߋ৽Ͱ͖ͳ͍ - ผʑʹѻ͏͜ͱ͕ଟ͍߹ => αϒίϨΫγϣϯʹ࣋ͨͤΔ - ίϨΫγϣϯͱαϒίϨΫγϣϯʹ·͕ͨͬͨΫΤϦͰ͖ͳ͍ 57 Cloud Firestore
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 58
ࠓޙͷ՝ - ᶃɿ։ൃڥ - ᶄɿಈ࡞֬ೝ - ᶅɿੳܥΫΤϦ - ᶆɿΤϥʔ௨ =>
͜Ε͔Β͍͑ͯ͘ 59
ࠓޙͷ՝ᶃɿ։ൃڥ - Cloud Firestore 1 ϓϩδΣΫτʹ 1 ͔ͭ͠ DB
Λ࡞Εͳ͍ - ։ൃɾࣗಈςετ - Cloud Tasks Push ͳͷͰɺϩʔΧϧʹ͚ΒΕͳ͍ - ։ൃ࣌ Cloud Tasks ΛϞοΫ͢Δ͔ 60
ࠓޙͷ՝ᶄɿಈ࡞֬ೝ - Heroku Review Apps ͷΑ͏ͳ͜ͱΛ͍ͨ͠ - PR ͝ͱʹڥΛཱͯΔ -
Google App Engine ෳόʔδϣϯͷΠϯελϯεΛಉ࣌ʹಈ͔͢͜ͱ ͕Ͱ͖Δ 61
ࠓޙͷ՝ᶅɿੳܥΫΤϦ - SQL ͷΑ͏ʹॊೈͳΫΤϦͳ͍ - BigQuery ʹσʔλΛΠϯϙʔτ͢Δ 62
ࠓޙͷ՝ᶆɿΤϥʔ௨ - Stackdriver Error Reporting ͔Βͷ ϝʔϧ௨Λ Gmail ͷϑΟϧλػೳͰ Slack
ʹ௨͍ͯ͠Δ - λΠϜϥά͕͋Δ - ςΩετΛΧελϚΠζͰ͖ͳ͍ - Datadog ͷूΛݕ౼ 63
GCP αʔόʔϨε αʔϏεͷ׆༻ࣄྫ ʙ৽ͨͳσʔλԽαʔϏεͷݕূʙ - GCP αʔόʔϨε αʔϏεʹ͍ͭͯ - ΞʔΩςΫνϟ
- ϝϦοτ - ϋϚΓͲ͜Ζ - ࠓޙͷ՝ - ·ͱΊ 64
·ͱΊ GCP αʔόʔϨε αʔϏε - ݶΒΕͨϦιʔεͰεϐʔυײΛ࣋ͬͯ։ൃͰ͖Δ - ϑϧϚωʔδυɺΦʔτεέʔϧͷྑ͞ΛڗडͰ͖ΔҰํͰɺ੍Ϋη͕ ͋Δ -
ϝϯόʔ͕૿͑ͯ͘Δͱɺ։ൃڥͳͲͷඋʹ͕ඞཁ 65
͍͞͝ʹ
We are hiring!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠