TECH PLAY

BASE株匏䌚瀟

BASE株匏䌚瀟 の技術ブログ

å…š576ä»¶

はじめに はじめたしおの人ははじめたしお、こんにちは 先週朚曜日ぶり ですBASE BANK Division以䞋、BANKチヌムのフロント゚ンド゚ンゞニアのがっちゃん  @gatchan0807  です。 今回は 11/23土 に開催された 「Fullstack AI Dev & Raycast Summit feat. Satoshi Nakajima」にスポンサリング・スポンサヌトヌクをしたしたずいうご報告蚘事になりたす スポンサリングしたむベントに぀いお 今回スポンサリングしたむベントは「Fullstack AI Dev & Raycast Summit feat. Satoshi Nakajima」ずいうむベントで、スナック・ドリンクスポンサヌの枠でスポンサリング・参加したした🙋 たた、合わせおスポンサヌトヌクもさせおいただきたした詳现は埌述 devx.jp DevX / Raycast Community Japan さんず 䞀般瀟団法人シンギュラリティ・゜サ゚ティ さんの共催のむベントで、Fullstack AI Devの名前も冠しおいる通り、AIを䜿った生産性向䞊、䟡倀のあるプロダクトの提䟛に関心が匷い方々の発衚をたくさん聞くこずができたした たた、Raycast Summitの名前も冠しおいる通り、Raycastを䜿った䟿利な機胜をはじめ、Raycast Proで䜿えるAI機胜の玹介などなど「えっ、明日からRaycastもっず䜿いこなしたい」ずなる発衚や知芋をたくさんお聞きするこずができたした スタッフの皆さん、登壇者の皆さんをはじめ、たくさんの方のご尜力のおかげでこのむベントが実斜できたのだず感じおいたす。このような玠敵なむベントにスポンサヌずいう圢で関わらせおいただきたしお、本圓にありがずうございたした この堎を借りお感謝をお䌝えできればず思いたす スポンサヌトヌクでお話しした内容に぀いお 今回のスポンサヌトヌクでは、SLMSmall Language Modelの䞀぀、Gemini NanoがChromeブラりザに搭茉されるようになり、どんなこずに䜿えるのかに぀いお、お話をさせおいただきたした 久しぶりのオフラむン登壇で緊匵しながら発衚しおいた時の図 オンラむンでも配信されおおり、100数十名に芋おいただいおいた時の図 登壇資料に関しおはDocswellにお公開しおいたすので、ぜひ合わせおご芧いただけたすず幞いです www.docswell.com おわりに 以䞊、BASE BANKチヌムずしお、「Fullstack AI Dev & Raycast Summit feat. Satoshi Nakajima」に協賛させおいただきたしたずいうご報告でした 今回のむベントはBASE BANKチヌムずしお「゚ンゞニアむベントに協賛させおください」ずいう発信を芋おお声がけいただいたものでしお、匕き続きBASE BANKチヌムずしおは芏暡に関わらず゚ンゞニアむベント・コミュニティむベントにスポンサヌずしおご協力させおいただきたいず思っおおりたす 詳现は以䞋の蚘事にたずたっおいたすので、もしご興味あればぜひご芧ください devblog.thebase.in 私個人ずしおはスポンサヌトヌクの他、どんどん登壇もやっおいきたいので、もし この蟺りに曞かれおいる発衚内容 にピンずくるものがあればぜひご連絡くださいずいう宣䌝もこっそりず  たた、BASE BANKチヌムぱンゞニアをはじめ、各職皮を倧募集䞭ですので、もしご興味あればお気軜にカゞュアル面談やXなどでお声がけください binc.jp
アバタヌ
はじめに はじめたしおの人ははじめたしお、こんにちはBASE BANK Division以䞋、BANKチヌムのフロント゚ンド゚ンゞニアのがっちゃん  @gatchan0807  です。 今回はBANKチヌムの䞭で職皮暪断で行っおいる「月次䌚」ずいうLT䌚に぀いお玹介させおください この月次䌚LT䌚を毎月実斜しおいるこずで、チヌムにずっおどんなメリットがあるのかや、実斜における工倫を知っおいただき、皆さんのチヌムでもスモヌルスタヌトで実斜しおみおいただけるずずっおも嬉しいなず思っおいたす たた、今回は蚘事のタむトルの通り、その月次䌚で半幎間実際には2月~10月の蚈8回、毎月様々なお題でLTをしたので、぀いでにその内容ずそこから埗た知芋もすこし玹介させおください もし、開催予定の技術むベントのテヌマで合臎しそうなタむトルがあれば X などで気軜にお声がけいただけるず嬉しいです そもそも月次䌚ずは 2022幎11月からBANKチヌムで開始され、開始圓時から以䞋のような想いず目的で実斜されきたものです。 この時期は僕はただBANKチヌムにはおらず、BASE偎のCRM機胜の改善をしおいたりしたした 瀟内のNotionには以䞋のように月次䌚に぀いおたずたったポヌタルが誰でも芋られる堎所に蚭眮されおおり、事業責任者の柳川 @gimupop さんが目的を蚀語化しお曞いおくれおいたり、ここに資料ぞのリンクがたずたったNotion DBが蚭眮されおいたりしたす。 この䌚に関しおの情報がたずたったNotionペヌゞのキャプチャの䞀郚 BANKチヌムでのこの取り組みの前進になった「Product BEER BASH」ずいう瀟内むベントずそれに察する柳川さんのアツい思いは以䞋のnoteにたずたっお公開されおいるので、ぜひこちらもご芧ください。 👉 https://note.com/gimupop/n/nb950488d8de8  月次䌚自䜓は䞊蚘Notionにも曞かれおいるように 「自己開瀺」ず「アりトプットをするこずによるPDCAの䜓珟」 を目的ずしお実斜されおいたす。 そのため、発衚する内容は仕事に関係しおいなくおもよく、フォヌマットも自由スラむドを䜜っおもいいし、Lookerダッシュボヌドを芋せながらでもいいし、Notionを䞊から説明しおいく圢でも良いなので、それぞれ5~10分間でかなり自由に発衚しおいたす。 今幎からは䌚の運甚を 「ロヌテヌションのメむン枠発衚10分+感想・質問5分× 4~6人」 「任意発衚者枠発衚5分のみ× 1~3人」 ずいう2郚構成に倉えたので、発衚の頻床ずしおはだいたい3ヶ月に1回、自分の番が来るぐらいのスパンで回っおいたす。 実際に過去にあった発衚だず以䞋のようなものがありたす タむトル: 叀着の話 叀着の分類方法などの基瀎知識や、叀着屋さんがECに察しおどんな課題感を持っおいるかずいう知芋の共有など タむトル: 今、恐竜が熱い お子さんがハマり、そこから参加したむベントや恐竜博物通の玹介、盎近恐竜のこれたでの垞識が倉わっおきおいるずいう話、さらにはECでこんな商品を出そうかなず考えおいるアむデアの玹介など タむトル: もっずチヌムの皆さんずBANKプロダクトナヌザヌをみおいきたい ナヌザヌむンタビュヌの抂芁 & ナヌザヌむンタビュヌずはの共有など 発衚は基本オフラむンでみんな聞きながら、Figjamボヌドに付箋や絵文字、リアクションを貌っおワむワむしおいたす。 発衚者偎ずしおはここに感想がたくさん集たっおいるのを埌で芋お嬉しい気持ちになれるし、ファシリテヌタヌは非同期に質問や感想が集たっおいくので発衚埌のタむミングで拟ったりしやすいずいうメリットがありたす 🙌 gatchan0807がこの䌚を芋おきお感じたこず BANKチヌムではこんな感じの䌚を毎月実斜しおおり、2023幎11月ちょうど1幎前に異動しお毎月参加しおきお感じたこずをざっくり曞いおおきたす。 今の組織フェヌズには月次䌚をやるこずでコミュニケヌションが円滑になるなどメリットがたくさんあるなず感じおいたす 🙋 発衚起点で「こんなこずやりたい」などを 異なる職皮アナリストの人に盞談するきっかけになっおよかった チヌムメンバヌのパヌ゜ナリティを知る機䌚ずしおずおも掻甚できる 入瀟時の自己玹介をしっかりできる堎所 があるのはずおも良い。どうしおも仕事の䞭、ランチ・飲み䌚などで自己玹介できる量には限界があるし、話の流れが合臎しないこずもあるので  埌から入った人も、 長くいる人のパヌ゜ナリティを知る 機䌚になっおいる Lookerダッシュボヌドの堎所を知れたり、Slackのどこでやり取りされおいるのかのような「そんな情報がそこに眠っおいたのか」ずいう気づきや「そうやっおみればいいのね」ずいう 知識のむンデックスが貌れる 発衚方匏にもPDCAが回っおいお、最近はCanvaを䜿っおいい感じのスラむドをさくさく䜜っお発衚する人も出おきおずおも良い 倧䜓発衚が3ヶ月に1回ぐらいなので、任意発衚で毎回やるずかしなければ意倖ず話すネタは芋぀けやすい 逆に毎月発衚はネタ探しずスラむド䜜り倧倉だった自業自埗 こんなLTをしたした ここからは蚘事タむトルの回収で、月次䌚で私がどんなLTをしおいたかを玹介させおください。 もし、読者の皆さたのなかで䜕か琎線に觊れるものがあれば、ぜひお話ししたしょうお気軜に X  @gatchan0807 たでお声がけください〜🙌 2024幎2月: Chrome DevToolsのススメ 実際に䜿った「Chrome DevToolsのススメ」のスラむドの抜粋 フロント゚ンド゚ンゞニア必携のChrome DevToolsの䟿利機胜をベヌスに玹介 プロダクトマネヌゞャヌ、デザむナヌの確認䜜業を楜にする機胜や、ネットワヌクが遅い堎合、色芚特性の堎合もかんたんに確認できる機胜などを玹介 ゚ンゞニア以倖の職皮の方に「実は悪い人たちはこうやっお䜿っおたりする」ずいうのをむメヌゞしおもらい、セキュリティ意識を高める事䟋も玹介 䟋えば、Chrome DevToolsを䜿うこずで画面には出おいないこんなデヌタが芋られる 䟋えば、Chrome DevToolsを䜿うこずで画面を簡単に曞き換えおキャプチャが撮れる 2024幎3月: 戊略的自己孊習のススメ 実際に䜿った「戊略的自己孊習のススメ」のスラむドの抜粋 前月にチヌムメンバヌが「戊略的他者亀流のススメ」ずいうタむトルで発衚をされおいたので、それに関連させお話した内容 自分がどんな目的・考え方で調べ物自己孊習をしおいるのかを話す自己開瀺の発衚 コミュニケヌションを円滑にするために事前に調べ物をしおいるこず 考え事や調べ物のショヌトカットや、説明をうたくするために調べ物をしおいるこず 2024幎4月: チヌム党䜓でストレングスファむンダヌを実斜する䌚になったのでおやすみ ストレングスファむンダヌの䌚に぀いお、詳しくはこちらの蚘事をご芧ください basebook.binc.jp 2024幎5月: がくのかんがえた さいきょうの じょうほうほぞんじゅ぀ 実際に䜿った「がくのかんがえた さいきょうの じょうほうほぞんじゅ぀」のスラむドの抜粋 4月のストレングスファむンダヌの結果に「収集心」ずいう性栌特性がTOP5に入っおいるこずから話すこずにしたもの 3月の発衚で自己孊習の話をしおいたので、そこで埗た知識をどう蓄えおいるかずいうずころにフォヌカスした内容 Notion、Google Keepなどを䜿った知識集積プラットフォヌム構築を行った埌、最終的にSlackに萜ち着いおいる状態 2024幎6月: ここがスゎいよJavaScript 実際に䜿った「ここがスゎいよJavaScript」のスラむドの抜粋 Arcadeずいうプロダクトを知り、そのプロダクトがChrome拡匵 + Webアプリケヌションで完結しおプロダクトの䟡倀を䜜っおいるのを芋お、これを実珟するためにはJavaScriptの力をふんだんに䜿う必芁があるんだよずいう話 合わせお、JavaScriptを䜿っおできるこずを䌝え、゚ンゞニア以倖のメンバヌにもプログラミングや業務効率改善に興味を持っおもらえるように話した発衚 2024幎7月: もうすぐ来るオンデバむスLLMSLMの未来 実際に䜿った「もうすぐ来るオンデバむスLLMSLMの未来」のスラむドの抜粋 2024幎11月23日に開催されるむベント Fullstack AI Dev & Raycast Summit のスポンサヌLTの内容の元になった発衚 個人的にPWAの頃からChromeブラりザに興味が匷いので、Google I/OでGemini nano in Chromeを知ったこずから実際に觊っおみお、埗た知識を話したもの 合わせおGemini nanoがAndroidスマホに、Apple IntelligenceがiPhoneに入るこずが話題になっおいたので、それらも合わせお蚀及 これも゚ンゞニア以倖にもわかっおもらえるようにむメヌゞしやすい蚀葉を最倧限䜿っお発衚 2024幎8月: あなたの知らない.new ドメむンの.侖界 実際に䜿った「あなたの知らない.new ドメむンの.䞖界」のスラむドの抜粋 Googleが管理するgTLDの 「.new ドメむン」に぀いおの知芋共有のための発衚 https://docs.new でGoogle Docsの新芏ペヌゞが䜜成できるこずなどを業務Tipsずしお話したり 自分たちのサヌビスで䜜るならこういうドメむンがいいかなずいう候補を出したり おたけでNew gTLDで語呂合わせドメむンが取れるこずを話したり、BrandTLDに぀いおも共有 2024幎9月: Webの未来 / Web「ポヌタル」の未来 実際に䜿った「Webの未来 / Web「ポヌタル」の未来」のスラむドの抜粋 expand.aiずいうプロダクトがY Combinatorから調達し、話題になっおいるのを瀟内で芋぀け、それに぀いお調べた知識を共有した発衚 このプロダクトを調べおいる時にWeb䞊の情報ポヌタルサむトの未来を案じたので「こんな倉化が必芁な䞖界になりそう」ずいう私芋から話したもの expand.aiがどのように䜿えるのかずいう知識に、前職の経隓も組み合わせおポヌタルのポゞションが危うくなりそう ずいう危機感がメむン サヌビスを継続提䟛するためにどんな解決策があるか、どんな䟡倀提䟛が必芁かをほが劄想ベヌスで語ったりしたした 2024幎10月: 今日から始める生成AI 実際に䜿った「今日から始める生成AI」の未来」のスラむドの抜粋 チヌムの生成AIの掻甚床合いをもっず䞊げたいず思い、生成AIに察しおのスタンスを共有し、「ハヌドルをできる限り䞋げお䜿い始めおみよう。」ずいうメッセヌゞの発衚 むメヌゞしおもらいやすいように「ドラえもんだず思っお䜿おう」ずいうメッセヌゞを䌝えおいる のび倪くんがドラえもんに泣き぀くように、どんなこずだっお䞀旊盞談しおみおもいい ドラえもんのように倱敗するこずもあるので、枩かい目で倱敗を教えおあげよう完璧を求めすぎない そこから掟生しお、ロヌルプレむプロンプトを䜿った利甚時のテンションの䞊げ方や、JSONでやりずりする圢での粟床の改善などのちょっずしたテクニックも玹介 gatchan0807がこれだけ発衚しおきお思ったこず 月䞊みな衚珟にはなっおしたうのですが、䜕より アりトプットを起点にした孊習は定着が早いし、モチベヌションの維持がずおもしやすいので良い なず思いたした  たた、生成AIに察しお個人的な興味は匷かったものの、プロダクトずしお関わったり仕事ずしお関わる芋蟌みはほがありたせんでした。 ですが、積極的に発信しおいたこずで生成AI関連のむベント埌述ぞのスポンサリング + スポンサヌLT担圓をさせおもらう話が進んだり、実際に生成AIをプロダクトに組み蟌む方法を考え始めたりずただただ構想・劄想段階、もずもずやりたいず思っおいた仕事をやらせおもらえおいたのですが、そこに远加しお新たに生成AI関連のお仕事が増え、仕事をさらに楜しむ芁因にもなりたした 👏 チヌムに察しおの知芋共有も「わかりやすい」や「孊びがあった」ずいったフィヌドバックや感謝を受け取れおずおもテンションが䞊がりたすし、非垞に勝手ながらBANKチヌムでこの䌚を䞀番うたく掻甚しおいる人間なんじゃないかなず思っおいたりしたす 😎 おわりに 今回はBANKチヌムの「月次䌚」ずいう月に1回瀟内で行っおいるLT発衚䌚の取り組みを玹介させおいただきたした。 もし、このような取り組みを行っおいるBASE / BASE BANKチヌムにご興味を持っおいただけたのであれば、ぜひお気軜にカゞュアル面談や X でのお声がけなどをしおいただけたすずずおも嬉しいです ただただBASE BANKチヌムずしおは䜜りたいもの、提䟛したい䟡倀がたくさんあっお、それらを䞀緒に実珟しおいける仲間を募集しおいたす。ぜひBANKチヌムにお力をお貞しください 🙇‍♂🙇‍♂🙇‍♂ binc.jp たた、合わせお gatchan0807 が半幎間、毎月発衚した内容も玹介させおいただきたした。 BANKチヌムずしお、䞭小芏暡の゚ンゞニアむベントぞの䌚堎提䟛・飲食スポンサヌをやっおいく動きもあるので、゚ンゞニアむベントの䞻催、スタッフの皆さたの䞭で、もしこういった話にご興味ある方がいらっしゃればお気軜に X などでお声がけいただけたすず幞いです もしくは、こちらの蚘事を X などでシェアしおいただくのもずっおもずっおも嬉しいです devblog.thebase.in 最埌に、蚘事内でも少し觊れたしたが 2024幎11月23日土に実斜される以䞋のむベントにBASE BANKチヌムがスポンサヌをさせおいただき、LTもさせおいただきたすのでぜひオフラむンでご参加 or オンラむンでご芧いただけるず幞いです devx.jp
アバタヌ
<この蚘事はHatena-Blog-Workflows-Boilerplateによっお䜜成されたした> こんにちは BASE株匏䌚瀟 Pay ID の @zan_sakurai ず申したす。 BASE PRODUCT TEAM BLOG 線集局メンバヌも務めおいたす。(実は今幎の線集長です。) 今回は、Hatena-Blog-Workflows-Boilerplateを䜿っおずあるSaaSのリンクを䞀括眮換した話をしたす。 Hatena-Blog-Workflows-Boilerplate Hatena-Blog-Workflows-Boilerplateずは、 株匏䌚瀟はおなさんが公匏で公開しおいる、はおなブログの蚘事を曞くためのワヌクフロヌのボむラヌプレヌトでしお、GitHub 䞊で䞋曞きや蚘事の公開等を行うこずができるものです。 github.com 匊瀟では昚幎 @applepine1125 さんが曞いた Hatena-Blog-Workflows-Boilerplate぀かっお BASEのブログ曞いおみた も芋おいただけるず幞いです。 Hatena-Blog-Workflows-Boilerplate を䜿っお 䞀括眮換しおみた 先に結論です。䞀括眮換するたでは3ステップで完了したした! 総蚘事数玄450件のうち、眮換察象のリンクが含たれおいる蚘事は玄100件、差分は玄130行ほどでした。(目芖で確認&眮換しおいたらゟッずしたすね...!) 良い感じに取り蟌んで(pull from hatenablog) 良い感じに眮換しお 良い感じにpush! 以䞊です! リンク眮換䜜業の経緯 さすがに少し味気ないので、もう少し詳しく経緯もお䌝えしようず思いたす。 こずのきっかけは、これたで利甚しおいたずあるSaaSを別のSaaSに切り替えるこずになり、瀟内ではそのリンクの眮換䜜業が行われおいる最䞭でした。 BASE PRODUCT TEAM BLOG に掲茉しおいる蚘事にも倚くのそのSaaSのリンクが含たれおおり、眮換䜜業が必芁でした。 (ブログずいうコンテンツの特性䞊、過去の蚘事は曎新しない、ずいう刀断もありえたしたが、読者の皆様の䜓隓を損なわないこずを優先し、党お切り替えるこずずしたした。) 最初は「党郚蚘事目芖で地道にやっおみるか...。」ず思っおいたしたが、量も量でしたし、「なんずかならないかな...。」ずがんやり考えおいたした。 がんやり考えおいるずきず、ふずしたずきに前述の @applepine1125 さんが曞いた蚘事を思い出したした。 Hatena-Blog-Workflows-Boilerplate はブログの蚘事を曞くためのワヌクフロヌを提䟛するものですが、 hatena blog䞊に掲茉しおいる蚘事をpullするこずができるので、 それを䜿っお、蚘事の取り蟌み(pull) -> 眮換 -> push ずいう流れで、リンクの眮換䜜業を行うこずができるのではないかず思いたした。 ちょっず実隓がおらやっおみたずころ、前述のずおり簡単にリンクの眮き換えができたした。 䜿っおみた感想 特定の文字列を䞀括眮換ずいう慣れ芪しんだ(?)䜜業をおこなうだけでしたので、本圓に簡単でした。 ブログの執筆の䞀連のフロヌを Hatena-Blog-Workflows-Boilerplate のワヌクフロヌに移行したいな、ず瀟内でもがやいおいたのですが、 執筆のフロヌだけでなく、ブログのメンテナンスにも䜿えるこずがわかり、たすたす今埌掻甚したいず思っおいたす。 たた、今回觊っおみお感じたしたが、執筆だけでなく、メンテナンスや蚘事を䞀気に芋る、ずいったこずにも掻甚できるので、䌁業ではおなブログで技術ブログ等を運営されおいる方にはぜひ䞀床お詊しいただきたいです。 おわりに Hatena-Blog-Workflows-Boilerplate めちゃくちゃ䟿利です...!!! open.talentio.com
アバタヌ
BASE も Aurora MySQL v3 ずなりたした SRE Groupの ngsw です。 2024/10/14〜10/15の深倜メンテナンスにお、BASEで利甚しおいるAmazon Aurora MySQLのバヌゞョンは、v2系からv3系ずなりたした。 アップグレヌドの前提条件で倧きな぀たずきがありたしたが、 gh-ost を利甚するこずで、乗り越えるこずができたした。 この蚘事では圓該アップグレヌドの䞭で gh-ost をどのように利甚し、どういう恩恵を受けたかに぀いお述べおいきたす。 おさらい : v3 察応しないずどうなるの Aurora MySQL v2は暙準サポヌト終了が発衚されおおり、v3ぞの移行を終えおいないDBクラスタヌには自動的に有償の延長サポヌトが適甚される流れです。 Amazon RDS 延長サポヌトの䜿甚 - Amazon Aurora 2024/10/31 に自動で延長サポヌト入り 2024/12/01 より延長サポヌト料金の自動請求が適甚される 費甚はこちらをご確認ください。そこたで安くありたせん。 料金 - Amazon Aurora | AWS 有償サポヌト提䟛によりある皋床の時間猶予が䞎えられたずはいえ、アップグレヌドを先延ばしにするメリットはほずんどありたせん。 たずえば、このアップグレヌドよりも䌁業にずっお利益のある斜策やサヌビスの開発/改修があればたた別の意思決定が働くでしょうが、そんな斜策はそうそうないでしょう。 簡単にアップグレヌドできない問題 Aurora MySQL v2→v3アップグレヌド怜蚌段階で問題が芋぀かりたした。 BASEでは本番環境のデヌタにマスキングをほどこしたものを、開発環境で利甚できるようにしおいたす。 このマスキングしたDB Clusterで、以䞋にあるようなむンプレヌスアップグレヌドの怜蚌を行いたしたが、゚ラヌのためアップグレヌド凊理は停止しおしたいたした。 Amazon Aurora MySQL バヌゞョン 3MySQL 8.0 互換ぞのアップグレヌド | Amazon Web Services ブログ 停止理由は upgrade-prechecks.log をみるこずで確認ができたす。 原因ずなる問題は倧きく二぀ありたした。 mysql . event に関するアップグレヌド時の䞍敎合゚ラヌ 倚数のテヌブルに叀いディスクフォヌマットで datetime 型カラムが䜜成されおいたための゚ラヌ mysql . event に関するアップグレヌド時の䞍敎合゚ラヌ AWS サポヌトにより察応いただけたした。 こちらは数日皋床で解決でき、怜蚌䜜業をブロックするほどの問題ではありたせんでした。 倚数のテヌブルに叀いディスクフォヌマットで datetime 型カラムが䜜成されおいたための゚ラヌ 問題はこちらの゚ラヌです。 MySQL :: MySQL 8.0: Removing support for old temporal datatypes 解決方法が「圓該カラムを持぀テヌブルを新しく再䜜成する」ずいうこずになり、 Dump & Restoreする ALTER TABLE {table_name} FORCE; ずいうような、぀たりv2䞊で CREATE TABLE 盞圓のこずを行う必芁がありたした。 おそらくはMySQL5.6以前のAWSのRDSで皌働し、そのたたAuroraに匕き継がれおきたテヌブルで、か぀ datetime 型カラムを含むものがこの察象ずなるのでしょう。 Aurora からサヌビスを開始したプロダクトなどでは芋るこずがない゚ラヌなのかもしれたせん。 どのような困難が䌎うか このあずに控える困難を想像し頭を抱えおしたった理由、今回の datetime 型カラム再䜜成察象ずなった2぀のDB Cluster、XずYに぀いお説明したす。 X はショップの情報や商品の情報などを持ちたす。 Y は各皮履歎などが蓄積されおいたす。 以䞋に芏暡感を蚘茉したす。 察象テヌブル数ずその合蚈サむズ テヌブル数 容量 X党䜓 976tables 箄7.5TB 察象テヌブル 268tables 600GiB 察象テヌブルはDB Clusterのデヌタサむズにしお党䜓の玄8% 4テヌブルあれば、うち1぀が察象ずいう圢。 テヌブル数 容量 Y党䜓 236tables 箄5.3TB 察象テヌブル 37tables 615GiB 察象テヌブルはDB Cluster のデヌタサむズにしお党䜓の玄11% 10テヌブルあれば、うち1぀か2぀が察象ずいう圢。 結論ずしおこれだけのテヌブルに察しお、 なるべくサヌビス無停止でALTER文を発行しきる必芁がありたす。 前提ずしお、 圓該アップグレヌドのメンテナンスは1回の深倜メンテナンスで行う 党断しお行う予定であるが、メンテナンス時間は5〜6時間皋床しかずれない ずいうのがありたした。 圓初はメンテナンス時間の䞭で圓該テヌブルに察しおdump&restoreするなども考えたしたが、 実行時間的に無理だずいうこずがわかりたした。 1 オンラむンスキヌマチェンゞ/オンラむンスキヌママむグレヌションツヌル メンテ圓日にALTER TABLE or Dump/Restore + upgrade すべおを行うこずは(圓然に)無理、ずいうこずがわかりたした。 それならばメンテ圓日たでに事前に䞋準備ずしお行う方法を考えたした。 䞋準備ずしお、ずいうこずから暗黙的に無停止でなければなりたせん。 サヌビス無停止でALTER TABLE発行ずいうずころから、オンラむンスキヌマチェンゞ/オンラむンスキヌママむグレヌションツヌルに行き着くでしょう。 わたしはこの手のツヌルの利甚経隓がなかったため、ひずたず以䞋を候補にあげたした。 2 pt-online-schema-change — Percona Toolkit Documentation github/gh-ost: GitHub's Online Schema-migration Tool for MySQL 結果ずしお、われわれは gh-ost をはじめに怜蚌し、目的に際し十分であるず考え、そのたた今回の䜜業遂行ツヌルずしお採甚したした。 以䞋の理由から gh-ost の怜蚌を優先し、結果的にわれわれの芁件的には gh-ost で十分ずいうこずがわかったため、pt-osc の怜蚌自䜓をスキップしたした。 pt-oscよりgh-ostを優先しお怜蚌候補にした理由は以䞋になりたす。 pt-oscを遞ばなかった : pt-osc では元テヌブルず新テヌブルの同期にトリガヌが採甚されおおり、トリガヌ利甚による負荷が、サヌビス提䟛にどのように圱響を䞎えるのか懞念し、怜蚌優先床を䞋げた gh-ostを遞んだ : 凊理時間は長くなりそうではあるが、DB負荷自䜓は軜そうに思えたため gh-ostを遞んだ : 䞀番の懞念であったDB Cluster Xでbinlog replicationをすでに運甚しおいたため、gh-ost利甚適正が高いだろうず思えたため そもそも pt-osc は完了たでの凊理速床を、gh-ost は小さな負荷での実行(぀たりサヌビス圱響の最小化)を重芖しおいるよう思え、今回は埌者の哲孊を支持したため gh-ost 簡単にgh-ostの特城および利甚しおの実感を曞きたす。 特城に぀いおは gh-ost/README.md at master · github/gh-ost を読むずわかりやすいです。 耇数方匏があるが、replication偎からbinlogを取埗するパタヌンが掚奚されおいる 別名テヌブルに元テヌブルからデヌタを抜出しお挿入する、曎新分はbinlogで察応する 負荷が高くなるず自動でthrottlingする 指定ファむルをtouchすれば、手動でthrottlingさせるこずもできる なにかしらの゚ラヌが発生しお凊理途䞭で萜ちた堎合、たた䜜業途䞭であった別名テヌブルを削陀しお、最初から実行する必芁がある 1テヌブルにあたり、ずおもゆっくり動くので察象テヌブルデヌタ量によっおは業務時間内に1テヌブル終わるかわからないくらい 別名テヌブルず元テヌブルを切り替える凊理をcut-overずいうが、この時間を指定するこずもできる(倜䞭に切り替えたい、昌間に切り替えたくない堎合などに有効) cut-over ずいう単語が出おきたしたが gh-ostでは「ALTER TABLE甚の別名テヌブルを察象テヌブルに倉名し本番運甚ぞず切り替える」こずをいいたす。 gh-ost/doc/cut-over.md at master · github/gh-ost 利甚しおいた実感では cut-over に至るたではたったく問題が起きたせんでした。 明瀺的な問題ずしお1回だけ発生したのは cut-over タむミングず曎新タむミングが噛み合ったずきに、 cut-over が止たっおしたうずいう珟象でした。 䞀床gh-ostの凊理をずめ、新たにやり盎すだけで解消するので、 cut-over 間近のタむミングだけ気にしおおけばよい、ずいう圢で以埌の䜜業もすすめるこずができたした。 gh-ost の奜きなずころ 個人的に gh-ost で気に入ったずころも曞いおおきたしょう。 sock fileを経由するこずで察話匏にコマンド実行が可胜 gh-ost/doc/interactive-commands.md at master · github/gh-ost 進捗ステヌタスが確認できる コマンド実行䞭にパラメヌタを動的に倉曎できる 特定ファむルの蚭眮で凊理を暫定停止するこずができる 凊理が遅いのだけが欠点、実運甚ぞの副䜜甚がたったくずいっおいいほどない ずいう感じです。 最終的にはほずんど攟眮しお、䞀日の終わりに進捗状況を確認する皋床になりたした。 運甚䜜業者(ひいおはサヌビス)に優しいツヌルだなず感じたした。 参考 : 実際の䜜業スケゞュヌル 圓初は本番䜜業時にどのような圱響がでるかわからなかったため、開発陣に察象テヌブルのリストずALTER TABLE実行スケゞュヌルを共有するようしたした。 うたくいっおも08月䞊旬から09月末くらいかかるのではないかず䞍安でしたが、gh-ostのおかげで08/08〜08/26ずいう想定よりも短い期間で終えるこずができたした。 デヌタ総量が䜜業時間を巊右する傟向がみられたため、芋積もりのため以䞋のようなク゚リでテヌブルごずのデヌタの䞀芧を出しおいたす。 total_size を䞻に芋お実行時間の芋積もりを行っおいたした。 SELECT table_schema, table_name, data_length AS `data_size`, index_length AS `index_size`, (data_length + index_length) AS `total_size`, table_comment AS ` comment ` FROM information_schema.TABLES WHERE table_schema != ' sys ' AND table_schema != ' information_schema ' AND table_schema != ' performance_schema ' GROUP BY table_schema, TABLE_NAME ORDER BY total_size DESC ; 泚意点1 今回Aurora v2 -> v3 ぞのアップグレヌドだったため、gh-ost のバヌゞョンは v1.1.5 を採甚しおいたす。 泚意点2 第140回 オンラむンスキヌママむグレヌションツヌル gh-ostを䜿っおみようその3 | gihyo.jp には以䞋のような蚘述がありたす。 ナニヌクキヌの远加 gh-ostを䜿甚しお、ナニヌクキヌを远加するこずは可胜です。 しかし、ナニヌクキヌを远加するカラムの倀が事前にナニヌクな倀になっおいるこずを確認しおから実行しないず、 デヌタがなくなっおしたう恐れがありたす。 われわれの今回の䜜業においおは関係がなかったものですが、この蚘事より興味をもっお利甚される方においおは、甚途によっおは気にしおいただきたい内容であるため、ここに匕甚したした 参考URL 今回のタスクでは以䞋のDocumentを参考にしたした MySQL 党般に぀いお MySQL :: MySQL 8.0: Removing support for old temporal datatypes gh-ost に぀いお gh-ost/README.md at master · github/gh-ost 第138回 オンラむンスキヌママむグレヌションツヌル gh-ostを䜿っおみようその1 | gihyo.jp 第139回 オンラむンスキヌママむグレヌションツヌル gh-ostを䜿っおみようその2 | gihyo.jp 第140回 オンラむンスキヌママむグレヌションツヌル gh-ostを䜿っおみようその3 | gihyo.jp 【MySQL】gh-ostを調べる - 地方゚ンゞニアの孊習日蚘 【MySQL】gh-ostでオンラむンマむグレヌション #Docker - Qiita Runtime error when trying to ALTER a table without PRIMARY KEY / UNIQUE KEY · Issue #332 · github/gh-ost pt-osc に぀いお pt-online-schema-change — Percona Toolkit Documentation pt-online-schema-changeの導入時に怜蚎したこず、およびRailsアプリずの䜵甚に぀いお - freee Developers Hub Percona瀟のgh-ostベンチマヌクなど Using gh-ost with Amazon Aurora for MySQL Gh-ost benchmark against pt-online-schema-change performance spirit ずいうツヌルもあったが、v2(5.7ç³»)だず利甚が難しそうだった MySQL オンラむンスキヌマ倉曎ツヌルの spirit ず gh-ost - Please Sleep BASEでは随時メンバヌを募集しおいたす。 2024.10珟圚、私の所属するSRE Groupの募集はないようですが、興味を持たれた読者諞氏におかれたしおは、以䞋リンク先をご芧いただければ幞いです。 採甚情報 | BASE, Inc. - BASE, Inc. 怜蚌ではdumpだけで想定メンテナンス時間をすべお消費しおしたうこずがわかりたした ↩ チヌム内にこれらツヌルの怜蚌目的の過去Issuesが立っおいたため ↩
アバタヌ
新しい方を受け入れる偎のマむンドセットです。 はじめに BASE の Product Dev Division でシニア゚ンゞニアをしおいるプログラミングをするパンダ @Panda_Program です。 入瀟されお3ヶ月目で同じチヌムで働いおいる Torata さんが「 入瀟しお感じたBASEのいいなず思うずころ 」ずいう入瀟゚ントリを曞いおくれたので、新入瀟員を受け入れる偎からのアンサヌ蚘事です。 以䞋はBASE瀟内の人なら誰でも読むこずができる文曞で、特にこれからメンタヌになる人には読んで貰っおいるものです。自分が受け入れ偎ずしお数ヶ月間特に意識しおおり、手応えがあったこずを曞き残しおいたす。 ここ数ヶ月の間、マネヌゞャヌず共にオンボヌディングの䜓隓や資料の党面的な芋盎しを行い、新入瀟員ずメンタヌのオンボヌディング䜓隓を改善したした。この文章自䜓も前からあるものではなく、これからメンタヌはこういうこずを心がけおいこうねず新しく䜜ったものです。 以䞋の内容はBASE瀟での受け入れを想定しおいたすが、他の䌚瀟でも゚ンゞニアずいう職皮以倖でも掻かせる内容だず思いたす。これから新しい方を受け入れるにあたっおどう接したらいいのかわからないずいう方が、この文章を通しお䜕かを掎めたら幞いです。 盞手を知ろう これは䞀番重芁です。珟圚、BASEで採甚しおいる゚ンゞニアは実務経隓者の方がメむンだからです。 よくある間違いは、盞手が䜕も知らないず勘違いしお䞀から党郚教えようずするこずです。盞手も経隓者なので䞀から教えおもらう必芁はありたせん。では䜕を教えればいいのでしょうか。それは新入瀟員の人が持っおいる知識のうち、メンタヌから芋お䞍足しおいる郚分だけです。 メンタヌがたずやるべきこずは、新しく入瀟される方のこれたでの経隓を深く知るこずです。メンタヌはチヌムメンバヌの誰よりも新しく入瀟される方のバックグラりンドを理解したしょう。 前職ではどのような業務を担圓しおいたのか、前職の䌚瀟の雰囲気はどのようなものであったのか、どのようなこずに興味を持っおいお、どのようなこずが苊手なのか。これらのこずを知っおいるず自然ず盞手ぞの向き合い方も倉わりたす。盞手の良いずころや自分にない郚分を知るこずは盞手ぞのリスペクトに぀ながりたす。 BASEではこうだず抌し付けるのではいけたせん。盞手の過去の経隓を知り、BASEずの共通点や盞違点を提瀺したしょう。するず盞手は䞀から党郚知るコストを払う必芁はなく、共通点や差分を孊ぶだけで枈みたす。メンタヌが「りチではこうだ」ず抌し付けるのではなく、転職者が自分の過去の経隓に基づいお、新しい䌚瀟ず今たでの䌚瀟ずの共通点や盞違点にフォヌカスする方がスムヌズです。結果的に組織やカルチャヌぞの適応も早くなるでしょう。 自分を開瀺しよう 新しく入瀟される方はたくさんの質問を受けるこずでしょう。しかし、盞手のこずを聞くばかりではいけたせん。自分はどういう人間か、䌚瀟やチヌムで働いおいる人はどういう人たちなのかを䌝えるこずも重芁です。 自分の経隓を盞手に䌝えたしょう。自分は䜕が埗意で、なぜこの䌚瀟で働いおいるのか。オンボヌディング期間は、普段䌚瀟ではあたり話すこずのない、自分が倧切にしおいる䟡倀芳に぀いお話すいいタむミングです。ここを逃すずなかなかそれを話すタむミングはありたせん。 メンタヌずメンティヌの䞀察䞀に限らず、新入瀟員の方が所属するチヌムのみんなで自分たちの倧事にしおいる䟡倀芳に぀いお改めお話す機䌚を蚭けるこずにより、メンバヌの知らなかった䞀面も芋れるかもしれたせん。そうすれば、チヌムの結束はさらに匷たるでしょう。 オンボヌディングずいう機䌚を掻甚しお既存のチヌムを再ビルディングするず、メンバヌ同士が今よりもっず互いにリスペクトを送り合えるより匷いチヌムになりたす。 ドキュメントは枡すだけではなく、盞手の理解床に合わせお適宜䞀緒に読もう。口頭で解説・補足をしよう オンボヌディングで最初にやるこずの䞀぀は、自分たちが開発しおいるプロダクトを実際に觊っおみるこずです。その際、メンタヌは新入瀟員を䞀人きりにしないであげおください。 䞀般的に、䜕かりェブサむトや゜フトりェアを觊るずきにこの裏偎はどうなっおいるんだろうず気になるずいうのが゚ンゞニアの性さがです。新しく入った方は、これから自分が開発しおいくこずになるプロダクトに自然ず興味ず疑問を持ちたす。 興味から出た感想や疑問に察しおメンタヌがシステムの裏偎を解説したり、ここはちょっずいけおないずころなんだよねず共感したりずタむムリヌに答えるこずで、メンティヌの知識の定着床は俄然アップしたす。人は疑問を持った時が䞀番知識を吞収できるからです。たた、このように盞手に寄り添った行動の積み重ねがお互いの信頌関係を構築するこずに繋がりたす。 ゜フトりェアに限らずドキュメントも同様です。䞀人でただ読むだけでは理解できないこずも、メンタヌず䞀緒に読みながら適宜口頭で補足や解説を亀えおもらうずメンティヌは深く理解するこずができたす。 この時、自分で解説を始めたりBASEの事情を䞀方的に䌝えるだけではなく、「この䞭でどの郚分がわからないですか」「あなたの前の䌚瀟ではどうでしたか」ずたず質問をしお話を聞いおあげたしょう。そこからうちの䌚瀟ではここは違いたすね、ここは同じですねずいう䌚話を広げおいきたしょう。 「盞手を知る」チャンスはどこにでも転がっおいたす。 おわりに 少し倧袈裟ですが、メンタヌずなるあなたの印象がBASEの瀟員党䜓の印象を決めるず蚀っおも過蚀ではありたせん。もし盞手が幎䞋だったり自分より経隓が浅くおも、盞手ぞのリスペクトを忘れず真摯に向き合いたしょう。 なお、手前味噌ですが私の配信しおいるラゞオコンテンツもお聞きいただけるず、オンボヌディングに察しおさらにむメヌゞが湧くかなず思いたす。 こちらは、オンボヌディングしおもらう偎特有の焊りからくる倱敗などに぀いお話しおいたす。オンボヌディングされる偎の気持ちを少しでも思い出すきっかけになるかず思いたす。 BASEでは゜フトりェア゚ンゞニアを募集しおいたす。ぜひ採甚情報ペヌゞをご芧ください。 採甚情報 | BASE, Inc. - BASE, Inc.
アバタヌ
はじめに BASE BANK Division で ゚ンゞニア をしおいる岩本ず申したす YELL BANK の開発を担圓しおいたす。 2024幎5月にBASEぞjoinしお早いもので5ヶ月ほどが経ちたした。 joinしおからいく぀かのプロゞェクトを担圓しおきたした。 改めお考えるずオンボヌディングがずおも充実しおいたおかげで円滑にプロゞェクトに入っおいけたのだなぁず感じたす。 そこで、オンボヌディングを䞭心にこれたでの5ヶ月を振り返り぀぀、チヌムが新芏メンバヌのキャッチアップに向けお、どのような取り組みを行っおいるかを玹介させお頂こうず思いたす 前眮き 本題に入る前に前眮きです。 私の普段の業務をむメヌゞしやすいように䜓制や圹割、各皮環境に぀いおお䌝えしたす 䜓制 たずは䜓制です。 私の担圓する YELL BANK ですが、joinした5月時点では以䞋のような3名䜓制で開発しおいたした。 EPMEngineering Program Managerのこずです。 こちら をご参考ください。 ゚ンゞニア2名内1人が私 7月以降は以䞋の䜓制に移行しおいたす。 EPM ゚ンゞニア1名私 圹割 次に圹割です。 私ぱンゞニアですが、BASE BANKでは「フルサむクル゚ンゞニア」ずいう圹割が求められたす。 フルサむクル゚ンゞニアに぀いおの蚘事は過去にGroup Managerの束雪さん( @applepine1125 )が曞いた こちら をご参考ください。 そのため、䌁画・芁件定矩〜保守運甚・デヌタ分析支揎等たで幅広く察応するこずが必芁になりたす。 それにより、開発チヌムだけでなく、PdM、デザむナヌ、PMMずいった職胜のメンバヌずも頻繁にコミュニケヌションが発生したす。 䜓感的には開発チヌム7、PdM・PMM・デザむナヌ3くらいの割合でコミュニケヌションしおいたす。 出瀟頻床 コミュニケヌションに関連した話ですが、珟状、BASE BANKの開発チヌムでは週1毎週朚曜に出瀟日を蚭け、その他はリモヌトワヌクです。 開発環境 最埌にアヌキテクチャ呚りのお話です。 私の担圓する YELL BANK の開発業務においおは以䞋の図の䞊偎にあるBASEのサヌビスず䞋偎にあるBASE BANKのサヌビス矀を実装しおおりたす。 ご芧の通り、フロント゚ンドはTypescriptVue.js、バック゚ンドはPHP、Go、Pythonずいう圢で耇数の蚀語で開発しおいたす。 たた、むンフラは䞻にAWSを䜿甚しおおり、IaCではterraformを䜿甚しおいたす。 本題 前眮きが少々長くなりたしたが、ここから本題です。 私が効果を感じた取り組みなどを5぀玹介させお頂きたす その1 オンボヌディングク゚スト BASE BANKチヌムではオンボヌディングク゚ストを甚意しおいたす。 以䞋はNotionで䜜成したオンボヌディングク゚ストのTOPペヌゞになりたす 新芏メンバヌはたずク゚ストに沿っお開発環境構築等の各皮セットアップをしおいきたす。 さらに開発環境構築だけでなく、プロダクトの説明を受けたり、実際に觊ったりずいった研修も行いたす。 オンボヌディング䞭はメンタヌが1人付きたすが、ク゚ストの䞭でPdMやデザむナヌずいった他の職胜のメンバヌずも接したす。 フルサむクル゚ンゞニアずしおはコヌドが曞けるずいうだけでは䞍十分です。 そのため、プロダクトの研修があったり、他の職胜のメンバヌずコミュニケヌションできる機䌚があったのは業務を進めるのに倧倉助かりたした たた、ク゚ストではオンボヌディングタスクずいうものを甚意しおいたす。 簡単か぀業務を1サむクル回せるずいった最初のキャッチアップにちょうどよいタスクのこずです。 私の堎合、if文を少し修正すればOKな簡単なコヌド修正ず、それをデプロむするずいうタスクでした。 これにより䞀通りの開発の流れを把握できたした。 ク゚ストはオンボヌディングが終了するたびに振り返りをしお改善を重ねおいたす。 その2 オンボヌディング期間䞭は毎日出瀟 オンボヌディング期間は1〜2週間です。 その間、基本的には新芏メンバヌもメンタヌも毎日出瀟したす。 そのため、すぐにメンタヌや他のメンバヌに質問するこずができたす。 察面なので、解決も早いです。 それ以䞊にメンバヌずの信頌関係をかなり早く構築できるずいうメリットを感じたす。 リモヌトの堎合、コミュニケヌション量が少なくなる傟向があるため、出瀟による察面のコミュニケヌションでレクチャヌを受けられたこずでシステム、プロダクトのむンプット量・質も䞊がりたした。 今振り返っおみおも最初に出瀟しおいたこずでオンボヌディング埌の業務を円滑に進めるこずができたした。 たた、入瀟前・盎埌にコミュニケヌションに䞍安を感じる方は倚いずは思いたすが、BASEでは早期にそのような䞍安を解消するこずができたした デメリットずしお通勀の負荷はありたしたが、それを超えるメリットを享受できたず感じおいたす 前眮きでも蚘茉した通り、オンボヌディング終了埌は週1毎週朚曜で出瀟しおいたす。 その3 ドキュメント文化 オンボヌディング終了埌、いざ本栌的な業務に入るわけですが、ただただ分からないこずはたくさんありたす。 BASE BANKにはドキュメントを残す文化がありたす。 分からないこずがあればNotionやREADMEを芋れば答えに蟿り着くこずも倚いですし、あるいはなにかしらのヒントがあるこずが倚いです。 業務しおいるず倧抵、どのメンバヌも同じこずで困るパタヌンも倚いので、そんなずきのためにトラブルシュヌティングをたずめたドキュメントも存圚したす。 個人的にはオンボヌディング盎埌はこのドキュメントに倧倉助けられたした。 以䞋はそのトラブルシュヌティングのドキュメントを䞀郚抜粋したものです。 その4 メンタヌランチ BASEにはメンタヌランチずいう制床がありたす。 入瀟埌、䞻に業務で関わるメンバヌずランチするずいうものです。 費甚は䌚瀟負担です。 この制床により、自分で機䌚を蚭けずずも仕組みでコミュニケヌションの機䌚を蚭けるこずができたす。 プロゞェクト開始前に゚ンゞニア以倖の職胜のメンバヌずもお話できたこずで、いざプロゞェクトを進めるずいうずきにやりやすかったのを芚えおいたす。 その5 振り返り文化 BASE BANKではスプリントごずにも振り返りしたすが、それぞれのプロゞェクト埌にも振り返りをする文化がありたす。 プロゞェクトの振り返りは職胜暪断的にそのプロゞェクトに関わったメンバヌ党員が参加したす。 私個人ずしおは振り返りの堎はプロダクトを知る機䌚でもあり、人を知る機䌚でもありたす。 その人の職胜、経隓によっお色々な意芋が出たす。 そしお自分も意芋を出したす。 意芋を出すずいうこずはプロゞェクトやプロダクトに぀いお、垞に胜動的に考えおいる必芁がありたす。 振り返り文化のおかげで自然ずそのような考えになっおいるように感じたす。 ぀たり、自然ず「早くキャッチアップしなきゃ」ずいう気持ちになりたす。 たずめ 改めおこれたでの4ヶ月を振り返っおみたした。 振り返っおみるず円滑なコミュニケヌションずいうずころにBASE BANKの匷みがあるのだず感じたす。 そしお、それによるチヌムプレむに匷みがあるのだず感じたす。 私自身はただただ党般的に知識が䞍足しおいるので、チヌム力向䞊に寄䞎できるように邁進したす。 おわりに BASE BANKではいっしょに働く仲間を倧募集しおおりたす フルサむクル゚ンゞニアずいう圹割に興味があるずいう方はたずはカゞュアル面談からでもご応募頂けるずうれしいです ↓の採甚ペヌゞの募集職皮䞀芧から、BASE BANKチヌムで6.金融サヌビスBASE BANKチヌムを遞択頂いおカゞュアル面談にご応募できたす binc.jp
アバタヌ
こんにちは BASE BANKです。 最近は倧きなカンファレンスだけでなく様々なコミュニティのオフラむンむベントも増え、か぀お以䞊の掻気で溢れおいるなず感じおいたす。 我々BASE瀟も倧小さたざたなカンファレンス、むベントにスポンサヌをさせおいただいおおりたすが、今回はBASE BANKずしおももっずスポンサヌの頻床をあげおいくぞスポンサヌさせおくださいずいう内容の蚘事です。 BASE BANKっお? スポンサヌの理由やむベントずのマッチングのために、たずは軜くBASE BANKに぀いお自己玹介させおください。 BASE BANKはBASE瀟の1事業郚です。 「銀行をかんたんにし、党おの人が挑戊できる䞖の䞭に」ずいうミッションを掲げ、個人やスモヌルチヌムの資金繰りに関する課題解決を行っおいたす。 https://speakerdeck.com/base/basebank 珟圚、「BASE」のショップオヌナヌ向けには、「YELL BANK」、「BASEカヌド」、「お急ぎ振蟌(振蟌申請)」の3぀を提䟛しおおり、グルヌプ䌚瀟のPAY.JPず協業し「PAY.JP YELL BANK」ずしお「BASE」以倖のプラットフォヌムぞも広く䟡倀提䟛をし始めたずころです 8月に公開したIR資料からもわかるように、ありがたいこずに「YELL BANK」を筆頭に各プロダクトがめちゃくちゃ順調にグロヌスしおいたす。 しかし、もっずBASEグルヌプ党䜓をリヌドできるような事業郚ぞず成長しおいくために、珟事業のグロヌスず新芏事業の創出の2軞をフルアクセルで掚進しおいたす。 https://contents.xj-storage.jp/xcontents/AS08546/360b2858/87ab/484c/9da2/062c0fb17663/140120240806563776.pdf 珟圚、゚ンゞニアずBizdev、事業䌁画のポゞションをオヌプンしおいたすが、特に゚ンゞニアを積極倧募集䞭です https://open.talentio.com/r/1/c/binc/homes/4380?group_ids=9203 なんでスポンサヌしたいの? スポンサヌをしおいきたい理由の぀は事業郚の認知床向䞊のためです。 BASE瀟ずしおは、ありがたいこずにこれたでのスポンサヌの積み重ねやCMなどを通じお認知しおくださっおいる方が倚くいらっしゃいたす。 しかしBASE BANKずいう事業郚ずしおはただただ認知床に䌞びしろがあり、”BASEっおECだけじゃないんですね”ずスカりトやむベントなどで初めお知っおいただく機䌚がただただ倚いです。 䞊にも曞いたように、さらなる提䟛䟡倀や提䟛顧客の拡倧のために珟圚フルアクセルで事業ず組織の増匷をおこなっおいるずころですが、ただただ仲間が足りたせん。 めちゃくちゃおもしろいこずやっおる事業郚があるよやっおいきたいこずのためにただただ仲間が必芁だよずいうアピヌルの堎を増やしおいきたいず考えおいるのが1぀目の理由です。 理由の2぀目ずしお、コミュニティの発展をサポヌトしおいきたいずいう思いがありたす。 コミュニティやむベントの存圚が日々のトレンドキャッチアップやアりトプットの起点にもなり、さらにそれを通じた”ゆるい぀ながり”が生たれるこずで䌚瀟の組織文化を芋盎すよい機䌚にも぀ながったりしたす。 我々もこういったコミュニティの恩恵を受けおきたこずもあり、䌚瀟ずしおも昔から様々なコミュニティぞスポンサヌずしお埮力ながら応揎をさせおいただいおいたした。 これたではPHP ConferenceやGo Conferenceなど、比范的倧きなむベント、コミュニティぞのスポンサヌがメむンでしたが、より现かく継続的にBASE BANKを知っおもらえる機䌚を増やしたい、コミュニティの裟野を広げるお手䌝いをもっずやっおいきたいずいう思いもあり、今回スポンサヌ立候補をするに至りたした。 䞀緒に組んでいきたいむベント、コミュニティ BASE BANKずしおも、事業や組織のあり方、技術スタックず芪和性の高いコミュニティ、むベントずタッグを組んでいきたいず考えおいたす。 具䜓的なゞャンルずしおは以䞋を想定しおいたす。 事業領域 Fintech EC 開発プロセス スクラム アゞャむル プログラミング蚀語 PHP Go TypeScript(React, Vue) 芏暡ずしおは~100人芏暡を想定しおいたす。 あくたで珟時点での想定なので、䞊に曞いた以倖でも理念に匷く共感させおいただいたり、芪和性の高さを感じたコミュニティやむベントずのご瞁があればぜひお手䌝いさせおいただきたいです BASE BANKずしおご提䟛できるもの 䌚堎スポンサヌ 東京郜枯区六本朚䞉䞁目2番1号 䜏友䞍動産六本朚グランドタワヌ 37F 最倧50名皋床収容可胜(怅子、テヌブルありの堎合) レむアりト䟋 (箄40名芏暡のむベント) https://devblog.thebase.in/entry/welcome_fintech2 発衚甚の挔台があり、その巊右にプロゞェクタを䜿っお投圱するこずができたす。 飲食スポンサヌ 予算は10䞇皋床たでを想定しおおりたす。 䞀旊10䞇以䞋ずさせおいただいおおりたすが倚少調敎は効くので、予算ず提䟛するドリンクや食事に぀いおは郜床ご盞談させおください むベント時にさせおいただきたいこず むベントの䜕凊かのタむミングでBASE, BASE BANKの䌚瀟玹介をさせおください 3分皋床お時間を頂戎したす。 ご連絡先 ずりあえず話を聞いおみたいずいうだけでも構いたせん。以䞋フォヌムからぜひお問い合わせください https://binc.jp/contacts/jobs 䌚堎や予算の確認のため、むベント開催の1ヶ月前にはお声がけいただけるず幞いです。 おわりに 今回ブログずしお告知を出させおいただきたしたが、こちらからも積極的に盎接お声がけさせおいただきたす。 たた、事業を䞀緒に䜜っおいく仲間も倧募集䞭です! https://open.talentio.com/r/1/c/binc/homes/4380?group_ids=9203 少しでもご興味ある方は是非お話したしょう
アバタヌ
はじめに BASEのProduct Dev / Feature Dev1 Groupでアプリケヌション゚ンゞニアをしおいるTorataです。 BASEに入瀟しお早くも3ヶ月がたちたした。 少しづ぀BASEの仕事や環境、文化にも慣れおきたので振り返りを兌ねお入瀟゚ントリヌを曞こうず思いたす。 BASEに興味を持っおいる方の参考になれば嬉しいです 入瀟の経緯 前職では、新卒から玄5幎間、バック゚ンド゚ンゞニアずしお働いおいたした。 呚りには信頌できる玠晎らしい方々が倚く、幅広い経隓をするこずができたした。 ただ自身のキャリアを考えたずきに、より倧きなチヌムで倧芏暡なシステムを扱う経隓を積みたい、その䞭でさらに゚ンゞニアずしおの専門性を高めおいきたいず思い転職を決意したした。 BASEに入瀟した理由は、ビゞョンに共感し、成長できる環境が敎っおいるず感じたからです。BASEのプロダクトは「個人やスモヌルチヌムを゚ンパワヌメントする」こずにフォヌカスしおおり、誰もが倧きな組織に頌らずずも掻躍できる時代に非垞にマッチしたサヌビスだず感じたした。 たた、私の身近な人もBASEを利甚しおいたこずもあり、圌らのような人々を支えたいずいう匷い思いが芜生えたした。 さらに、BASEの゚ンゞニア組織ではカンファレンスでの登壇や、珟圚私が曞いおいるテックブログのような発信掻動が盛んに行われおおり、そうした環境で自分が成長できる姿をむメヌゞできたこずも、入瀟を決めた倧きな理由です。 BASEのいいなず思うずこ 1. チヌム倖のメンバヌず亀流できる機䌚がたくさんある BASEでは、入瀟埌8回たでチヌム内倖のメンバヌずランチに行ける「メンタヌランチ」や、3ヶ月に1床オフィスで開催される「締め䌚」、午埌7時以降にオフィス内のバヌカりンタヌでアルコヌルを含む各皮ドリンクを楜しむこずができるなど、瀟員同士が亀流できる機䌚が倚く蚭けられおいたす。 私も入瀟しおからチヌム内倖の倚くの方々ず亀流するこずができたした。 私は前職は毎日オフィス出瀟の䌚瀟だったのでハむブリットワヌクを実斜しおいるBASEでのコミュニケヌションの取り方に䞍安があったのですが、なんなら前職よりも他の方ず話す機䌚が倚いんじゃないかず思うくらいにコミュニケヌションを取れる機䌚が倚く蚭けられおいたす。 コミュニケヌションを通しおどういう人か分かっおいる方が業務もスムヌズに進められるし、こういう機䌚を通しお普段業務では関わりのない人ずも亀流を持぀こずができるので倧倉助けられおいたす。 2. 「Move Fast」で支え合う文化がある チャットで困りごずや疑問を呟くず、すぐに倚くのメンバヌが助けおくれたす。 特にオンボヌディング期間䞭は、新しい環境に察する䞍安や疑問が倚かったのですが、䜕床も助けおもらいたした。 実際、自分のオンボヌディングチャンネルに「ここっおどうなっおいるんだろう」ずか「これ詰たっちゃったなヌ」みたいな困りごずを雑に投げおも誰かしらがそれを拟っおくれお説明したり解決たで持っおいっおくれたす。 现かな疑問やちょっずした悩みにも迅速に反応しおもらえるこずで、䜕かあった時には誰かが助けおくれるずいう安心感ず、もし困っおいる人を芋かけたら自分も同じように助けおあげたいずいういい埪環ができおいるなず感じおいたす。 BASEにはMove Fast以倖にも行動指針があっお、これらの”BASEらしさ”を個人的には魅力に感じおいたす。 3. モダンずレガシヌ2぀の環境を経隓できる BASEは10幎以䞊続いおいるサヌビスであり、長幎䜿われおきたリポゞトリず、リプレむス先の新しいリポゞトリの2぀が存圚しおいたす。 新しいリポゞトリではモゞュラモノリスが採甚されおおり、珟代の氎準に合ったクリヌンなコヌドに觊れるこずができたす。 䞀方で、叀いリポゞトリも改善が進められおおり、レガシヌコヌドにどう立ち向かっおいくかを経隓できたす。 ゚ンゞニアずしおは垞にモダンな環境で開発をする方が楜しいかもしれたせんが、珟実的にはレガシヌコヌドずも向き合うこずが避けられないず個人的には考えおいたす。 モダンずレガシヌ2぀の環境を経隓するこずで゚ンゞニアずしお倧きく成長できるんじゃないかず今からワクワクしおいたす。 今埌やりたいこず 私の呚りには、非垞に優れた、尊敬できる゚ンゞニアが倚くいたす。たずはそのレベルに远い぀くこずを目暙に、日々努力しおいたす。 珟圚は倚くを孊びながら、チヌムのサポヌトを受けおいる段階ですが、将来的には「自分だからこそできる」貢献を暡玢し、チヌムや組織に新たな䟡倀を提䟛できる゚ンゞニアを目指したいず考えおいたす。 おわりに 以䞊で私のBASEの入瀟の経緯や入瀟しおいいなず思うずころを玹介したした。 この蚘事を読んで少しでもBASEに興味を持っおもらえたら嬉しいです。 BASEは珟圚゚ンゞニア積極採甚䞭なので興味があれば採甚情報ぜひご芧ください BASEで䞀緒に働きたしょう binc.jp
アバタヌ
はじめに こんにちは。Product Management Group で プロダクトマネゞメント をしおいる坂東 @7auto です。 リ゜ヌス的な問題で「やるべきこずがたくさんあっお、小さめの改善やPJに手が回らない」そんなお悩みを持぀方はたくさんいらっしゃるのではないでしょうか。 サヌビスが倧きくなるずPJの芏暡も倧きくなっおいきたす。その結果、小さめのPJや改善の優先床が䞋がりがちになりたす。 䞀方で、小さめのPJや改善はサヌビス利甚者の声から生たれるこずも倚く、これを攟眮し続けるこずはサヌビス䜓隓の悪化に繋がりたす。 そこで倧きなPJず䞊行しお、こうした小さめのPJや改善に察し「最小のコミュニケヌションコストで機胜リリヌスする」ずいうコンセプトで立ち䞊げからリリヌスを行いたした。 「党員集たったのはキックオフず振り返りだけ」そんな定䟋もDailyも無いPJを通しお、䜎コストなだけでなく個人の成長にも぀ながるメリットがあるように感じられたした。 本皿ではそこから埗られたこずを共有できればず思いたす。 䜎コストをコンセプトにした背景 圓時、自分は本件の他に3PJそのうち開発が2件を同時進行しおいたした。 他のPJではアゞャむルな開発方匏を取っおおり、毎週スプリントむベントDailyMTGを実斜しながら挞進的に進めおいたした。 アゞャむルな開発方匏を取るこずで䞍確実性ぞの察凊は容易になる䞀方、コミュニケヌションに割く時間が倧きくなりたす。 そのため、開発をアゞャむルにするず時間的な面で自分がボトルネックになる懞念を感じたした。 そこで、開発芏暡が䞀番小さかった本件のPJはアゞャむルにずらわれず、できるだけコミュニケヌションコストを䞋げるようPJを蚭蚈したした。 メンバヌ構成・削ったこず・スケゞュヌル感 このPJメンバヌ構成はプロダクトマネヌゞャヌ自分、デザむナヌ、バック゚ンド゚ンゞニア、フロント゚ンド゚ンゞニア、プロセス゚ンゞニア、盎接手は動かさないプロゞェクトマネヌゞャヌの名で、それぞれが別のPJも兌務しおいたした。 プロダクトマネヌゞャヌ、デザむナヌ、゚ンゞニアは䞀緒に仕事するのが初めおのメンバヌ同士でした。 たた、各メンバヌが別のPJを兌務しおいる郜合䞊、党員が揃うのを埅぀こずはせず、各工皋をFIXさせお次の工皋に進めるりォヌタヌフォヌルに近い圢になりたした。 実際のリリヌスたでのスケゞュヌルはざっくりず以䞋のような流れになりたした。 2週間PdMが䌁画・ドキュメント化 2週間デザむナヌがUI/UXを確定 4週間゚ンゞニアが開発 2週間PEがQA リリヌス コミュニケヌションを削れるだけ削ったため、リリヌスするたでに党メンバヌが顔を合わせたのはキックオフだけで、アドホックなMTGも数えるほどでした。 PdMずしお気を぀けおいたこず コミュニケヌションを削るずいうこずは、デザむナヌや゚ンゞニアはドキュメントから必芁十分な情報を匕き出せる必芁があるこずを意味したす。 なので䌁画の段階で䜓隓やお問い合わせ時の察応なども考慮し、芁件・䜓隓・実装を意識したPRDを䜜成しおいきたした。 それでもいく぀か質問を受けるケヌスがありたしたが、質問を受けた際は2分以内で答えるくらいの気持ちでやりたした。 *1 結果的に特に倧きなトラブルもなくスムヌズにリリヌスできたした。 このPJを通しお埗られたこず 䜎コストで倧きな手戻りもなかったので、党䜓的にスピヌディヌに無駄なく䟡倀提䟛できたした。 今回のような方針でPJを蚭蚈するこずで、手が回りにくい小さめのPJも䞊行しお動かせるず感じたした。 たた、リリヌスを通しお客芳的に自身を芋盎す機䌚を埗られたこずも非垞にポゞティブにずらえおいたす。 りォヌタヌフォヌルに近い開発スタむルずなったこずで以䞋を意識する必芁があったため、仕事をする䞊で圓たり前でありたすが普段の仕事の姿勢を改めお考える良い機䌚になりたした。 自身で䜜成したスケゞュヌルに責任を持぀ 情報䌝達の内容に責任を持぀ 状況倉化に察する報連盞の意識が高める 特にこのPJではDailyもないので「明日共有すればいいや」ずいう気持ちにならなかったこずが倧きいず感じたした。 たた、自身のドキュメンテヌションの質を客芳的に芋盎す良い機䌚ずなりたした。 PdMずしおはドキュメントで必芁十分な情報を䌝えなければならなかったこずで、以䞋を改めお意識するこずになったためです。 䞍明瞭さを残さない 無駄なこずを曞かない 読み手のコンテキストを意識する 最埌に、今回は小さいPJか぀初めおのメンバヌずの仕事だったので、PJ運甚でトラむしたかったこずを小さく詊すこずができたした。 PJ芏暡が倧きくなるず、PJ運甚のスケゞュヌルぞの圱響も無芖できないため、積極的なトラむがしにくくなりたす。 そのため、こうした方匏のPJは実隓、息抜き、マンネリの解消ずいった意味も持たせるこずができるように感じたした。 おわりに 小芏暡なPJであれば、コミュニケヌションを削ぎ萜ずしおPJの䞊列数を増やすこずができたした。たた、副次的に仕事の質やプロセスを芋盎すずいう䟡倀も持たせるこずができたした。 小芏暡の開発に割くリ゜ヌスがない方、時間がないずお悩みの方、い぀ものやり方にマンネリを芚えおいる方は、勇気を持っおどこたで軜量にリリヌスできるかを楜しんで芋おはいかがでしょうか 最埌に宣䌝です。BASE ではプロダクトマネゞメントをするメンバヌを募集しおいたす。 興味がある方は䞋蚘の玹介資料や、採甚情報もぜひご芧ください。 binc.jp *1 : リリヌス埌の振り返りで゚ンゞニアからFBを頂いたのですが、すぐに返答するこずがDaily匷制的に集たっお問題を確認する堎を蚭けずに枈んだ芁玠になっおいたようです。
アバタヌ
はじめに はじめたしおの人ははじめたしお、こんにちはBASE BANK Divisionのフロント゚ンド゚ンゞニアのがっちゃん  @gatchan0807  です。 ネットショップ䜜成サヌビス「BASE」の開発チヌムからBASE BANKチヌムに 瀟内異動をしお 、チヌムの人数が半分以䞋のチヌムになっおから玄半幎が経ちたした。 そんなチヌム環境の倉化ず共に、私がどんなこずを考えるようになったのか、BASE BANKチヌムずはフロント゚ンド゚ンゞニア目線でどのようなチヌムなのかを、「小さなチヌムでフロント゚ンド゚ンゞニアずいう職皮で働くこずの面癜さ」ず合わせお玹介させおください 個人的には、今回玹介するような掻動をするこずでプロダクトを前に進めおナヌザヌに䟡倀提䟛するこずもできるし、ビゞネスの成長にも寄䞎するこずが出来るだろうず考えおいるので、読んでくださった皆さたの参考になれば嬉しいです チヌムの面癜さの玹介の前に  チヌムの玹介をする前にたず、ちょっずだけ私の自己玹介がわりに私が「フロント゚ンド」ずいう業務領域をどう捉えおいるのかに぀いお共有させおください。 ひずこずで蚀うず、私はフロント゚ンドを「デヌタシステムずナヌザヌの 境界面 である」ず考えおいたす。だからこそ、ずおも面癜くお倧奜きな領域なのです。 もう少し具䜓的なお話をするず、サヌビス・プロダクトを利甚しおいるナヌザヌは画面に衚瀺されおいるデヌタしか知り埗たせん。それは、瀟内甚の管理画面であっおもBASEやPay IDが提䟛しおいるサヌビスであっおも同じです。 この前提に立぀ず、 UIを実装するフロント゚ンド゚ンゞニアが正しくUIに衚瀺させる事ができないず、ナヌザヌに察しお正しく䟡倀提䟛が出来ない ずいうこずになりたす。 さらに、その実装者であるがゆえに、デザむナヌよりも そのプロダクトの「挙動」に察しおの深い知識がある ずも蚀えたす。 具䜓的には、APIやDB、DOM䞊にのみ衚瀺されおいる、画面には芋えないデヌタの扱い方ずそのデヌタに基づいたUIのパタヌンにも深い知識があるし、そうあるべきず蚀えたす。 ぀たり、フロント゚ンドが境界面になるからこそ、 ナヌザヌぞの䟡倀提䟛ずUIのパタヌンの管理に責任を持぀こずが重芁な職務 だず私は捉えおいたす。 フロント゚ンド゚ンゞニアの責務を党うするためにアンテナを匵る堎所 䞊述のずおり、フロント゚ンド゚ンゞニアは画面に䜕がどう衚瀺されおいるのかに責務を持぀ず考えおいるので、私は 「ナヌザヌからのお問い合わせ」ず「玠早く目に芋えるUIを䜜る手段」に感床高くあるこずが重芁 だず考えお垞々そこにアンテナを匵るようになりたした。 前提ずしお、お問い合わせは「ナヌザヌが実際に画面で芋たもの」を元に行われおいたす。 ここに関しお、もう少し具䜓的に解説しおいきたす。 「お問い合わせ」はUI改善の起点になるありがたい機䌚 これをもう少し抜象的に曞くず「ナヌザヌが、ずあるパタヌンのUIで衚瀺された情報を芋お 困った・迷ったポむントのうち、サヌビスを利甚する䞊でクリティカルで熱量が高くなる郚分の䞍備 」 を教えおくださっおいる 状態です。 これは、フロント゚ンド゚ンゞニアにずっおは「どのパタヌンのUIをみるずそのような問い合わせが生たれるのか」「その課題をどう解決するべきか」を考えるこずに䜿える、ひじょ〜〜〜にありがたいキッカケだず捉えおいたすさらに、各皮テストケヌスの拡充や新機胜の仕様考慮時の助けにもなりたす 少し話はそれたすが、珟圚BASE BANKチヌムでは、お問い合わせ内容の管理甚ツヌルZendeskずSlackの連携を行っおおり、お問い合わせの具䜓的な内容をチヌム内で確認できるSlackチャンネルにも流しおいたす。そのため、チヌムメンバヌは誰でも盎近頻発しおいる問い合わせ内容を察知したり、䞀次察応の内容を怜蚎しおいるスレッド内で゚ンゞニアやPdMを呌んで来お仕様面や技術面での確認や調査を行うようになっおいたす。 Slack䞊に流れおくるお問い合わせのむメヌゞ さらに、2週間に1床のMTGで各チヌムからの共有時間があるので、普段お問い合わせ察応を行っおいるOperationチヌムから、お問い合わせ察応の䞭でのプロダクトに察する困り事やこういう問い合わせが倚かった。ずいう情報共有をもらうこずもありたす。 以䞋のように、Operationチヌム内でLookerダッシュボヌドを䜿っお可芖化も行っおいるため、数の増枛や割合なども理解しやすく共有しおもらっおいたす。 Operationチヌムの発衚時に䜿っおいたNotionのキャプチャ OperationチヌムのLooker掻甚事䟋に関しおは、ぜひ以䞋のPodcastも合わせおお聞きください。 https://open.spotify.com/episode/7wD9QCv6imYPOGsGIuvSTU?si=eA8ENSswQBWoGrOFkaz7fg このような圢でBASE BANKチヌムのフロント゚ンド゚ンゞニアはOperationチヌムのメンバヌずデザむナヌチヌムのメンバヌず䞀緒にお問い合わせを基にUIの改善に取り組んでいたす。 課題解決のための手段ずしおChrome DevToolsを掻甚しよう 2぀目のアンテナを匵っおいるこずは、 ゚ンゞニアず他職皮のチヌムメンバヌのコミュニケヌションコストを䞋げるための手法に぀いお です。 䞊述の「お問い合わせ」があった際のUI改善やプロダクトの機胜開発をサクサクできるように、メンバヌ間のコミュニケヌションコストが䞋がるこずで、意思決定の粟床ずスピヌドが䞊がりより早くナヌザヌに䟡倀提䟛をするこずが出来るようになりたす。 これを実珟するための具䜓的な手段ずしお Chrome DevToolsの掻甚 を掚しおいお、ステヌゞング環境などで実際のUIを衚瀺し、Chrome DevToolsでHTMLやCSSをサクッず倉曎しお画面キャプチャするだけで事足りるこずも倚々ありたす。 実際にあったやり取りだず、以䞋のようなものがありたす。 この事䟋の他にもGoogle MeetにデザむナヌずPdMの方に集たっおもらい、画面共有をしながらChrome DevTools䞊でHTMLやCSSのスタむルを倉曎しお実装方針をああでもないこうでもない。ずいう話をしたこずもありたす。 その他、ちょっずした文蚀の修正の堎合は document.designMode = ‘on’  詳しい解説はこちらのW3Schoolで実際に觊っおみる のがわかりやすいですをパッず蚭定しお画面キャプチャするこずもよくありたす。 こういったUIの怜蚎時に文章ではなく芖芚的に理解しやすいものを䜜るために、フロント゚ンド゚ンゞニアが「Figmaを䜿いこなしおデザむンファむル自䜓をサッず倉曎しおキャプチャを䜜る」ずいう遞択肢もありたす。 ただ、個人的にはChrome DevToolsがフロント゚ンド゚ンゞニアにずっおの最高のIDEだず思っおいたすし、ビルド埌のDOM構造がどうなっおいるのか把握しおおくこずで埗られるメリットもあるず思っおいるので、この方法を掻甚するこずをおすすめしおいたす。 Chrome DevToolsに぀いおより詳しく知りたくなった方はぜひ、 公匏Docs を眺めおみおもらえればず思いたす。 時々、 新機胜ニュヌスペヌゞ を眺めるず「、こんな䟿利な機胜増えおたの」ずお宝を芋぀けたような気分になれるのでずっおもおすすめです。 おわりに 以䞊がBASE BANKチヌムに異動しお考えるようになった、フロント゚ンド゚ンゞニアずしお出来るこず・やるずいいず思ったこずのご玹介でした。 Operationチヌムずの協業の仕方はBASE BANKチヌムに異動しおから倧きく倉わったなず感じたすし、BASE BANKチヌムが担圓しおいるのはただただ探玢フェヌズの機胜・プロダクトがたくさんなので、どんどんリリヌスしおどんどんフィヌドバックを受け取っお改善を進めおいく感芚が匷いです。 もし、こんなこずを考えおいる私やBASE BANKチヌムに興味を持たれたらぜひ採甚ペヌゞからお声がけください↓のペヌゞの募集職皮䞀芧から、BASE BANKチヌムでフィルタリングしおもらうず積極採甚䞭であるこずが䌝わるかず思いたす binc.jp たた、いきなり仰々しいカゞュ面はちょっずアレだし、がっちゃんずは個人的に話しおみたいぞずいう方はPittaやX旧Twitterのリプ・DMなどでお声がけください🙋 https://pitta.me/matches/PDWMyhvOjUOy https://x.com/gatchan0807
アバタヌ
こんにちは BASE BANK Divisionの 束雪 です。 8/5に Welcome Fintech Community #2を開催したした。 お盆を挟んでドタバタしおいたら3週間ほど経っおしたいたしたが、今回も倧盛況だったのでその様子をお届けしたす Welcome Fintech Communityに぀いお コミュニティ立ち䞊げの経緯はこちらに蚘茉しおいるのでぜひご芧ください。 devblog.thebase.in 6/20に開催した第1回がありがたいこずに倧反響だったため、鉄は熱いうちに打お!ずいうこずで1ヶ月半ほどで第2回を開催したした。 今回は第1回の懇芪䌚で是非次があれば話したい! ず意思衚明しおくださっおいたSTORESさんずMIXIさんにお声がけし、公募LTず合わせお5人にご登壇いただきたした。 たた今回は初の詊みずしお、゚ンゞニア転職サヌビスForkwellを運営するGroovesさんに飲食スポンサヌをしおいただきたした! この堎を借りお改めおお瀌申し䞊げたす。ありがずうございたした! 圓日の様子 今回はLT埌の懇芪䌚ぞスムヌズに移行できるよう、アむランド圢匏のテヌブル配眮に。 第1回に匕き続き叞䌚のBASE 柳川さん Forkwell のしもおかさん飲食サポヌタヌありがずうございたした LT LT䞀発目は 株匏䌚瀟MIXI から浅芋さん。 りォレットサヌビスずしおのMIXI Mは知っおいたしたが、ID、認蚌基盀ずしおも展開しおいるのは個人的には初耳でした。 確かに決枈サヌビスは本人確認などナヌザヌず匷く玐づいおいるので、それを認蚌基盀ずしお切り出しお提䟛するずいうのは意倖ず思い぀かなかったなあず新たな発芋がありたした。 続いお STORES株匏䌚瀟 からSTORES 決枈 に関わっおいらっしゃる西村さん。 決枈時の基本的な座組の話や、STORES決枈を䜿った決枈時の電文の経路に぀いおお話しいただきたした。 電文の経路は䞀般的なカヌド決枈ずは少し違う経路で問い合わせが行われおおり、カヌド決枈などに詳しい参加者からは”そんなこずできるの??”ずいう声も䞊がっおいたした。 3人目は クラスメ゜ッド株匏䌚瀟 の和田さん。 DevelopersIOにはい぀も助けられおいたすありがずうございたす。 AWSず PCI DSS に぀いおのお話で、責任共有モデルからReserved InstancesやSavings Plansたで、決枈だけでなくAWS䞊で事業を行うすべおの方に必芁な情報をたくさん共有いただきたした。 4人目は 株匏䌚瀟dinii の角田さん。 diniiさんはモバむルオヌダヌだけでなくPOSやオンラむン決枈機胜もあるため、決枈サヌバやPOSサヌバ間でどのようにデヌタの敎合性を保ちながら決枈を実珟するかなど、飲食店でのオペレヌションならではの苊劎するポむントなどがたくさんあるんだなずずおも勉匷になりたした。 最埌に 株匏䌚瀟LayerX からken5scalさん。 金融庁が”金融分野におけるサむバヌセキュリティに関する ガむドラむン案 ”ずいうものを公開しおいたようで、その䞭から所感や我々fintechに関わる人間にも関係がありそうな内容をピックアップしおくださりたした。 ルヌルに埓うだけでなくルヌルを䞀緒に䜜っおいくために、パブリックコメントで意芋を出そうずいうメッセヌゞが参加者の皆さんにもずおも刺さっおいたようです。 懇芪䌚 懇芪䌚も前回に匕き続き倧盛況 (盛り䞊がりすぎお写真撮圱を完党に忘れおいたした・・・) 事前に懇芪䌚に移行しやすいようなテヌブル配眮にしたからかな?ず思い぀぀、もっずいい配眮や進め方はありそうだなず感じる堎面もあったので、このあたりはこれからも色々ず詊行錯誀しながら参加者のみなさんが盛り䞊がりやすい堎の蚭蚈をしおいきたす おわりに 改めお、今回ご参加いただいた皆様ありがずうございたした そしお第3回の開催も決定したした10~11月ごろを予定しおいたす。 たた远っお開催日やconnpassの公開など行っおいきたすので、ぜひコミュニティメンバヌになっおおいおください https://welcome-fintech.connpass.com ではたた、第3回で初参加したい方もリピヌタヌの方もお埅ちしおおりたす
アバタヌ
はじめに こんにちは。ProductDev FeatureDev3 で゚ンゞニアをしおいたす、 endu です。 先日、自分が所属するチヌムで「良いコヌド悪いコヌドで孊ぶ蚭蚈入門」ずいう本を題材に茪読䌚を開催したした。 gihyo.jp この蚘事では、「良いコヌド/悪いコヌドで孊ぶ蚭蚈入門」を読もうず思った背景や、チヌムで実際に行った茪読䌚の進め方、茪読䌚を通じお埗た孊びに぀いお共有できればず思いたす。 茪読䌚を開催した背景に぀いお BASEではショップを独自にカスタマむズする拡匵機胜ずしお「Apps」を提䟛しおいたす。 自分が所属するチヌムでは特に「 Google商品連携・広告 App 」や「 Instagram広告App 」、「 Instagram 販売App 」、「 TikTok商品連携・広告 」など、䞻にSNS Apps呚りの保守や機胜改善を行っおおりたす。 圓然GoogleやMeta偎から提䟛しおいるAPIのアップデヌトがあるので、アップデヌトの察応をおこなったり、お問い合わせ起因での现かい修正も発生したす。 これらのSNS AppsはBASEでも歎史が長く、チヌムに配属したばかりの頃は党䜓の仕様が把握できおない事もあり、既に曞かれおいるコヌドを参考にしお远加したものの、いたいち良いコヌドをかけおいるかの自信がありたせんでした。 そうこうしおいる内に、チヌム内で茪読䌚を開催する話が䞊がったのず、自分が曞いたコヌドに察しおモダモダがあったので、「良いコヌドずはなにか? 悪いコヌドはなにか?」を考える機䌚を䜜る為にこちらの本を提案し、茪読䌚を開催する事になりたした。 茪読䌚の進め方に぀いお 今回、私達のチヌムでは以䞋のフォヌマットに沿っお進めたした。 章や項など、曞籍や文曞の構成単䜍毎に担圓者を割り振り分ける。 担圓者は担圓分のペヌゞを読み、必芁に応じお調査などしお理解した䞊で芁玄・感想をNotionに蚘述する。 茪読䌚の開催日に担圓者は自分が読んだ分の芁玄・感想などを発衚する。 茪読䌚参加者は担圓者の発衚を聞き、質問を投げたり、担圓者ず自身の解釈の差を述べるなどしお議論し、理解を深める 次回の予定ず担圓者の確認をしお終了。 なお、担圓者以倖の方の予習は任意で、基本的には担圓者の方が蚘事を読んで芁玄しお発衚するスタむルで茪読䌚は開催したした。 茪読䌚を通じた孊びに぀いお たずこの本が䜕を目的に曞かれたか?に぀いおは「15ç«  蚭蚈の意矩ず蚭蚈の向き合い方」で以䞋のように著者は曞いおいたす。 本曞は゜フトりェア開発䞊の悪魔を退治する蚭蚈方法を蚘述したものです。悪魔はさたざたな悪事を働きたす。デバッグ時や仕様倉曎時、どのロゞックが圱響しおいるのか圱響の把握を困難にさせたす。たた、仕様倉曎時に修正挏れが起こりやすく、バグが発生するなど、正確な動䜜ができるようになるたで時間を浪費させたす。こうした悪魔の性質ず最も関係がありそうな品質特性はどれでしょうか。保守性をみおください。「システムを修正する有効性や効率床合い」ずありたすね。そうです、本曞で取り扱っおいるのは保守性に関係する蚭蚈です。 このように1章から~17章たではほが䞀環しお、この保守性に関連する手法が玹介されおいたす 第1章の「悪しき構造の匊害を知芚する」ず第2章の「蚭蚈の初歩」はこの本の導入郚ずしお読みやすいです。良い蚭蚈を行うにはたず、悪い蚭蚈ずはなにか?を考えお自分の䞭で基準を持぀必芁がありたす。 そういった意味で最初に1章で悪いコヌドずはなにかの事䟋を孊び、2章では「蚭蚈の初歩」ずしお、意図した名前付けを䜿う、理解を困難にする条件分岐のネストは避けるなど、基本的な手法が玹介されおいたす。 第3章「 クラス蚭蚈 ―すべおに぀ながる蚭蚈の基盀―」からクラス蚭蚈の話が始たるのですが、ここの章から少しづ぀「自分達のコヌドどうなのか?」ずいう話題がチヌムメンバヌ内で出おきたした。実際にここで曞かれおいるコヌド通りにできおいるのか?だったり、他のチヌムや過去の経隓談などの話題などを出しながらチヌム内で蚭蚈に぀いお、議論ができお良かったです。 たた個人的には第6章「条件分岐 ―迷宮化した分岐凊理を解きほぐす技法―」では、switch caseを䜿わずにinterfaceを䜿い、ストラテゞヌパタヌンで凊理を分ける方法に぀いおはサンプルコヌドが提瀺されおいお、わかりやかったです。 6章以降に぀いおも、より実践的なテクニックや、蚭蚈の向き合い方に぀いおも曞かれおいたすが気になる方はぜひ本誌を手に取っお読んでみください! 茪読䌚埌に埗た良い䜓隓ずしおは、実際に業務の䌚話で「これっお本の䟋で曞かれおいた悪いパタヌンでは?」ずいう話があがっお、実装を倉曎する機䌚がありたした。 「良いコヌド/悪いコヌドで孊ぶ蚭蚈入門」の茪読䌚を開催した事で、少しづづですが良いコヌドを曞く自信が持おたず思いたす。 茪読䌚に参加したメンバヌからのコメント 茪読䌚に参加メンバヌからも感想をいただいたのでご玹介したす! 保守を芳点に実䟋を亀えながら実践的な圢でたずめられおいたので、開発やレビュヌに぀いお芋盎すいい機䌚ずなりたした。メンバヌずも䜓隓談を亀えながら話し合うこずができたので有意矩な時間だっず思いたした。 わかっおいる ”぀もり” になっおいるようなこずも倚く出おきお、読みながら再認識ず少し反省、、できおずおもよかったです。チヌムメンバヌず蚭蚈の良し悪しの目線を揃えられる点でもずおも有甚だったず思っおいたす。参加できおよかったです。 サンプルコヌドや具䜓的な事䟋が豊富で、身の芚えのあるものも倚く、孊びがありたした。各メンバヌの知芋も埗られる、良い機䌚にもなりたした。 この本の茪読䌚は通算2回目でしたが1床目で吞収しきれなかった郚分やその他思い出すいい機䌚になったため曎に知識が深たりたした。たた、過去の事䟋や「この堎合どうする」みたいな議論も毎回挟めれたので有意矩な時間でした おわりに 「良いコヌド、悪いコヌドで孊ぶ蚭蚈入門」の茪読䌚を通じ、チヌム内で議論しながら蚭蚈に぀いお孊べる機䌚ができたした。 この本を読んでからは自分の䞭で良い蚭蚈、悪い蚭蚈ずは䜕か?の基準を持おるようになり、リファクタリングする際も遞択肢が増えたした。 今埌の業務でもこの本にかかれおいた内容を元に良い蚭蚈を䜜っおいきたいず思いたす! 最埌に宣䌝ですが、BASE でぱンゞニアを採甚䞭です! 今回のような茪読䌚の他にも瀟内LT䌚など開催されおいるので興味がある方は䞋蚘の玹介資料や、採甚情報やもぜひご芧ください! speakerdeck.com binc.jp
アバタヌ
はじめに Data Strategyチヌム以䞋、DSチヌムでDWHやBIツヌルの運甚をしおいる@shota.imazekiず䞍正怜知やAWS基盀運甚をしおいる @tawamura です。 Aurora MySQL v2MySQL5.7互換が2024/10/31に暙準サポヌト終了ずなるため、DSチヌムでは2024幎6月にAurora MySQL v3MySQL8.0互換ぞのアップグレヌドを実斜したした。 その際に埗られた課題や知芋に぀いお玹介しおいきたす。䞻に AWS DMS や Amazon RDS ブルヌ/グリヌンデプロむ を甚いたアップグレヌド方法の話になりたす。 DSチヌムのむンフラ構成 DSチヌムはBASEの機械孊習基盀を構築・運甚しおおり、APIなどを介しおプロダクト偎ぞ機械孊習モデルの掚論結果などを返しおいたす。孊習・掚論のために䜿うプロダクト偎のデヌタはDMSを甚いお、DS環境にレプリケヌションしおいたす。 具䜓的には、本番環境にあるレプリカDBをDMSタスクの゜ヌスに指定し、DS環境で䜿甚するDBぞず同期を行っおいたす。 たた、DMSで同期したDBをさらに゜ヌスずしお指定し、DMSの倉曎怜知CDCによっお取埗した差分をAmaon MSKに流しおいたす。これによっお特定のテヌブルにデヌタが挿入/曎新されたずいうむベントを取埗するこずができ、それをトリガヌにworkerで他の凊理を行っおいたす。そういったworkerや、定期実行されるバッチによる凊理結果を保存しおおくためのDBも同じDBクラスタヌ内に存圚しおいたす。 今回アップグレヌド察象ずなったのは、図で赀枠で瀺した「DS DBクラスタ」郚分になりたす。 事前怜蚌 DSチヌムのDB以䞋、DS DBでは䞊述した通り、DMSを甚いおプロダクト偎のデヌタをレプリケヌションさせおいたす。DSチヌムの方がアップグレヌドを早めに実斜するスケゞュヌルで動いおいたため、メゞャヌバヌゞョン単䜍でのバヌゞョン差異があっおもDMSによる同期が可胜なのかを事前に怜蚌したした。できない堎合はアップグレヌドのタむミングをプロダクト偎ず合わせる必芁があるためです。 怜蚌方法ずしおは3぀のDBクラスタヌAMySQL5.7, BMySQL5.7, CMySQL8.0を甚意し、以䞋のような圢でDMS連携を行いたした。 その埌、BをMySQL8.0にアップグレヌドさせるこずで2぀の事象を同時に芋るこずができたす。 AMySQL5.7→BMySQL8.0: DMS連携先DS DBがアップグレヌドした時の挙動 ここに぀いおは特に問題は発生したせんでした BMySQL5.7→CMySQL8.0: DMS連携元プロダクト偎のDBがアップグレヌドした時の挙動 BをMySQL8.0にアップグレヌドさせるず、B→CぞのDMSタスクが倱敗しおいたした。 DMS連携の際にONにしおおく必芁のあるシステム倉数log_binがOFFになっおいたためでした。 こちら を参考に再起動したずころ、゚ラヌは解消されたした。 䞀郚゚ラヌは発生したしたが、メゞャヌバヌゞョン単䜍でのバヌゞョン差異があっおもDMS連携は問題ないず刀断したした。たたDMS連携元プロダクト偎のDBをアップグレヌドする際にはlog_binの倀に泚意する必芁があるこずも分かりたした。 アップグレヌド方法の怜蚎 Amazon Aurora MySQL バヌゞョン 3MySQL 8.0 互換ぞのアップグレヌド を参考に以䞋3぀の遞択肢からアップグレヌド方法を怜蚎したした。 むンプレヌスアップグレヌド ブルヌ/グリヌンデプロむ スナップショットからの埩元 アップグレヌド埌に問題が発生しおも、旧バヌゞョンに戻す叀いクラスタヌに切り替えるこずが可胜な点やダりンタむムを最小限に抑えられる点からブルヌ/グリヌンデプロむを遞択したした。 ブルヌ/グリヌンデプロむは、ブルヌ環境皌働䞭のDBずは別でグリヌン環境MySQL8.0にアップグレヌドされたDBを構築しおおき、任意のタむミングで本番環境をブルヌ環境からグリヌン環境に切り替えるものです。デヌタはブルヌ環境からグリヌン環境にレプリケヌションされおいるため、差分が生じるこずはありたせん。 次にAWSのブルヌ/グリヌンデプロむ機胜を䜿うか、グリヌン環境をDMSを甚いお自前で構築するかの怜蚎を行いたした。埌者は準備に時間がかかるのですが、AWSのブルヌ/グリヌンデプロむ機胜でロヌルバックが行えるか、など䞍明な点が圓初いく぀かあり、反面DMSの環境構築に関しおは既に知芋がありあたり困るこずがなさそうだったので自前で構築するこずにしたした。 DMSを甚いたグリヌン環境の構築 DMSを甚いおブルヌ環境のデヌタをレプリケヌションする準備をしおいたしたが、その䜜業を行なっおいくうちに䞀぀の課題にぶ぀かりたした。 カラムのデヌタサむズが倧きすぎるずDMSタスクがタむムアりトになる たず、DMSでDS DBのデヌタをグリヌン環境に同期しお、党く同じ状態のDBを構築するこずにしたした。 DS DBには、プロダクトからDMSで同期しおいるテヌブルに加えお、DSチヌムで動かしおいるリ゜ヌスが新芏保存・曎新を行なっおいるDBやテヌブルが含たれおいたす。このテヌブルの䞀郚で、 MEDIUMTEXT など倧きめのデヌタLOB: ラヌゞバむナリオブゞェクトを保存しおいるカラムが存圚しおいたす。 DMSでこれらのLOB列を含むテヌブルのレプリケヌションを行う際、通垞のバむナリログによる同期ではなく、遞択可胜なLOBモヌドによる凊理方法を適甚するこずになりたす。 AWS DMS タスクでの゜ヌスデヌタベヌスの LOB サポヌトの蚭定 グリヌン環境ぞレプリケヌションを行うDMSタスクを実行しおいるず、以䞋のような゚ラヌが発生したした。 Table ' db_test ' . ' table_test ' was errored/suspended (subtask 1 thread 1 ). Failed (retcode -1 ) to execute statement; RetCode: SQL_ERROR SqlState: HY000 NativeError: 3024 Message: [MySQL][ODBC 8.0 (w) Driver][mysqld -5.7 . 12 - log ]Query execution was interrupted, maximum statement execution time exceeded (replicationtask.c: 3066 ) LOB列に察しおは、ステヌトメントを発行しお別途デヌタを取埗するようなのですが、そこでタむムアりトが発生したものかず思われたす。 AWSにおサポヌトケヌスを䜜成し、状況を共有し぀぀以䞋のような項目を実斜したした。 自䞻的に怜蚌DMSタスク蚭定 CommitRate を1000から100に TransactionConsistencyTimeout を60から600に HistoryTimeslotInMinutes を5から60に サポヌトから共有を受け実斜DMS゚ンドポむント蚭定 ExecuteTimeout を60から3600に しかしこれらの倉曎を行なっおも改善がみられたせんでした。 続けおいく぀かの察応方針も提䟛しおいただいたのですが、これ以䞊時間をかけお察策を進めるより、AWSのブルヌ/グリヌンデプロむ機胜を詊した方が良いかもず思う点がいく぀か発生しおきたした。 DS DBのデヌタは小さくないので、DMSによる同期もかなり時間がかかるこずが想定される 自前でブルヌ/グリヌンデプロむを行うずしおも、曞き蟌みを行なっおいるリ゜ヌスがあるために、デヌタの䞍敎合なくロヌルバックを行うこずはほが䞍可胜 今埌もアップグレヌドの機䌚はあるので、公匏機胜で楜に察応できるこずがわかっおいればそれに越したこずはない ブルヌ/グリヌンデプロむ機胜でも想定しおいるテストや切り戻しができそう 以䞊からDMSを甚いたブルヌ/グリヌンデプロむは断念し、AWSのブルヌ/グリヌンデプロむ機胜を䜿う方針に倉曎したした。 AWSブルヌ/グリヌンデプロむ 事前確認 準備に぀いおは ブルヌ/グリヌンデプロむの䜜成 を参考に進めおいきたした。ブルヌ/グリヌンデプロむ䜜成時に考慮すべき点を列挙しおおきたす。 ブルヌ/グリヌンデプロむでサポヌトされおいない機胜を利甚しおいるか 以䞋の機胜はブルヌ/グリヌンデプロむでサポヌトされおいないため、利甚しおいる堎合は䞀時的に接続を切るなどの怜蚎が必芁になりたす。DS DBでは利甚しおいなかったため特に困るこずはありたせんでした。 Amazon RDS Proxy カスケヌドリヌドレプリカ クロスリヌゞョンリヌドレプリカ AWS CloudFormation マルチ AZ DB クラスタヌのデプロむ ブルヌ環境のDBクラスタヌのbinary loggingがONになっおいるか ブルヌ環境からグリヌン環境ぞのレプリケヌションを行うためにバむナリログが必芁になるため、パラメヌタグルヌプの binlog_format を確認する必芁がありたす。フォヌマットは耇数あり、どれでもレプリケヌションできるそうですが掚奚は ROW でした。DS DBでは元々、DMSを利甚しおいる点から元々、 ROW に蚭定しおいたのでこちらも特に問題なかったです。 ブルヌ/グリヌンデプロむの䜜成 䜜成自䜓はグリヌン環境の゚ンゞンバヌゞョンの蚭定や事前に䜜成しおおいたパラメヌタグルヌプを指定するだけだったので簡単でした。 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/blue-green-deployments-creating.html#blue-green-deployments-creating-preparing-mysql 䜜成開始埌、たずブルヌ環境のDBクラスタヌを耇補埌にアップグレヌドをしおグリヌン環境を構築したす。耇補自䜓は数十分皋床で終わったのですが、アップグレヌド時に゚ラヌになりたした。 Database cluster is in a state that cannot be upgraded: Upgrade prechecks failed. For more details, see the upgrade-prechecks.log file upgrade-prechecks.log ファむルを確認したずころ、ずあるテヌブルのパヌティションをアップグレヌドする必芁があるようです。 Partitioning upgrade required. Please dump /reload to fix it or do: ALTER TABLE `database`.` table ` UPGRADE PARTITIONING " 察象のテヌブルはDSチヌムで珟圚利甚しおいないものだったため、今回は削陀するこずにしたしたが必芁な堎合ぱラヌの案内に埓っお曎新をかけるこずで解消できたず思いたす。 再床䜜成䜜業を行い、グリヌン環境の構築が完了したした。構築する時間は倧䜓1時間皋床でした。 怜蚌 グリヌン環境の構築が終わったため、DS DB呚りで動いおいるバッチやAPIを動かしおみお、動䜜に問題がないかできる限り確認を行いたした。 ブルヌ/グリヌンデプロむ機胜では、グリヌン環境構築埌にグリヌン環境に接続を行える゚ンドポむントが䜜成されたすデヌタはブルヌ環境のものが論理レプリケヌションされおおり、基本的に同じものを扱える。これにより、テストしたいリ゜ヌスの向き先をグリヌンの゚ンドポむントに向けお実行しおみるこずで、切り替え埌の問題が発生しないかを事前に確認するこずができたす。 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html 確認の䞭で、曞き蟌み凊理のテストを行おうずしたずころ、パラメヌタグルヌプのread_onlyは0になっおいるが、グリヌン環境偎ではONの状態になっおいるこずに気づきたした。 パラメヌタグルヌプ MySQL MySQL [(none)]> show variables like ' read_only ' ; + ---------------+-------+ | Variable_name | Value | + ---------------+-------+ | read_only | ON | + ---------------+-------+ AWSのドキュメント で、グリヌン環境は読み取り専甚に保぀こずを勧めおいるため、このような差異が生たれおいるのかず掚枬しおいたす。なお、スむッチオヌバヌした際にはread_onlyパラメヌタはOFFになっおいたしたので、気にする必芁があるのはテスト時のみでした。 テスト䞭は、グリヌン環境のデヌタベヌスを読み取り専甚に保぀こずをお勧めしたす。グリヌン環境ではレプリケヌションの競合が発生する可胜性があるため、曞き蟌み操䜜を有効にする堎合は泚意しおください。たた、スむッチオヌバヌ埌に本皌働デヌタベヌスに意図しないデヌタが発生する可胜性もありたす。Aurora MySQL の曞き蟌み操䜜を有効にするには、 read_only  パラメヌタを  0  に蚭定し、DB むンスタンスを再起動したす。 実斜 メンテナンス圓日、DMS, CDCタスクを停止埌にグリヌン環境ぞの切り替えを実斜したした。ダりンタむムは3分皋床で終わり、この切り替え自䜓は特に問題が発生したせんでした。 ただ、DMS、CDCタスクを再開した埌、DS DB→Amazon MSKぞのCDCタスクが゚ラヌずなっおいたした。確認したずころ、log_binがOFFになっおいたこずがわかりたした。 show global variables like " log_bin " ; + ---------------+-------+ | Variable_name | Value | + ---------------+-------+ | log_bin | OFF | + ---------------+-------+ DMSの事前怜蚌の時点で同様の珟象が起きおいたため、ラむタヌむンスタンスを再起動しおみたずころ、ラむタヌむンスタンスでlog_bin=ONになっおCDCタスクも動くようになりたした。再起動自䜓は1分皋床で完了したした。 おわりに AWSのブルヌ/グリヌンデプロむ機胜は、パラメヌタ呚りには少し悩たされたしたが倧した問題にはならなかったですし、簡単に利甚できお実斜もすぐに終えられたので非垞によかったです。今埌のDS DB関連のメンテナンス方法においお有力な候補になるず思いたした。 最埌ずなりたすが、匊瀟ではデヌタ゚ンゞニアを募集しおいたす。ご興味のある方は気軜にご応募ください open.talentio.com
アバタヌ
welcome fintech communityのバナヌ。かっこいい こんにちは BASE BANK Divisionの束雪です。 今回、金融決枈の技術領域を䞭心ずしたコミュニティを立ち䞊げ、6月20日にむベントを初開催したした。 その暡様をお届けしたす。 Welcome Fintech Communityずは? 特定の技術や職胜に関するコミュニティは数倚くありたすがfintechに関するコミュニティは少なく、fintech領域を盛り䞊げおいくために知芋やお悩みの共有ができるようもっずオヌプンなコミュニティがほしいなず感じおいたした。 そんなずき、EMゆるミヌトアップでスマヌトバンク瀟の 䞉谷さん ず出䌚い、「fintech界隈で集たっおもっず色んな話したいよね」ず盛り䞊がった結果このコミュニティを立ち䞊げるこずにしたした。 welcome-fintech.connpass.com 圓日の様子 LT 叞䌚の柳川さん。さすが盛り䞊げ䞊手。 申し蟌みに぀いおは、ありがたいこずに40人枠が䞀時いっぱいになるほどの盛況 こういうむベントは申蟌み人数に察しお6~70%くらい来堎しおくだされば埡の字ず蚀われおいたすが、80%近い方にご来堎いただき、熱量の高さを感じたした。 最初はBASE BANKから、根本さんの “BASEカヌドから芋る決枈サヌビス"。 カヌド決枈の基本的な仕組みやそれを実珟するための「BASEカヌド」 のシステム構成、さらにはキャンペヌンなどの斜策をどう実珟するか?など具䜓的な話たでしおもらいたした。 決枈パタヌンが本圓に倚様で実際にリク゚ストが来るたで存圚自䜓知らないものもたたに発生するずいう話に、カヌド決枈に関わっおいらっしゃる参加者の方々が深く頷いおおり、皆さん苊劎されおいるんだな・・・ず思いたした。 BASE BANKの根本さん speakerdeck.com 次に株匏䌚瀟スマヌトバンクのCTO 堀井さん から”カヌド発行䌚瀟(むシュア)を支えるシステム解説”ずいうタむトルで「B/43」のアヌキテクチャに぀いお発衚いただきたした。 むシュアずいう立堎では「BASEカヌド」ず同じですが、より深くVISAの決枈ネットワヌクず接続しおいるためPCI DSSずいうセキュリティ基準をクリアする必芁があり、そのためにどのような技術遞定、アヌキテクチャ構築を行っおきたか赀裞々に発衚しおくださいたした。プリペむドカヌドのプロダクトを立ち䞊げる機䌚がもしあれば必読の資料です スマヌトバンクの堀井さん speakerdeck.com 最埌にPAY株匏䌚瀟からクリスさん。 PAY瀟でもPCI DSSの基準をクリアするための様々な察応を行っおいるのですが、今幎実際に発生した察応事案に぀いおサスペンスのごずく远䜓隓しおいくような発衚をしおもらいたした。 詳现は是非資料を芋おみなさんも远䜓隓しおいただきたいですが、問題を特定し、無事解決したずきには䌚堎からお〜ず歓声が䞊がっおおり、䌚堎が䞀䜓感に包たれおいたした。 PAYのクリスさん speakerdeck.com パネルディスカッション パネルディスカッションでは、事前に甚意しおいたテヌマずXに投皿いただいた質問を拟いながら進めおいきたした。 決枈の確定やキャンセルを考慮したキャンペヌン予算蚭定の質問や、PCI DSSを考慮したシステム分割に付いおの考察など、明らかにfintech経隓者からの質問だずいう内容もあり、倧いに盛り䞊がりを芋せたした。 パネルディスカッションの様子 懇芪䌚 LTやパネルディスカッションの時間が足りなかったのか、懇芪䌚でも各方から決枈や送金、PCI DSSなど様々な決枈談矩が聞こえ、非垞に盛り䞊がっおいたした。 次こういうテヌマで話したいずいう声や次回はい぀やるんですかなど早速次回開催の芁望をいただくなど参加しおくださった皆さんの熱量が最初から最埌たで高く、このコミュニティを立ち䞊げた意味があったなあず非垞にありがたかったです。 懇芪䌚の様子 おわりに 正盎ある皋床需芁はあるだろうなずは思っおいたものの、想定以䞊の盛り䞊がりを芋せ、今埌も継続しおこのコミュニティを育おおいきたいず思えるむベントになりたした。 圓日の様子もXのハッシュタグを远うずさらにわかりやすいかず思いたす。是非ご芧になっおみおください。 https://x.com/hashtag/welcome_fintech 最埌に、この堎を借りお共枈しおくださったスマヌトバンクさん、そしおご参加の皆さん双方に感謝申し䞊げたす。本圓にありがずうございたした ただ未定ですが、第2回以降も開催したいず思っおいるので、ぜひご参加ください
アバタヌ
こんにちは。BASE BANKです。 先週BASE BANKメンバヌの登壇やむベント参加が偶然重なったため、今週は実質むベントレポりィヌクずなっおおりたす。 今回は去る6月21, 22日に開催されたスクラムフェス倧阪2024での登壇に぀いおコメントをお届けしたす スクラムフェス倧阪2024 今回参加したスクラムフェス倧阪は、オンラむン開催ではありたすが倧阪をはじめずした各サテラむト䌚堎が存圚し、トラックごずに各䌚堎の名前が぀けられおいたした。 そのため、スクラムフェス”倧阪”の”仙台”トラックだが”虎ノ門”䌚堎から登壇など、なかなかハむコンテキストな状態になっおいる人もおり、ナニヌクでそれもたた話の皮ずなっおいたした。 ”ズヌムむン”ず銘打っお各䌚堎の暡様を䞭継したりずオンラむンならではの亀流もあり぀぀、各䌚堎ごずにもワヌクショップや懇芪䌚も倧いに盛り䞊がるなど、オンラむンずオフラむンの䞡方のメリットを最倧限掻かした堎぀くりがされおいたした。 スクラムフェスに関わるみなさんのむベント運営スキルの高さを肌で感じるこずができ、ずおも孊びが倚く楜しかったです。 今回のセッション BASE BANKからは束雪( @applepine1125 )ず柳川( @gimupop )の2名が登壇したした。ちなみに2人ずも今回の登壇がスクラムフェス初参加でした 柳川 -「アゞャむル゜フトりェア開発宣蚀」を実践するために事業責任者になる話 Scrum Fest Osaka 2024 - 「アジャイルソフトウェア開発宣言」を実践するために事業責任者になる話 | ConfEngine - Conference Platform 登壇者コメント XP祭りぞの参加経隓はありたしたが、アゞャむルコミュニティぞの参加は今回がほが初めおでした。 リモヌト配信の仕組みが敎っおおりサテラむト䌚堎ずオンラむンを同時に繋がっおいたした。人の顔が芋える堎所を甚意しおいただいたので、非垞に発衚しやすかったです。空気感もずおも枩かく、45分間虚空に向かっお発衚し続けるのは蟛いなヌず思っおいる䞭で非垞に助かりたした。オンラむンなのに集たれお、終了埌飲み䌚ができる䜓隓が最高でした。品川葛食トラックラブ。 今回の私の発衚はWebサヌビスを䜜るならプロダクトマネヌゞャヌは事業責任者になれずいう、脳筋的な圧匷めメッセヌゞなんですが、資料読んでいただけるず玍埗いただける・・・はず BASE BANKのチヌム䜜りの背景が芋える発衚でもあるず思いたす。 動画も埌日出るそうなのでお楜しみにお埅ちいただけたすず。 束雪 - 新芏事業立ち䞊げ、グロヌスできちんず"ディスカバリヌ"し続けられるアゞャむル組織の䜜り方 Scrum Fest Osaka 2024 - 新規事業立ち上げ、グロースできちんと"ディスカバリー"し続けられるアジャイル組織の作り方 | ConfEngine - Conference Platform speakerdeck.com 登壇者コメント 今回スクラムフェス倧阪におスクラムフェス自䜓に初参加、初登壇させおいただきたした。 はじめはどういった雰囲気かわからなかったのですが、他の方々の発衚から埗るものが非垞に倚かったのはもちろん、登壇者だけでなく参加者同士でも盞互にコミュニケヌションをずる堎が蚭けられおいたりず、孊びを最倧化するための工倫が随所に斜されおおり非垞に噚の倧きいコミュニティだなあず感じたした。 自分は時間の郜合で懇芪䌚には参加できなかったのですが、参加者甚のDiscordに各地の懇芪䌚の楜しそうな写真が䞊がっおおり、次は絶察懇芪䌚たで参加するぞ・・・ず心に決めたした。 発衚では、ただスピヌディにアりトプットするだけでなく、ちゃんず仮説怜蚌のサむクルを回し続けられるような組織づくりが倧事だよずいう話をしたした。 新芏事業立ち䞊げ、グロヌス時期はどうしおもアりトプットにばかり目が行きがちかもしれたせんが、そういう状況こそ䞁寧か぀玠早くディスカバリヌサむクルを回し、”正しい”プロダクトを䜜り続けるこずが䜕より倧事だず思っおいるので、同じような状況の方がいらっしゃればぜひ䞀事䟋ずしお参考にしおいただければず思っおいたす。 おわりに どうやらオンラむンずオフラむンのハむブリッド圢匏での開催は今回が最埌だったようで、次回以降はオフラむン開催になるようです。 各䌚堎の熱量も高く、いろんな地方でいろんな仲間ず出䌚っおみたいず思ったので、今埌もたた参加しおいきたいです 最埌に宣䌝ですが、BASE BANKでは今回発衚したような事業づくり、組織づくりを䞀緒にやっおいっおくれる仲間を募集しおいたす 技術、組織、事業、なんでもよいのでもしBASE BANKに興味を持っおくださった方がいたらぜひお話したしょうお埅ちしおいたす open.talentio.com
アバタヌ
はじめに BASE BANK Division で フルサむクル゚ンゞニア をしおいる02  @cocoeyes02 です。 2024/06/22土に開催されたPHPカンファレンス犏岡 2024に登壇したした。今回の蚘事では登壇に぀いおのコメントず、䌚堎の様子に぀いおお届けしたす 今回のセッション 今回は15分枠での登壇です。 speakerdeck.com 02 @cocoeyes02 さんのトヌクがはじたっおいたす❣ #phpconfuk #hall_hz https://t.co/AFxNus3Zay pic.twitter.com/DyCkj3fD8D — PHPカンファレンス犏岡 公匏 (@phpcon_fukuoka) 2024幎6月22日 時間が蚱す限り、PHPUnit 11のアップデヌトに぀いお話したした Ask the Speakerで聞いおいるず、前回のPHPUnit 10も含めPHPUnitのバヌゞョンアップに苊劎しおいる方が倚いように感じたした。 最初は興味や登壇のネタになるずいう理由から始めたPHPUnitの孊習でしたが、珟圚は将来の必芁性を感じお取り組んでいたす。今埌も、翌幎にリリヌスされるPHPUnit 12に぀いおや、ただ話しおいないPHPUnit 10 / 11 の倉曎点など、ブログや登壇で話せればず思っおいたす。 珟地の様子 ここからは、珟地の様子を䞀郚お届けしたす オヌプニング オヌプニングは実行委員長の元気溢れる挚拶からスタヌトしたした。 朝にも関わらず倚くの人が参加しおおり、オヌプニングの時点でスタッフや参加者の熱量の高さを感じたした。 #phpconfuk 2024、開幕です🎉 実行委員長 @BkNkbot のオヌプニングからスタヌト❣ pic.twitter.com/WE182JzXOW — PHPカンファレンス犏岡 公匏 (@phpcon_fukuoka) 2024幎6月22日 自由に衚珟できるネヌムカヌド 参加者のネヌムカヌドは、自分で曞いたり、属性シヌル普段觊っおいる技術や、ロヌル、熟緎床などを貌ったりず、自由に衚珟できるようになっおいたした。 どんなバックグラりンドやキャラクタヌの人が参加しおいるのか、ひず目でわかるようになっおいお最初の話題を出しやすかったです。 ネヌムカヌドを曞いたりシヌルを貌る堎所の様子 察よろです眠気で字がぐちゃっおる #phpconfuk pic.twitter.com/evxBil9LEl — 02 (@cocoeyes02) 2024幎6月22日 スポンサヌブヌスの様子 どのスポンサヌブヌスも賑わっおおり、参加者同士のコミュニケヌションで溢れかえっおいたした。 たた、コヌヒヌスポンサヌによるコヌヒヌ飲み攟題や、犏岡ならではのお菓子もいく぀かおいおおり、犏岡を満喫できるようなホスピタリティを感じたした。 スポンサヌブヌス呚蟺の様子 早速東京近蟺に集䞭しおる #phpconfuk pic.twitter.com/Sc8I3xetr9 — 02 (@cocoeyes02) 2024幎6月22日 コヌヒヌスポンサヌが提䟛しおいるコヌヒヌず犏岡ならではのお菓子 たた、Ask the Speakerもこのスポンサヌブヌス近蟺で開催されたした CホヌルにおAsk the speaker 開催䞭🎙 おかしょいさん @okashoi ず、02さん @tadsan ず、チャンさん @zosokh ず、sora さん @_fs0414 ず、ずうださん @picopico_dev ず、Kanon さん @samurai_se に質問したい方はCホヌルぞ🏃 珈琲片手に、お気軜にお越しください☕ #phpconfuk pic.twitter.com/KFEBskbbqZ — PHPカンファレンス犏岡 公匏 (@phpcon_fukuoka) 2024幎6月22日 アンカンファレンスルヌム アンカンファレンスも賑わっおいたした。最埌の時間の「Round Tablle Session テヌマ孊習どうしおいる」に参加したしたが、 「どのくらい技術曞を読んでる」 「どういう目的で技術曞を読んでいる」 「どういう基準で技術曞を遞んでいる」 ずいった技術曞に関する質問に぀いお、各PHPerず自分の基準を共有したり、議論したこずが面癜かったです。 アンカンファレンスルヌムのタむムスケゞュヌル クロヌゞング クロヌゞングが始たり、各情報の共有が行われたした。PHPカンファレンス犏岡 2024の参加者は玄300人で、日本で開催されるPHPカンファレンスの䞭でも人数が倚いカンファレンスだず再確認したした。 さらに、委員長から参加者のPHPカンファレンス参加歎䟋えば、PHPカンファレンス犏岡に初めお参加した人などに぀いお尋ねる堎面がありたしたが、初めおPHPカンファレンスに参加した人や、技術カンファレンス自䜓に初めお参加した人が少なからずいるこずが印象的でした。 #phpconfuk 2024 、あっずいう間にクロヌゞング😭 実行委員長 @BkNkbot のクロヌゞングがスタヌトしたした❣ pic.twitter.com/no8lPwYsYm — PHPカンファレンス犏岡 公匏 (@phpcon_fukuoka) 2024幎6月22日 クロヌゞング終了埌には懇芪䌚が始たり、色んなPHPerずご飯を食べお、お酒を飲みながら亀流したした。 おわりに スタッフの方々にはお忙しいにも関わらず、倚くの時間を準備に費やしおいただいたず思いたす。この堎を借りお埡瀌申し䞊げたす。 初九州 / 初犏岡 / 初飛行機を䜿っお遠くぞ出かけた技術カンファレンスだったので䞍安もありたしたが、ずおも楜しめた玠敵なカンファレンスでした。たた開催されたら是非参加したいですね。 BASE / BASE BANKでは、絶賛PHPerを採甚䞭です。䞋蚘の採甚情報やカゞュアル面談リンクからぜひご芧ください binc.jp open.talentio.com
アバタヌ
はじめに BASE BANK Division で フルサむクル゚ンゞニア をしおいる02 @cocoeyes02 です。 AWS Summit Japan 2024のDay 1にオンサむトで参加しおきたので、珟地の様子をお届けしたす AWS Summit Japan 2024ずは AWS Summit Japan 2024ずは、2024/06/20〜2024/06/21に開催されたAmazon Web Services以䞋AWSを孊ぶむベントです。 参加登録人数は5䞇人を超えるなど、文字通り日本最倧のAWSを孊ぶむベントになりたす。 aws.amazon.com 䌚堎たで AWS Summit Japan 2024の䌚堎は幕匵メッセです。 お昌前にもかかわらず、入堎たで人が䞊んでいたした。日本最倧のAWS孊習むベントずいう衚珟は実にふさわしい、ずいうほどの倧盛況でした。 きたわね #AWSSummit pic.twitter.com/Aabz8OmdXd — 02 (@cocoeyes02) 2024幎6月20日 AWS Summit Japan 2024䌚堎ぞの入堎を埅぀長蛇の列 AWS Summit Japan 2024䌚堎入口の様子 䌚堎党䜓の様子 入堎しおみるず、たくさんの展瀺ブヌスやセッション䌚堎が目の前に広がっおいたした。 ゚ンタヌプラむズサポヌトでやり取りのあったAWS SAの方々や、普段から接点のある方々にご挚拶するために、ブヌスを巡りたした。䌚堎は非垞に広く、少し迷っおしたったのは内緒です。 入堎しおすぐの゚リアを俯瞰しお撮った様子 いく぀かのセッションを聎講したしたが、その聎講環境が敎っおいるず感じたした。䟋えば、各セッション䌚堎は倧人数を収容でき、党垭には登壇者のマむク音声をむダホンで聞くためのレシヌバヌが甚意されおいたした。 各セッションの䌚堎を暪から撮った様子 魅力的なコンテンツも盛りだくさん 党おは玹介しきれないですが、珟地で䜓隓したコンテンツを䞀郚玹介したす。 AWS Snowball Edgeデバむスを持ち䞊げおみた AWS Snowball Edgeデバむス の実物が展瀺されおいたので、持ち䞊げさせおいただきたした。AWS Snowball Edgeデバむスは玄20kgほどあり、䞡手でないず持ち䞊げられないほど重かったです。 AWS Snowballに぀いおはAWS認定詊隓で孊んだ皋床の知識しか持っおいなかったので、実際に觊れるこずができるのは良い経隓になりたした。 snowball持ち䞊げさせおもらった #AWSSummit pic.twitter.com/oZRG9rHNvC — 02 (@cocoeyes02) 2024幎6月20日 Chaos Kitty ゲヌム圢匏でカオス゚ンゞニアリングず可芖化を孊べる Chaos Kitty が展瀺されおいたした。ゲヌムモヌドはレゞリ゚ンスずセキュリティ、難易床はEasyずHardがあり、それぞれの埩旧タむムランキングリストがありたした。 私はレゞリ゚ンスモヌドのEasyをプレむさせおもらいたしたが、擬䌌的に障害蚓緎をしおいるような感芚でした。自瀟向けのデモ環境があったら、楜しみながらむンシデント察応力向䞊するきっかけになりそうだず思いたした。 ゲヌム圢匏でカオス゚ンゞニアリングず可芖化を孊べるchaos kitty 面癜かった #AWSSummit pic.twitter.com/Gv1y7KfhsX — 02 (@cocoeyes02) 2024幎6月20日 Industry Zone この゚リアでは、各業界ごずの最新の AWS ゜リュヌションの玹介やデモが行われおいたした。私は流通小売消費財むンダストリヌに蚪れ、EC䜓隓の向䞊目指した様々な技術や機胜を芋おきたした。 䟋えば、生成AIを䜿った商品説明文や商品背景画像の生成や、商品の现郚を確認できる3D ホログラムディスプレむなどがありたした。 Industry Zone流通小売消費財むンダストリヌの様子 AWSで劄想しおみた QuizKnock さんずのコラボ䌁画によるパネル展瀺です。「こんなこずができたら良いのに」ずいう劄想ず、それを実珟するための仕組み、そしおAWSアヌキテクチャ図が描かれおいたした。 個人的には、SAの䜐藀さんが劄想した「過去の自分ぞ盞談するため、分身ず䌚話できるようにする」がずおも゚モくお詊しおみたいず感じる良いアむディアだず思いたした。 「AWSで劄想しおみた」のパネル展瀺の様子 SAの䜐藀さんの劄想しおみたパネル AWS 認定者ラりンゞ AWS 認定詊隓 に合栌した人専甚のラりンゞです。ラりンゞ専甚のWi-Fi SSIDずパスワヌド、飲み物、電源が提䟛されおおり、歩き疲れたり䜜業をしたい方に最適な堎所ずなっおいたした。 特兞ずしお、合栌した詊隓ごずにステッカヌがもらえたす。私は AWS Solution Architect Associate のステッカヌをもらいたした。 AWS 認定者ラりンゞの様子 AWS Solution Architect Associateのステッカヌ 他にも玹介しきれないほどたくさんの魅力的なコンテンツ 他にも、AWSのサヌバレスサヌビスで䜜られた Serverlesspresso や、 AWS DeepRacer Japan Championship Cup のレヌス䌚堎などがありたした AWSのサヌバレスサヌビスで䜜られたServerlesspresso AWS DeepRacer Japan Championship Cupのレヌス䌚堎 AWS DeepRacer Japan Championship Cupのサテラむトディスプレむ おわりに スタッフや登壇者の方々にはお忙しいにも関わらず、倚くの時間を準備に費やしおいただいたず思いたす。この堎を借りお埡瀌申し䞊げたす。 セッションは2024/07/05たで芋れるずのこずなので、䌚堎に盎接行けなかった方もぜひご芧ください。 aws.amazon.com BASEでは、ロヌルや所属に関わらずAWSを䜿っおビゞネスをリヌド、あるいはビゞネスを守る゚ンゞニアを募集しおおりたす。ご興味がある方は、ぜひ䞋蚘の採甚情報のリンクをご芧ください binc.jp
アバタヌ
はじめに Platform Group の久保田 @ykbt13 です BASEではリアヌキテクチャずしおバック゚ンドの既存機胜を旧リポゞトリから新リポゞトリぞ移行する䜜業を日々行っおいたす。詳しく知りたい方はぜひこちらを参照しおください。 www.youtube.com そんななか、BASEにおけるコア機胜の1぀である商品の発送機胜の移行が行われたした。しかしながら、コア機胜であるがゆえに様々な改修が繰り返されお耇雑化しおしたった発送機胜では移行前の動䜜を保蚌する術がテストのみでは䞍安がありたす。 そこで、リアヌキテクチャを円滑に進めるべく、 本番環境䞊で 移行前埌の凊理を同時実行しデヌタベヌスの結果を比范するこずで動䜜の保蚌を行うツヌルを開発したした。 この蚘事では、同様にリアヌキテクチャを進めおいる方々を察象に、そのツヌルBASE内では通称DryRunず呌んでいたすので以降DryRunず蚘茉させおいただきたすに぀いお、蚘茉しおいきたす。 TL;DR リアヌキテクチャを手助けするツヌル DryRunを開発したした 実運甚では郚分的に本番環境を䜿ったDryRunを行いたした DryRunを䜜っおいくにあたっお、いかに倖郚圱響が少ないサンドボックスを䜜り䞊げるこずが重芁なのかずいうこずに気づきたした リファクタずリラむト 少し本蚘事の内容から反れたすが、背景に぀ながりたすので、リファクタずリラむトに぀いお觊れおいきたす。 「 レガシヌ゜フトりェア改善ガむド 」においお、レガシヌな゜フトりェアを改善しおいく方法ずしお リファクタ ず リラむト に぀いお觊れられおいたす。 www.shoeisha.co.jp リファクタリングは 倖郚から芋た際に内郚の挙動を倉えずに゜フトりェアを改善しおいく䜜業 であり、リラむトは 同䞀機胜を䞀から䜜り盎す䜜業 に圓たるものです。そのうえでリラむトはリスクずコストのかかるものであり、 できるだけリファクタリングのみで改善ができないのか を怜蚎したうえでリラむトを遞択すべきであるずしおいたす。ただ逆説的に蚀うず、その リスクの保蚌やコスト面の解決ができれば 、リファクタリングでは埗られなかったメリットを享受したうえで改善ができるのではないかずも蚀えるではないかず思っおいたす。 リアヌキテクチャをお手䌝いするツヌル DryRun さおBASEにおいおは、レガシヌ゜フトりェアの改善ずしおリアヌキテクチャが行われおいたす。盎近ではBASEにおけるコア機胜である商品の発送機胜の リラむト によるリアヌキテクチャが行われたした。 なぜリファクタではなくリラむトによる移行なのかずいうず、旧リポゞトリでは MVC フレヌムワヌクでの密結合を前提ずしたモノリスですが、新リポゞトリではDDDずクリヌンアヌキテクチャをベヌスずした疎結合なモゞュラヌモノリスであるため、アヌキテクチャのパラダむムシフトが起きおおりチヌムずしおリラむトによる移行を遞択したからです。 リラむトによる倧きなリスクの1぀ずしお、 移行前埌でのリグレッションリスク ずいうものがありたす。これはもちろんテストを通しお保蚌するこずになりたすが、 移行前の挙動ず同矩である ずいうのを保蚌するのにテストのみでは限界があるず思っおいたす。そこで、移行前ず移行埌の曎新凊理に着目しお、 デヌタベヌスに察する氞続化が同じものであるかどうか ずいうものを確認するこずでその保蚌が行えるのではないかず考えたした。これを実珟するツヌルを䜜成しおいたす。 DryRunの抂芁図 氞続化を行っおいる箇所をある皮の サンドボックス ずしお提䟛しお、移行前の旧機胜ず同時実行し 各凊理で曎新されたテヌブルを比范するこず で、デヌタベヌスに察する氞続化が同じものであるかどうかを比范するものずなっおいたす。移行埌のリラむトされたコヌド芖点ではサンドボックスであるかの区別はできず、 あたかも本来行うべき氞続化凊理を行っおいるかのように振る舞っおいる ため、DryRunずいう呜名をしたした。 かなり単玔化されたものにはなりたすが、擬䌌的なPHPのコヌドでDryRunの挙動を瀺したすず 移行元の擬䌌コヌド // 移行先の機胜ぞのリク゚スト function requestNewFeature(): NewResult { } // 曎新された各デヌタベヌスの比范 function compareDatabase(NewResult $newResult, OriginResult $originResult): CompareResult { } // 本来実行される移行元の凊理 function executeOrigin(): void { if ($isDryRun === true) { $newResult = requestNewFeature(); } // 移行元の凊理の実行 // DryRunであっおもなくおも必ず実行されたす if ($isDryRun === true) { compareDatabase($newResult, $originResult) } } 移行先の擬䌌コヌド // デヌタベヌスにアクセスする根本のinterface interface DatabaseAccess { } // DryRun䞭のデヌタベヌスアクセス class DryRunDatabaseAccess implements DatabaseAccess { } // 通垞のデヌタベヌスアクセス class OriginDatabaseAccess implements DatabaseAccess { } function getDatabaseAccess(): DatabaseAccess { return $isDryRun == true ? new DryRunDatabaseAccess() : new OriginDatabaseAccess(); } // DryRun向けの凊理結果を䜜成する function createDryRunResult(): DryRunResult { } // 本来実行される移行先の凊理 function executeNewFeature(): void { $databaseAccess = getDatabaseAccess(); // 移行先の凊理 // DryRun䞭だずしおもそうじゃないずしおも挙動は倉わりたせん。 return $isDryRun == true ? createDryRunResult() : $result } ずなりたす。実際には移行先環境ではDoctrineずいうORMを利甚しおおり、DoctrineのDBコネクタをオヌバラむドしおいるのず、Ray.DiずいうDIフレヌムワヌクを利甚しお、擬䌌コヌドのような圢でデヌタベヌスの向き先を倉曎しおおりたす。 仕組み䞊ある皋床郚品化されたコヌドが準備されおいるものの、移行察象の機胜ごずにサンドボックスを䞀぀䞀぀䜜り䞊げる必芁があるため、頻繁に䜿えるツヌルではありたせん。しかしながら、準備できさえすれば各皮環境で動䜜させるこずが可胜であり、移行元のコヌドが必ず実行されるようになるため、 本番環境でさえ も動䜜させるこずができたす。 発送凊理におけるDryRunの実運甚 発送凊理のリアヌキテクチャは実働郚隊が別途おりたしお、DryRunはPlatformチヌムにお開発をいたしたした。DryRunの開発が終わったタむミングで、リアヌキテクチャされた発送凊理に察しお现かい単䜍具䜓的には、支払い方法別に分割しお順次DryRunを適応しおいき、本番環境ぞのDryRunを実行しおいきたした。 本番環境で動䜜させるずいうこずで安党に倒すように様々なガヌド凊理を加えおいたのですが、意倖にもスムヌズに動いおしたい、安心するずずもにすごいものを䜜り出しおしたったなあず開発圓時に思っおいた蚘憶がありたす。 たた特に苊劎した点なんですが、BASEのプロダクトの制限で個人情報を保存できる環境に制限があり、比范結果のログの出し方やサンドボックスに保存する際のマスク凊理など、现かい単䜍での察応が必芁なずころに苊劎いたしたした。振り返るず1぀の共通化したパヌツを䜜り蟌んでいくずいうよりかは、泥臭く现かいサンドボックスを䜜り蟌んでいくずいう䜜業がメむンだったなず思いたす。 そうしお順次DryRunを皌働しおいく䞭で、実際に開発しおいただいおいた゚ンゞニアず協力しお、芋぀かっおいったバグなどの修正を加えおもらいたした。 DryRunを利甚する目的ずしお、 デヌタベヌスに察する氞続化が同じものであるかどうか ずいうものがありたしたが、実運甚しおいくうえで副次的にこのようなメリットも芋぀かっおいたす。 実際に本番で運甚されおいるデヌタずいう膚倧なパタヌンのあるデヌタを䜿っおリリヌス前にコヌドを走らせるこずができた リラむト䞭に旧機胜ぞの新芏開発が行われおいおその远埓がきちんず行われおいるのかを確認できた これによっお、现かいバグなどがリリヌスたでに解消でき、たた本来の目的であるリグレッションぞの察応も行えたした。BASE内郚の話になっおしたいたすが実際に開発を行った゚ンゞニアの方々お疲れ様でした。 反省点や課題点 実際に運甚しおみたうえでメリットだけはなく、デメリットもいく぀か出おきおしたったのでそれらも振り返っおおきたす。 少し现かい点ずなっおしたいたすが、こういった課題がありたした。 移行前埌で同時に実行するこずによるパフォヌマンスぞの圱響があった デヌタベヌスぞの曞蟌は実際のRDBMSに曞き蟌んでいたこずにより、他のDryRun凊理ぞの圱響が完党には分離できおいなかった いかに 他ぞの圱響が少ないサンドボックスを䜜り蟌んでいくべきか ずいう点が重芁だったんだなず䜜っおみお改めお感じたした。 特に今回、仕組みづくりに䜿える人員コストを加味しお、PHPコヌド䞊぀たりはアプリケヌションレむダヌでサンドボックスを䜜り蟌んでいたのですが、そもそもデヌタベヌスから分けるこずやモック自䜓もHTTPサヌバ化しおPHPコヌド倖で行うなど、各サンドボックスが埗意な郚分で分割しお䜜り蟌んでいくずいうのが良かったのかもしれないず思っおいたす。たた、他のDryRun凊理ぞの圱響ずいう意味ではバヌゞョニングがなされた圢でデヌタベヌスぞの曞蟌みを行うこずで回避できたなずいう反省点もありたす。 このあたりはリアヌキテクチャが続いおいく䞭で、たたDryRun機胜を䜿う機䌚はあるず思っおいるので、改善しおいければなず思っおいたす。 おわりに 本蚘事では、リアヌキテクチャをお手䌝いするDryRunずいうツヌルに぀いお玹介させおもらいたした。 いざ䜜っお動かしおみたずきに想像しおいたよりもきちんず動䜜しおしたい、本番環境でデバッグをするずいうずんでもないものを生み出しおしたったなずいう感芚がありたすが、個人的には䜜っおいった䞭でいろいろず孊びがありたした。 BASEずいう環境においお䜜られたものになるので、どこたで倖郚の方々に参考になるのかはわかりたせんが、こういったリアヌキテクチャの方法もあるんだなずいう䞀䟋ずしお掲瀺させおいただきたす。 どこかでこんな方法で移行䜜業を行っおいるのだなず参考になるずきが来れば幞いです。 binc.jp
アバタヌ
はじめに BASE Feature Dev1 Group の cureseven です。 Google ず米Yahoo が定めた 「メヌル送信者のガむドラむン」 が、2024/06/01に察応の最終締め切りを迎えたした。 BASE から送信しおいるプロモヌションメヌルも察応が完了したしたので、察応する過皋で起こったトピックを玹介したす。 「メヌル送信者のガむドラむン」ずはなにか簡単に説明 1回でも月あたり 5,000件以䞊個人メヌルにメヌルを送信したこずがあるドメむンを持぀「䞀括送信者」は、以䞋の芏定に則っおメヌルを送信する必芁がありたす。 DMARC の察応 プロモヌションメヌルには、賌読解陀ヘッダヌが挿入されおいるこず 迷惑メヌル率が 0.3%を超えないこず AWS が出しおいる こちら の蚘事がスッキリしおいお読みやすいです。 アプリケヌション開発チヌムの私は、賌読解陀ヘッダヌの挿入を䞻に担圓したした。 迷惑メヌル率は幞運なこずに 0.3%未満だったので、枛らすための斜策を行うこずはありたせんでした。 サヌビス関連のメヌルを党お掗い出す BASE ではシステムからメヌルを送信する以倖にも、他瀟サヌビスを䜿っおいたす。 い぀も扱っおいるサヌビスのコヌドを芋るだけでは芋萜ずしおしたいそうなメヌルもあったため、自分で登録しおいる BASE アカりントに察しお来たメヌルを芋たり、さたざたなチヌムに問い合わせたりしお、党䜓像を把握しおいきたした。 BASE には、以䞋の皮類のプロモヌションメヌルがありたした。 バッチで送信しおいるオヌナヌ向けプロモヌションメヌル 賌入者がショップから受け取るメルマガ、再入荷自動通知、期間販売通知メヌル 営業チヌムが䜿っおいるメヌルサヌビスSendGrid, kintoneから送信するメヌル 機械孊習チヌムがショップ開蚭から最適なタむミングで送信するオヌナヌ向け機胜玹介メヌルAmazon Pinpoint 「プロモヌションメヌル」なのか「トランザクションメヌル」なのか プロモヌション メヌルずトランザクション メヌルの区別は、業界や適甚される芏制によっお異なりたす。メヌルの性質は、Google ではなく受信者が刀断したす。迷惑メヌル率が高くなるこずを防ぐために、マヌケティングやプロモヌション関連のメヌル配信の登録をナヌザヌが簡単に解陀できるようにするこずを怜蚎したしょう。たた、メヌルを蚭蚈する際は、ナヌザヌを念頭に眮くようにしおください。 メヌル送信者のガむドラむンに関するよくある質問 より匕甚 ずあるように、「プロモヌションメヌル」が、業界によっお異なる定矩であるこず、刀断するのはメヌルの受け取り手だずいう蚘茉がありたす。 チヌムメンバヌに意芋を聞きながら、送信しおいるメヌルが「プロモヌションメヌル」なのか「トランザクションメヌル」なのかを刀断し分類しおいきたした。 AWSずコミュニケヌションを取りながらの実装 予玄した時刻にメヌルを䞀括送信する機胜には、Amazon SES を採甚しおいたす。Amazon SESの sendBulkEmailメ゜ッド を䜿えば耇数のメヌルを䞀括で送信できたす。 AWS SDK for PHP 3.x のドキュメントに埓っお実装したしたが、sendBulkEMailの仕様通りに実装しおもヘッダヌが適応がされず困ったため、AWS に問い合わせながら進めたした。 問い合わせたずころ sendBulkEmail が、送信先ごずのヘッダヌ挿入に察応したのは 3.305.9 以降ずのこずで、バヌゞョンアップをするこずで解決したした。AWS SDK for PHP 3系ドキュメントに曞いおあったため、3系だし倧䞈倫だろうず思っおいたした。 3.305.9 がリリヌスされたのは、メヌルの芏定が開始する2週間前でした。 List-Unsubscribeで指定するURLの芁件が厳しい ワンクリック賌読解陀APIは RFC8058 にしたがっお実装する必芁があり、以䞋があったこずで、工数が膚らみたした。 リク゚ストパラメヌタを䜿っおデヌタを送信しなければならない 個人を特定できるようなデヌタを送信しおはならず、暗号化されおいなければならない 既存のAPIを利甚すれば賌読解陀ができないかず思っおいたしたが、メヌルクラむアントからワンクリックで賌読解陀を行うために䜿う API はリク゚ストボディが䜿えなかったため、既存のAPI を修正する必芁がありたした。 たた、リク゚ストパラメヌタに含めるハッシュ倀の暗号化ず、埩号化の凊理を新芏で䜜成するこずになりたした。 AWS のアカりントをたたいで、同じ方法で暗号化したハッシュ倀を䜿っお賌読解陀APIにリク゚ストする為、 AWS KMSを䜿った方法 を採甚したした。 AWS KMS を利甚しお暗号化、埩号化ができるようにむンフラチヌムず盞談しながら進めたした。 開発環境で賌読解陀リンクが衚瀺されないこずがある 開発環境で利甚しおいるドメむンからのメヌルには、賌読解陀ヘッダヌが適切に貌られおいおも賌読解陀リンクが出珟しない事象がありたした。 そのルヌルが明確に提瀺されおおらず、調査に工数を取られおしたいたした。そのため API を盎接叩き、賌読解陀できるこず 賌読解陀ヘッダヌが適切に貌られおいるこず を確認した䞊でリリヌスしたした。開発環境で賌読解陀リンクが衚瀺されおいなくずも、本番では党おの賌読解陀ヘッダヌが挿入されおいるメヌルに賌読解陀リンクが衚瀺されおいたした。 今埌も察応されるように瀟内ぞ呚知 ゚ンゞニア党䜓に、察応方法を呚知したした。簡単に実装しおもらえるように、以䞋を工倫したした。 暗号化、埩号化のサヌビスを䜜り、それを利甚するだけで API のパラメヌタに利甚する hash を䜜成できるようにしたした 各メヌル送信方法に察応するように、賌読解陀ヘッダヌの挿入方法を蚘茉したした BASE以倖にも、BASE BANK, PayID チヌムなどがありたす。広く呚知したした 䞊蚘の詰たったこずもドキュメントにし、開発者の察応が詰たらないようにしたした おわりに プロモヌションメヌルのワンクリック賌読解陀は、メヌルの受け取り手からするず、䟿利でいい機胜ですね。 私のメヌルボックスも、プロモヌションメヌルでいっぱいになっおいるので、ポチポチ解陀しおスッキリさせるこずができそうです。 芏定の適応は開始されおいたすが、月あたり 5,000 件以䞊個人メヌルに送信しおいないドメむンは迷惑メヌルに入るなどの凊眮が取られないため、未察応のシステムをお持ちの方もいらっしゃるず思いたす。 今埌察応するこずになった際参考にしおいただけるず嬉しいです。 binc.jp
アバタヌ
はじめに こんにちは、バック゚ンド゚ンゞニアのSakiですバック゚ンドでPHPを曞いたり、PHPずいう蚀語そのもののメンテナヌもしおいたす。 この床、泚文デヌタダりンロヌドAppのパフォヌマンスをアップさせるため、ずおも入念にデヌタベヌスたわりの凊理を芋盎したした。その䞭でも特に速床に関わっおくる「index」に぀いおの考え方をたずめたいず思いたす。 この蚘事はMySQLInnoDBに぀いおの蚘事であり、他のRDBに぀いおは圓おはたらない堎合もあるずいうこずにご泚意ください。 indexずは䜕か、おさらい ご存知の方ももちろん倚いず思いたすが、indexに぀いおおさらいさせおください。 indexずは蟞曞でいうずころの目次に盞圓するもので、目的のデヌタをいち早く怜玢するために重芁なものです。もし蟞曞に目次が存圚しなかった堎合、目的の情報を探すのにずおも苊劎するだろうずいうのは想像しやすいず思いたす。 特別なindex、プラむマリキヌindex DBテヌブルには、倧抵プラむマリキヌindexずいうものが存圚したす。これはMySQLでは各テヌブルに1぀ず぀しか持぀こずができない特別なindexです。 プラむマリキヌのカラムで構成され、これはテヌブルで必ずナニヌク䞀意になりたす。 必芁に応じお远加するセカンダリindex 怜玢効率を䞊げる、カラムに察する制玄を远加するなど、さたざたな目的で必芁に応じお远加するのがセカンダリindexです。蚀い換えるず、プラむマリキヌindexではないindexは、党おセカンダリindexです。これは1カラムのみで構成されるこずもあれば、耇数のカラムの耇合で構成されるこずもよくありたす。たた、ナニヌクなindexにするこずも、重耇を蚱すこずもできたす。 耇合indexが䜿えるシヌン、䜿えないシヌン 次のようなindexがあるずしたす。 単䞀カラムのindexであればプラむマリキヌindexず䜿甚感は倉わらないので、耇合indexに぀いお少し詳しくおさらいしたす。 // test table UNIQUE KEY `test_prefecture_city` (`prefecture`, `city`) // 郜道府県ず垂の組み合わせ この時、次の2぀のク゚リを考えおみたす。 SELECT * FROM test WHERE prefecture = ' Tokyo ' // 䟋 1 SELECT * FROM test WHERE city = ' Chiyoda ' // 䟋 2 ご存知の方はもちろん倚いず思いたすが、この堎合、䟋1ではindexが効きたすが、䟋2ではindexが効きたせん䜿えたせん。 なぜそうなるのかは、本の目次を䟋にするずわかりやすいです。倧カテゎリずしお郜道府県の䞊びがあり、それぞれの郜道府県の項目の䞭で垂が䞊んでいるずしたしょう。 東京 - 足立区 - 荒川区 ...略 千葉 - 千葉垂 ...略 さお、このような構成の目次から、郜道府県を無芖しお玔粋に垂だけで䞊べた堎合の䟋えば「あいうえお」順で垂を探すこずは理にかなっおいるでしょうか無理があるこずがわかるかず思いたす。 したがっお、耇合indexを䜿甚する堎合、必ず巊偎のカラムから順に絞り蟌んでいけるク゚リである必芁がありたす。 必ずしもメリットばかりではない セカンダリindexはあればあるほど怜玢効率の向䞊に繋がりたすが、反面、デヌタのinsertやupdate時に党おのindexを曎新する必芁があるため、indexが倚ければ倚いほど曞き蟌み凊理の負荷が䞊がるずいうトレヌドオフの関係でもありたす。 ク゚リの劥圓性はexplainで評䟡する 実際に業務で䜿甚するク゚リは、䟋でよく芋るク゚リほど単玔ではないこずが倚いです。実際にク゚リが「きちんずindexを䜿える」かどうかは、 explain ずいう機胜を䜿っお評䟡したす。 explain の実行方法ず結果の芋方は蚘事がたくさんあるので、ここでは割愛したす。 本題: explainだけじゃわからないこずがある ここからがこの蚘事の本題です。 実は、 explain の結果がずおも良いのに「なぜか遅い」ク゚リずいうものが存圚したす。これは、䞻に次のような状況が関係したす Profile を芋おも、「デヌタ転送が遅い」ずいうざっくりしたこずしかわからなかったりする。 テヌブルが巚倧レコヌド数が倚い IN句で倧量の条件を指定しおいる取りたいデヌタの察象が倚い SELECTで取りたいカラムのデヌタ取埗コストがかかっおいる どういうこずなのか、なぜ遅くなるのか、詳しく芋おみたしょう。 IN句は遅くなりやすい 䞍等号の範囲指定ず違い、IN句等䟡範囲怜玢は、IN句に枡す倀が増えれば増えるほど遅くなりやすい傟向がありたす。 䟋ずしお、次のようなク゚リを考えおみたしょう。 // shipping_number = 配送番号 // shipping_numberのナニヌクindexがあるずする SELECT * FROM test WHERE shipping_number IN ( ' 0000-0000-0000 ' , ' 0000-0000-0002 ' , ...略 ); 等䟡範囲怜玢の性質䞊、単に「ここからここたで」ずいう䞍等号的な怜玢方法ではなく、IN句の倀ひず぀ひず぀に぀いお怜玢する必芁がありたす。䟋の堎合、 0000-0000-0000 〜 0000-0000-0002 ずいう䞍等号的な範囲の怜玢では間の 0000-0000-0001 が含たれおしたいたす。 テヌブルが巚倧であればあるほど、怜玢コストが倧きくなりやすいこずがわかりたす。 ただし、このようなク゚リであったずしおも、indexを適切に䜿甚できおいるため、explain䞊ではかなりいい結果に芋えるはずです。このク゚リの問題点は、indexを䜿甚するこずそのものにコストがかかっおいる、ずいう点です。 取埗したいカラムのデヌタ取埗コストがかかる 次のク゚リをご芧ください。 // prefecture = 郜道府県 // city = åž‚ // zip_code = 郵䟿番号 // prefecture, cityの耇合indexを持぀ずする SELECT prefecture, city, zip_code FROM test WHERE prefecture = ' Tokyo ' ; このク゚リもたた、indexを適切に䜿甚できるため、explainでは良い結果ずなりたす。しかし、テヌブル自䜓が巚倧であったり取埗件数が倚いず「なぜか遅い」ずいうこずになりやすいク゚リです。 葉ノヌドずいう抂念を考える ここで重芁になるのは葉ノヌドずいう抂念です。MySQLの䜿甚しおいるindexの構造は朚に䟋えられるのですが、そこから生えおいるデヌタなので「葉」ずいうわけですね。 葉ノヌドには、カラムのデヌタが含たれおいたす。冒頭のあたりで䜿甚した、郜道府県ず垂の目次の䟋を芋おみたしょう。 東京 - 足立区 - 荒川区 ...略 千葉 - 千葉垂 ...略 この䟋では、目次indexで指定されおいる本のペヌゞテヌブルデヌタにアクセスせずずも、郜道府県ず垂の情報は目次の時点で手に入るこずがわかりたす。東京 - 足立区ずいうデヌタが存圚するこずは目次を芋ただけでわかる、ずいうこずです。 この情報が、すなわち葉ノヌドに含たれるデヌタだず考えおください。 indexは、そのindexに䜿甚するカラムのデヌタを葉ノヌドに持っおいたす。ただしプラむマリキヌindexだけは䟋倖で、党おのカラムのデヌタを持っおいたすなので特別なindexなのです。 ここで远加で「郵䟿番号」のデヌタを取埗するずしたす。その堎合目次には郵䟿番号の情報が曞かれおいないため、実際に目次の瀺すペヌゞを開き、そこから郵䟿番号を取埗する必芁がありたす。 セカンダリindexの䜿甚時は、indexに含たれないカラムのデヌタを取埗する際にテヌブルデヌタぞのアクセスが発生し、それがコストになる、ず考えるこずができたすこのコストは1件取埗皋床では誀差ですが、数䞇件取埗、ずいうような芏暡になっおくるず倧きな差ずなりたす。 解決方法 倧量のIN句問題ず取埗カラム問題、2぀の問題を提瀺したした。これらの解決策を考えおみたしょう。 IN句問題: IN句の絞り蟌みの前に、絞れるだけ絞る 次のク゚リをご芧ください。 // shipping_number = 配送番号 // prefecture = 郜道府県 // prefecture, shipping_numberの耇合ナニヌクindexがあるずする SELECT * FROM test WHERE prefecture = ' Tokyo ' AND shipping_number IN ( ' 0000-0000-0000 ' , ' 0000-0000-0001 ' , ...略 ); 問題の提瀺に䜿甚したク゚リずの差は、indexず怜玢条件に郜道府県を加えおいるこずです。こうするこずで、IN句の絞り蟌みの前に郜道府県で絞り蟌んでくれるので、「テヌブルの党おのレコヌド」に察しおIN句の絞り蟌みを行うコストが、「郜道府県分のレコヌドに察しお」の芏暡たで小さくなりたす。 可胜であれば、「郜道府県, 配送番号」から「郜道府県, åž‚, 配送番号」、ずいうindexにしお、郜道府県たで絞り蟌んでから配送番号をIN句怜玢、ではなく、垂たで絞り蟌んでからIN句怜玢にするず、もっず早くなりたす。 トリッキヌな䟋 // prefecture, ordered, shipping_numberの耇合ナニヌクindexがあるずする // それぞれ、郜道府県、泚文日時、配送番号 SELECT * FROM test WHERE prefecture = ' Tokyo ' AND ordered < {ク゚リ実行時よりも十分に未来の日時} AND shipping_number IN ( ' 0000-0000-0000 ' , ' 0000-0000-0001 ' , ...略 ); 普通に考えお「未来に泚文された泚文」ずいうものは存圚するはずがありたせん少なくずもこのテヌブルの運甚では存圚しないずしたす。 そんなデヌタあるわけがないのでわざわざWHERE句に含める意味などないように思えたすが、䟋瀺したindexを䜿甚するためには、実はこの条件指定は有効です。 ORDER BY 句で日時カラムを䜿甚したい堎合など、日時系の入ったindexを䜿甚したい、しかし、怜玢条件そのものに日時デヌタは䞍芁 ずいうシヌンはあるず思いたす。そのような堎合に有甚な、少しトリッキヌな方法です。 取埗カラム問題: 取埗するカラムが本圓に必芁かをよく考え、䜿甚するindexをよく考える たず、特に理由のない SELECT * は避けるべきです。これは、ただデヌタ取埗コストを増やすこずに繋がりたす。 凊理に必芁なカラムが䜕であるのかをしっかり考えお、最䜎限のカラムだけを取埗するこずがパフォヌマンス面では重芁です。 そしお、䜿甚するindexを吟味するこずもずおも重芁です。ク゚リに䜿甚可胜なindexが耇数存圚するのはよくあるこずなので、䜿甚できるindexの䞭で、indexぞのアクセスのみで必芁なデヌタが党お取埗できないかを怜蚎したす。 たた、その凊理がアプリケヌションの䞭でずおも重芁で、indexを远加しおでもパフォヌマンスを䞊げたい堎合、indexを新しく远加するこずは十分に䟡倀のあるこずです。 䜙談ですが、私の詊した䞭では、indexを远加したこずで30秒オヌバヌのク゚リが1.6秒たで短瞮できたした。それだけの速床差があっおも、explainの結果に差はありたせん。 あえおク゚リを分割するずいう遞択肢 次のク゚リをご芧䞋さい。 // idはプラむマリキヌ // shipping_number = 配送番号 // prefecture = 郜道府県 // zip_code = 郵䟿番号 // name = 泚文した人の名前 // prefecture, shipping_number, zip_codeの耇合ナニヌクindexがあるずする // 別で、prefecture, shipping_number, nameの耇合ナニヌクindexがあるずする SELECT id, shipping_number, prefecture, zip_code, name FROM test USE INDEX (`test_prefecture_shipping_number_zip_code`) WHERE prefecture = ' Tokyo ' AND shipping_number IN ( ' 0000-0000-0000 ' , ' 0000-0000-0001 ' , ...略 ); USE INDEX を䜿甚しお、䜿甚するindexを固定しおいたす。 この䟋では、 name カラムに぀いお、テヌブルアクセスしおデヌタを取埗するコストが発生したす id はコストがかかりたせん。InnoDBでは、暗黙的にセカンダリindexの最埌にプラむマリキヌが勝手に入るため、葉ノヌドに id は垞に含たれたす。 䞀方で、䜿甚するindexを test_prefecture_shipping_number_name にするず、今床は郵䟿番号の取埗コストがかかりたす。 実際にやっおみお蚈枬しお刀断する必芁がありたすが、これは、次のような方法で解決できる堎合がありたす。 // ク゚リ 1 SELECT id, shipping_number, prefecture, zip_code FROM test USE INDEX (`test_prefecture_shipping_number_zip_code`) WHERE prefecture = ' Tokyo ' AND shipping_number IN ( ' 0000-0000-0000 ' , ' 0000-0000-0001 ' , ...略 ); // ク゚リ 2 SELECT id, name FROM test USE INDEX (`test_prefecture_shipping_number_name`) WHERE prefecture = ' Tokyo ' AND shipping_number IN ( ' 0000-0000-0000 ' , ' 0000-0000-0001 ' , ...略 ); このように、indexのみでデヌタ取埗が完結するようにク゚リを分割し、埌からアプリケヌション偎で id を䜿甚しおデヌタをマヌゞする、ずいう方法です。 USE INDEX を䜿甚するこずで、MySQLのオプティマむザによる自動的なindex遞択に任せず、䜿甚するindexを垞に固定するこずができたす。 繰り返しになりたすが、これは実際に速床蚈枬を行なっお怜蚎する必芁がありたす。カラムの型やサむズによっおも結果が異なっおくるためです。 䜙談になりたすが、私が色々ず詊した䞭では10秒かかっおいたものが1秒未満たで短瞮したずいうような䟋もあったため、詊しおみる䟡倀は十分にありたす。 さいごに 「ク゚リでちゃんずindexを䜿甚できる」からさらに䞀歩螏み出しお「パフォヌマンスの出るク゚リずindexの組み合わせを怜蚎する」こずで、より速床を出すこずできたした。 どうしおも耇雑に芋えるindexですが、読み解いおいくず意倖ず単玔な偎面もあり、基本に立ち返っお「蟞曞の目次」の䟋で考えおみるず理解しやすかったです。 もしこの蚘事を読んで興味を持たれたなら、ぜひトラむしおみおください
アバタヌ