Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
GCP サーバーレスサービス× 少数チームによる事業立ち上げ / gcp_serverless_startup_business
mokuo
September 24, 2019
Programming
3
970
GCP サーバーレスサービス× 少数チームによる事業立ち上げ / gcp_serverless_startup_business
GCP サーバーレス サービスについて / アーキテクチャ / メリット / ハマりどころ / 今後の課題
mokuo
September 24, 2019
Tweet
Share
More Decks by mokuo
See All by mokuo
文系大学生がプログラマーを志してから現在までをふりかえり、エンジニアの キャリアについて考える / review-and-engineer-career
mokuo
0
800
新規事業開発を支える技術 / Technology for new business
mokuo
1
1.8k
Eight メンション機能の フロントエンド実装 / Eight Mention Frontend
mokuo
5
1.9k
e2e_prototype_capybara.pdf
mokuo
0
95
Other Decks in Programming
See All in Programming
FargateとAthenaで作る、機械学習システム
nayuts
0
150
Recap CDN, Edge, WebAssembly | ワインと鍋.js#1
sadnessojisan
2
1.2k
20220706_Google Apps Scriptを実演で学ぶ~ GAS × Slack ~
apachan
2
610
Getting Started With Data Structures
adoranwodo
1
250
2022年のモダンCSS改
tonkotsuboy_com
24
16k
実践的!FPGA開発セミナー vol.11
fixstars
0
110
Edge Side Frontend という新領域
mizchi
21
10k
サーバーレスパターンから学ぶデータ分析基盤構築 / devio2022
kasacchiful
0
470
테라폼으로 ECR 관리하기 (How to Manage ECR with Terraform)
posquit0
0
520
SwiftUI+TCAに挑戦!NewsPicks iOSアプリのリアーキテクチャ/re-architecture-newspicks-ios-app-with-swiftui-and-tca
takehilo
0
380
Pythonによる開発をアップデートするライブラリの紹介
daikikatsuragawa
1
330
動画合成アーキテクチャを実装してみて
satorunooshie
0
540
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
157
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
No one is an island. Learnings from fostering a developers community.
thoeni
9
1.3k
4 Signs Your Business is Dying
shpigford
169
20k
Typedesign – Prime Four
hannesfritz
34
1.4k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
173
8.6k
The Web Native Designer (August 2011)
paulrobertlloyd
75
2k
Faster Mobile Websites
deanohume
294
28k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
Building a Scalable Design System with Sketch
lauravandoore
448
30k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
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!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠