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.5k
GCP サーバーレスサービス× 少数チームによる事業立ち上げ / gcp_serverless_startup_business
GCP サーバーレス サービスについて / アーキテクチャ / メリット / ハマりどころ / 今後の課題
mokuo
September 24, 2019
Tweet
Share
More Decks by mokuo
See All by mokuo
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
61
23k
誰が作成しても1つの構造になるモデリング作成技術、Theory of Models に夢を見る
mokuo
47
21k
文系大学生がプログラマーを志してから現在までをふりかえり、エンジニアの キャリアについて考える / review-and-engineer-career
mokuo
0
1.2k
新規事業開発を支える技術 / Technology for new business
mokuo
1
7k
Eight メンション機能の フロントエンド実装 / Eight Mention Frontend
mokuo
5
7.2k
e2e_prototype_capybara.pdf
mokuo
0
240
Other Decks in Programming
See All in Programming
AIコーディングAgentとの向き合い方
eycjur
0
240
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
210
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
750
コーディングエージェント時代のNeovim
key60228
1
110
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
150
Constant integer division faster than compiler-generated code
herumi
2
700
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
2
270
あのころの iPod を どうにか再生させたい
orumin
2
2.5k
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
100
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
110
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.6k
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
140
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Making Projects Easy
brettharned
117
6.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Designing for humans not robots
tammielis
253
25k
GraphQLとの向き合い方2022年版
quramy
49
14k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
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!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠