8/29 19:00開始:Nota ALL STARS Meetup vol.16 〜スケーラビリティエンジニアチーム〜
19:00開始
https://scrapbox.io/files/62f0e7c06c42bd001d860c30.png
タイムスケジュール
https://nota.gyazo.com/f6310150424fc6ff1d8eb9c06041b1f1
雑談コーナー
こんにちは〜akix.iconikai.icon
どうも〜akix.icon
質問など、↓の行の中に書いちゃってもokですshokai.icon
hiroshi.icon 参加リンク からログインできます パネルディスカッション
これまでのキャリアを教えてください。入社した理由はなんですか?
hiroshi.icon
hiroshiです
Nota歴7〜8年
フリーランス時代にrakusai.iconと一緒に働いたことがあり、Gyazoをやらないか?と誘われた
VB懐かしいakix.icon
プレステ 1, 2 の時代
shokai.icon
大学でUIの研究してた
趣味や研究でwikiを作ったりもしていた
大量のユーザーをさばくようなプロダクションコードは書いたことがなかった
趣味でwikiをつくっていたときにrakusai.iconと会って入社した
wiki4回目
フルスクラッチ4回目、増井俊之.iconのgyazz系統は3回目ぐらいですねshokai.icon さっそくですが、スケーラビリティエンジニアとはどのような職種でしょうか?
インフラエンジニアとは違うんですか?
hiroshi.icon アプリ側も実装
PaaSを使う
Full Managed
Heroku, Redis, Elastic Cloud, Mongo DB Atlas
Gyazoの場合はもう少しどろくさい
レンタルサーバー時代からすこしづつ移行
DBは、インスタンス上で動いていたり
shokai.iconhiroshi.iconは専業ではないので
サーバーを減らす!rakusai.icon
負荷が高まりそう、予想する
具体的にどんな業務をしているんですか?
Redisのバージョンを両方で動くようにする
Redisのバージョンはポチッとアップデート
プラットフォームのインフラ作業用のUIでボタンポチーしたら移行したり、動いたりできるように、アプリケーション側のコードをがんばっておく感じですshokai.icon
Full Managedにあわせたソフトウェアを書く
Herokuのエラー
30秒以内にエラーが返せないと、restart
Graceful restart
毎日、緊急対応
このあたりも関係する話題?akix.icon
hiroshi.iconはThe Twelve-Factor Appのようになにか意識していることはありますか?
コンテナ化するときと同じような感じがする
memo: pull requestで自動的にstaging環境が立ち上がる仕組み
転職した頃に見て衝撃を受けた覚えがあるakix.icon
インフラ作業としては、主にサーバーを減らしていますshokai.icon
ユーザーが増えて負荷が高い!→改善だ→サーバーが減った
不安が頭によぎって、それを解消するためにやってますshokai.icon
newrelic見てると遅いAPIがある
このままページ数が3倍に増えたら画面ロードも3倍遅くなるぞ、と気づく
負荷をかける極端なユーザーは、どこにいるのか?
これが自分自身(Nota)だと気がつける。しばらくして他のユーザーが追ってくる
上半分ぐらいは実際に重くなってしまってから対処したけど、下の方は問題が出る前に対処しましたshokai.icon
問題が出る前に対処して、スケーラビリティを確保しましたshokai.icon
hiroshi.icon 具体的な例 (Gyazo)
GKE移行
ElasticSearch index 再作成 job 優先順位
GCS 利用最適化
Horizontal (Out/In)
スケールアウトの対義語、スケールインかakix.icon
Vertical (Up/Down)
スケールアップ・スケールダウンは日常的によく使う言い回しという感じしますねakix.icon
リソースを使い切る
googleのサーバーコンテナ
CPUを使うアプリケーションと、I/Oを使うアプリケーションを1サーバーに同居させる
というコンテナマネジメントが自動化されている
チャットにご質問いただいたので、転記しますakix.icon2022/8/29 20:00
企業向けに提供しているScrapBoxの事例で、1つの企業で最大ユーザー何人ぐらいで使われているのでしょうか?同時編集なら何人までは特に問題は起きていない、など知りたいです
クラウド版
700人のプロジェクト
オンプレ版
100人のプロジェクト
同時編集の対応可能人数
100人以上でコメントを書いても大丈夫な事例は聞いている
20:07になりまして、残り15分ぐらいです!ikai.icon
なんでこのポジションを採用しようと思ったのか?なぜ来て欲しいのか?
どんなことを期待していますか?
問題がおきる前に解決しておく方がよい。なるべく。shokai.icon
いや、多少問題がおきてはしまうんだけども。難しいですね
社内にスケーラビリティエンジニアとして働いている人はいますか?一人目の担当と言うことになりますか?
インフラ丸投げではない
一緒にノウハウためてやっていきましょうshokai.iconhiroshi.icon
障害が起きたときどんな流れで対応していますか?
3つあると思うshokai.icon
分析&システム対応
ユーザーへのアナウンス
初報。「今サービス止まってます」をアナウンスしないと「今サービス止まってますか」という問い合わせが大量に来てしまう
社内対応
カスタマーサクセス→個別のお客様への対応などで使う情報をまとめる
3つ同時は1人では無理なんだけど、社内の他のエンジニアがワラワラと集まってきて助けてくれる
皆で協力してやる、が大事shokai.iconhiroshi.icon
slackかgoogle meetsで音声つなぐ
scrapboxの場合
それをかいつまみつつ社内対応を他のエンジニアがやってくれてる感じ
障害対応の専任者は必要か?
音頭取りをして各メンバーの対応を指示する人は必要shokai.icon
一度経験した障害や失敗を二度繰り返さないようにする意識が大事hiroshi.icon
どうすれば学べるのか
仕組みを理解することhiroshi.icon
普段アプリケーション開発をして、土地勘を身につけるshokai.icon
チャットにご質問をいただきましたakix.icon2022/8/29 20:17
過去の障害対応は社内のScrapboxなどに残しているのでしょうか。ポストモーテム的な振り返りなどは都度行っていますか? Scrapboxに記載して振り返りしていますshokai.icon
そもそも障害を防ぐために気をつけていることありますか?
このへんがんばってますshokai.icon
alertセットしておく
サーバーのプログラムの実行時エラー、プラットフォームの出す警告
メモリ使用率やCPU負荷がハネる条件を見つけて、どんどん直す
定期的にmetrics見る
特に1年前と見比べる。長いスパンで見るとすごい変化している事がある
どんな人がこのポジションに来てくれると嬉しいですか?
責任感ありすぎて心配性でインフラ側にはみ出しちゃったサーバーサイドエンジニア、みたいな人を求めてますshokai.icon
インフラ専門じゃなくて、両方中途半端だからこそできる事がある
"Done is better than perfect." / 「たぶん動くと思うからリリースしようぜ」かなakix.icon
https://gyazo.com/58005ff0313cf81d0ac7d5bcdb8d7149
改めて見るととんでもない事言わせてるshokai.icon
色々なことに興味を持って、手を出してしまう人hiroshi.icon
やりがいと楽しみポイントはなんですか?
負荷が高まってどうしょうもなくなってからやるとキツイけど、負荷が高まる前に対処するとプレッシャーがかかる前に気持ち良さだけが来るので、最高ですshokai.icon
仕事の進め方はどのようにしていますか?
作業内容のイメージ、顧客折衝の有無、誰とコミュニケーション取ることが多いのか等
scrapboxでは障害が起きる前は、超ヘビーユーザーと仲良くなって高負荷状態の問題を教えてもらったりしていますshokai.icon
入社後キャッチアップに苦戦したポイントなどはありますか?
普段、どんな働き方をしていますか?フルリモートどうですか?
チームの雰囲気や、横串の取り組みなどはありますか?
常にscrapboxで情報共有していますshokai.icon
エンジニアお茶会という、月2回最近の技術系の雑談をする会もあります
そこで「どういう時にメモリリークっぽい挙動になるか」とかを共有したりもします
朝
メール見て、githubのプルリク見て、Scrapboxを見てやることを整理するhiroshi.icon
コードを書かない作業は、レビュー・モニタリングを見たり
これからの展望は?
サービス毎にワークロードが違うので、サービスの負荷がかかる部分も違うとは思いますが、3プロダクト間で知見を共有していると良いことが割とあると思いますshokai.icon
GyazoとScrapboxではElasticsearchを使っていて、互いの知見が役に立っている
shardの分け方とか、indexの作成タイミング・切り替えとか
Gyazoでのインフラの知見を、Helpfeelでインフラ作業するときに教えてもらったことがあります。hata6502.icon
あるあるshokai.icon
事前にハマりごとに気づけましたhata6502.icon
新技術をサービスに導入する時の障壁を減らせるので一緒にやりましょうshokai.icon
UI上からScrapboxのアップデートボタンを減らした
UI的にも運用的にもサポート的にもコストを減らせた
全部を達成できるような仕組みを今後も作っていきたい
hiroshi.icon そんなボタンあったんですか?
Check for updateというボタンがメニューのすみっこにありましたshokai.icon
SPAだと、3ヶ月ぐらいリロードせず使ってる人とかがわりといるので、問い合わせが来たら押させていた
hiroshi.icon
Helpfeelのスケーラビリティを担当する役割を今回のポジションに期待しているが、組織が大きくなるにあたり、横断で仕事をやれるようにしたい
今は横断的な動きが出来ているので、人数が増えても維持していきたい
https://gyazo.com/2984c5c63245e7addbd7ca4357721656