Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kintone.comを支える技術
Search
Shin'ya Ueoka
October 27, 2021
Technology
0
220
kintone.comを支える技術
2021年のサイボウズエンジニア向け会社説明会で使用した資料です
Shin'ya Ueoka
October 27, 2021
Tweet
Share
More Decks by Shin'ya Ueoka
See All by Shin'ya Ueoka
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
1.2k
どこで動かすか、誰が動かすか 〜 kintoneのインフラ基盤刷新と運用体制のシフト 〜
ueokande
0
280
kintone開発組織のDevOpsへの移り変わりと実践
ueokande
3
1.2k
運用できる開発組織の作り方 ― kintone開発組織のストーリー
ueokande
0
160
英語ができなかった自分達が、グローバルチーム立ち上げに挑戦!?
ueokande
1
990
技術書典12協賛企業サイボウズゲストトーク
ueokande
0
290
サービス間をテストするフレームワーク集
ueokande
0
350
SLO策定とアラート設定までの長い道のり
ueokande
6
4.9k
オンラインイベントを 半年運営して気づいたこと
ueokande
0
120
Other Decks in Technology
See All in Technology
品質のための共通認識
kakehashi
PRO
3
250
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
280
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
200
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
360
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
190
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
180
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
440
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.2k
eBPFとwaruiBPF
sat
PRO
4
2.6k
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
430
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
610
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Embracing the Ebb and Flow
colly
88
4.9k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Docker and Python
trallard
47
3.7k
Code Reviewing Like a Champion
maltzj
527
40k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
A designer walks into a library…
pauljervisheath
210
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Done Done
chrislema
186
16k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Transcript
kintone.comΛࢧ͑Δٕज़ kintone։ൃYakumoج൫νʔϜ ্Ԭ ਅ (@ueokande) αΠϘζٕज़આ໌ձ for student!!
Me • αΠϘζ2016৽ଔೖࣾ • άϩʔόϧ͚B2BΫϥυαʔϏε kintone.comͷ։ൃɾӡ༻Λͯ͠·͢ • झຯࣾ֎ൃ৴ 2
kintone • ۀγεςϜΛ؆୯ʹ࡞ΕΔ B2B͚ΫϥυαʔϏε • ࠃ֎21,000+ࣾͰಋೖ • άϩʔόϧ͚ʮkintone.comʯ ͱ͍͏ϒϥϯυͰల։ 3
ຊ͚ʮkintoneʯͱʮkintone.comʯ • ຊ͚kintoneࣗࣾΫϥυج൫ʢcyboozu.comʣͰఏڙ͠ɺ άϩʔόϧ͚ͷkintone.comAWSͰఏڙ • ҎલࠃͷΫϥυج൫Ͱӡ༻͍͕ͯͨ͠ɺ2020ʹAWSʹҠߦ • Ҡߦ୯ͳΔҾͬӽ͠Ͱͳ͘ɺΠϯϑϥج൫ମ੍Λ࠶ߏங 4
kintone.comͷνϟϨϯδ • ։ൃମ੍Πϯϑϥج൫Λθϩ͔ΒઃܭͰ͖Δνϟϯε • ࠃϓϩμΫτ։ൃʹઌۦ͚৽͍ٕ͠ज़ʹνϟϨϯδ • ΫϥυωΠςΟϒͳ։ൃɾӡ༻ • ܧଓతσϦόϦʔͱσϓϩΠύΠϓϥΠϯ •
SLOʹجͮ͘৴པੑ্ͱܧଓతվળ • … 5
ΫϥυωΠςΟϒͳ։ൃɾӡ༻ • kintoneͷόοΫΤϯυαʔϏείϯςφΞϓϦέʔγϣϯͱͯ͠ Amazon EKSʢϚωʔδυKubernetesʣ্ʹσϓϩΠ 6 Amazon KES Web Job
Queue Mail Delivery Routine Blob Thumbnail kintone.comͷόοΫ ΤϯυαʔϏε Kubernetes্ʹσϓϩΠ σʔλͷอଘઌ αʔϏεͷج൫ AWSͷαʔϏεΛ Έ߹Θͤͯߏங
ܧଓతσϦόϦʔͱσϓϩΠύΠϓϥΠϯ • ΠϯϑϥͷߏΛίʔυԽͯ͠GitཧʢInfrastructure as Codeʣ • GitHub্ͰPull RequestΛϚʔδͨ͠Βຊ൪ڥ·ͰࣗಈͰద༻ • ࡉ͔͍୯ҐͰϦϦʔεͯ͠ਝͳϑΟʔυόοΫΛಘΒΕΔ
• masterϒϥϯνͷίʔυ = ຊ൪ڥͷߏ 7 %FWFMPQNFOU 4UBHJOH 1SPEVDUJPO
• kintoneଞͷϢʔβʔʹϝʔϧͰ௨͢Δػೳ͕͋Δ • ಛఆͷ͓٬༷ʹΑ੍ͬͯݶͳ͘ϝʔϧΛૹΔ͜ͱ͕Ͱ͖ͨ • Amazon SESʢϝʔϧαʔϏεʣʹ24࣌ؒʹૹΕΔϝʔϧ݅ͷ੍ݶ͕͋Δ • ্ݶʹୡ͢Δͱkintone.comશମͰϝʔϧ͕ૹΕͳ͘ͳΔ •
SESͷ্ݶʹୡ͠ͳ͍Α͏ͳ͘͠Έ͕ඞཁ ࣮ࡍͷ։ൃྫ: ϝʔϧͷεϩοτϦϯά 8 📧 📧 Amazon SES Web Mail Delivery 📧
ઃܭͱઓུʛϝʔϧͷεϩοτϦϯά • ϝʔϧ৴αʔϏεʹεϩοτϦϯάͷػߏΛೖΕΔ Before: WebϦΫΤετͰड͚औͬͨϝʔϧΛSESʹ͢ After: ड͚औͬͨϝʔϧΛΩϡʔʹೖΕͯɺऔΓग़͢ͱ͖ʹ 9 Amazon SES
Web Mail Delivery Enqueue Dequeue 📧 📧 Amazon SES Web Mail Delivery 📧 Before After
ΩϡʔͷߏஙʛϝʔϧͷεϩοτϦϯά • Amazon SQSʢϚωʔδυΩϡʔʣʹϝʔϧδϣϒΛΩϡʔΠϯά • AWSͷΠϯϑϥߏΛYAMLͰهड़ͯ͠CloudFormationͰద༻ 10 Resources: MailQueue: Type:
“AWS::SQS: Properties: QueueName: "Mai FifoQueue: true ContentBasedDed MessageRetentio ReceiveMessageW HogeHoge.yaml CloudFormation Amazon SQS
• ϝʔϧ৴αʔϏεʢKotlin + Spring Bootʣ͕SQSʹΞΫηε͢ΔΑ ͏ίʔυΛमਖ਼ • मਖ਼ͨ͠αʔϏεΛKubernetes্ʹσϓϩΠͯ͠ࢼݧ αʔϏεͷमਖ਼ʛϝʔϧͷεϩοτϦϯά 11
Amazon SES Web Mail Delivery # αʔόʔαΠυKotlin͍͍ͧʂ
ຊ൪ڥσϓϩΠʛϝʔϧͷεϩοτϦϯά • αʔϏεͱYAMLͷमਖ਼͕ऴΘͬͨΒνʔϜͰίʔυϨϏϡʔ • masterϚʔδͯ͠͠Βͭ͘ͱຊ൪ڥʹద༻ 12 αʔϏεͷίϯςφϏϧυ %FWFMPQNFOU 4UBHJOH 1SPEVDUJPO
$MPVE'PSNBUJPOͷద༻ &,4্ʹαʔϏεΛల։ ౷߹ςετ
·ͱΊ • kintone.comࣾͰ߈ΊͨνϟϨϯδΛ͖ͯ͠·ͨ͠ • ΫϥυωΠςΟϒͳ։ൃӡ༻ϓϩηεܧଓతσϦόϦʔͳͲ • ͦΕʹΑΔਝͳ։ൃαΠΫϧߴͳϑΟʔυόοΫ • ͜Ε͔ΒࠃͷϓϩμΫτ։ൃʹϑΟʔυόοΫ༧ఆͰ͢💪 13