天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます

freee Tech Night × Chatwork 「味わい深いEKS運用の世界」に参加してきた

freee-tech-night.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

以下、イベントページから引用です。

freee株式会社のエンジニアによる、エンジニアのためのイベントです!

freeeで利用している技術、組織、エンジニアの生態の紹介を皆様に知っていただけるような内容を定期的に配信します。

freeeでの自由度と裁量権の高い独自の開発文化を支えるエンジニア達がどういう想いや熱意でfreeeを開発しているのかに興味を持っていただければ幸いです。 ちょっと短めの時間で、参加しやすい・聞きやすい内容を目指します。

普段はなかなか参加できない…という方も、ラジオを聴く感覚で、ぜひご参加ください! freeeはクラウド会計・人事労務ソフトを5年以上開発を続けており、技術的な成果や経験を広く公開させていただきます。会計や人事労務などのセキュアなドメインならではの技術的工夫や苦労を、世の中にシェアし役に立てたいという想いから定期的にイベントを開催しています。

多くの方にご参加頂き、経験やノウハウの共有や交換のネットワークを広げるきっかけになれれば幸いです。

会の様子

ChatworkのEKSの運用と課題

Chatworkさんでは、Node数でいうと40-140, Pod数は500-2000くらいになっているということでした。構成的にはEKS on EC2で、80%以上spotインスタンスを活用しており、7クラスタ*1ほどを環境別に動かしているということでした。
また、運用としては、CI/CD面はArgoCDでマニュフェスト管理をして、バージョンアップは基本的にBlue/Greenで毎回実施するようにしているそうです。

課題に感じていることとしては、セキュリティ面でネットワーク制御*2k8sのコンテナチェックがゆるく悪意があるコンテナが動けてしまう部分が挙げられるということで、CiliumやGatekeeperの導入を実施or検討しているそうです。
また、クラスタ構築は簡単にできるものの、手動構築になってしまっているため、CrossplaneやTerraformを活用してEKSでEKSを作るような世界観をイメージしているそうでした。

freeeのEKSの運用と課題

freeeさんでは、EKS on EC2で構成していて、テナントはシングルテナントを採用しているということでした。ツールとしては、CI/CD周りはGithub Actions, CircleCI, ArgoCDを使い、Manifest TemplatingはHelm, Helmfileを使い、LoggngはFluentdやDatadog-loggingを使っているということでした。
また、EKSクラスタのアップグレードはBlue/Greenで実施をしているということで、

  • ArgoCDのApplicationSetでクラスタ入れ替えとともに自動でアプリケーションが作成・削除されるようにしている
  • plutoでapiVersionのdeprecatedやremovedを検知
  • tentezでALBのListener Ruleの向き先を段階的にSwitch, Rollback
  • クラスタ構築した後に疎通確認をするOneshotJobの活用
  • Terraform Moduleの活用

を工夫しているそうでした。

課題としては、クラスターアップグレードの工数が大きい、連鎖障害問題、AWS Quota問題、認証認可問題があるということです。

フリートーク

EKSを採用した背景

freeeさんでは、ECSはAWSが独自で作っているのに対してEKSを使ったほうがAWS以外の様々な会社のOSSを活用できる見込みがあったことが理由で、EKSの採用に至ったということでした。

Chatworkさんも、エコシステムに未来を感じていたのと、ECSはEKSを採用した当時拡張性が低かったことがEKSの採用理由になったということです。*3

プロダクト特性によって出てくる違い

Chatworkさんでは、国内利用に限定されていることとピーク時間帯がわかりやすいというプロダクト特性を利用して、コスト削減やスケールアップ/ダウンの速度調整を実現させているということでした。

freeeさんでは、ピークこそある程度あるものの使われどきは割と満遍なくばらついている&確定申告期間の終了直前の負荷が高いということで、負荷に応じた工夫をしているということでした。

最初のArgoCDのクラスタにどうやってArgoCDを入れているのか(Chatwork->freeeへの質問)

最初は、helmfile templateしてkubectl applyしているので手動でやっているということでした。

開発チームとコミュニケーションを取るときのインターフェースは?(freee->Chatworkへの質問)

チャット(Chatwork)だということでした笑

クラスタアップグレードは開発チームが担当しているのかSREが担当しているのか?(Chatwork->freeeへの質問)

最近は、クラスタ作成と切り替えは開発チームがすべてできるようにしているということで、周辺ツールや手順書を整備しているそうです。(PRレビューの一部のみSREが担当している)

インフラ知識がサイロ化しないようにする工夫(freee->Chatworkへの質問)

Chatworkさんでも同じ課題感を抱いているそうです。

具体的には、開発チームのモチベーションに左右されてしまうのに困っているということで、SREに任せきりになってしまうチームと自発的にがんがんSREに提案してくるチームがいて悩んでいるそうです。

Q&A

EKS on Fargateを使っていない理由

Chatworkさんでは、制約が多いのとパフォーマンスが全然出ないことが理由でFargateを使用していないということでした。(1個だけパフォーマンス要件が全然ないやつのみFargateを利用しているそうでうす)

freeeさんも基本的にはChatworkさんと一緒で、デーモンセットが使えないことやセキュリティ要件の都合上Fargateを使っていないということでした。

クラスタアップグレードに手間がかかっているということだが技術選定自体を見直す必要があるか?

Chatworkさんでは、eksctlで作っているのでまずはTerraformにしたいということでした。その上で、Terraform自体をk8sで動かしてKaaS的にすることで開発者自身がクラスタのカスタムリソースを定義すればよいという話も出ていました。(Crossplaneを採用したい)

freeeさんでは、資産移動のコストなどを考えるとEKSをやめてECSに移ることはあまり考えていないということでした。(ただしECSでやってくれればいいのにと個人的に思うことはあるそうです)

クラスタアップグレードに3−4人日というのは思ったより少ないのだが、これはチームが組んでいるクラスタあたりの単位か?

これは両社さんともYesだということでした。

オートスケールで使っているものは?

両社さんとも、クラスターオートスケーラーとHPAを採用しているそうでした。(VPAはアグレッシブに使われると怖い)

EKSを使ったことで一番大きかったビジネスインパクトは?

Chatworkさんでは、リリース速度やロールバック速度が圧倒的に上がったのが一番大きいということでした。

freeeさんでも、デプロイで怒られる頻度が大幅に減ったのと、バグを仕込んでもすぐに戻せるというメリットが大きかったということでした。

クラスタAPIを技術選定する可能性はあるか?

Chatworkさんでは、EKSに関して言えばTerraformがあればあまり恩恵を受けられないのでないかな、ということでした。

freeeさんでは、より自動化を目指すという文脈で既にPJの進行がされているといことでした。

マルチテナントシングルクラスタとシングルテナントマルチクラスタはどちらの方が運用しやすいのか?

Chatworkさんでは、マルチテナントシングルクラスタしかやっていないという前提で、クラスタ数を作るコスト的にクラスタ数を減らす方向の方がいいと思っているということでした。(ただしクラスタ数を作るコストが下がればシングルテナントマルチクラスタの方がよい)

freeeさんでは、クラスタ数を作るコストには多少目をつぶって、どこかのクラスタが落ちた際に他のクラスタに影響が出ないことを最重要視しているからこそシングルテナントマルチクラスタを採用しているということでした。

会全体を通した感想

具体的な構成の話を聞いた上で、技術の詳細に踏み込んだパネルディスカッションやQ&Aが聞けて非常によかったです。

お互いのプロダクト特性ごとにどのような構成の違いや運用方針の違いが出ているのか?という話も幾つか聞けたのも非常に面白かったです。

*1:シングルクラスタ・マルチテナント

*2:アプリの特性を踏まえるとあんまり通信しないほうがいいアプリが通信しようと思えばできるような状態になっている

*3:単純に新しい技術を使いたいというモチベーションも当時EKSを採用した理由だったという話もありました

アジャイルカフェ@オンライン 第25回に参加してきた

agile-studio.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

木下さん天野さん家永さんのお三方が、アジャイルに関する色々な悩みに関して話をしていく会です。

今日のテーマは、「2023年から始めるアジャイルの価値と原則」でした。

会の様子

今日は、アジャイルソフトウェア開発宣言の4つの価値と12の原則に関して、木下さん天野さん家永さんのお三方それぞれが特に大切にしているものを紹介し、なぜそれが大切だと思っているか?というのを話していくスタイルでした。

4つの価値

木下さん〜プロセスやツールよりも個人と対話を〜

木下さんは、アジャイルの話だとチームの話が個人よりも先に来がちだけれど、個人が「やりたい!」という気持ちこそがすごく大切だと考えているそうで、この価値をとっても大切にしているということでした。

家永さん〜包括的なドキュメントよりも動くソフトウェアを〜

一緒にペアプロとかをやってみる仕事を最近やっていたこともあり、動くソフトウェアを熱心に作り込んでいくことがメンバー同士のコミュニケーションや進捗の話につながると考えており、この価値を大切にしているということでした。

天野さん〜計画に従うことよりも変化への対応を〜

天野さん自身がどうしても計画だったり元々想定していたものに対して囚われてしまうことも多くあるということで、自分に対する戒めも込めてこの価値観を大切にしているということでした。

12の原則

天野さん〜チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します〜

前述した変化への対応という意味に加えて、天野さんがふりかえりを好んでいることから、この原則を気に入っているということでした。

この原則にしたがうことで、ある程度の見切り発車でもふりかえりを活用することができれば結果的に早く進めることがわかってきたことも、この原則がより染み付いていると感じる理由だそうです。

家永さん〜最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます〜

全部入れたい気持ちがあるということですが笑、一つに絞るならこの原則になるということでした。

ソフトウェア開発をしていく上でどうしてもすべてを一人で意思決定するのは難しいと家永さんは考えているため、この原則にあるような自己組織的なチームができていることを重要視しているそうです。

木下さん〜意欲に満ちた人々を集めてプロジェクトを構成します。環境と支援を与え仕事が無事終わるまで彼らを信頼します〜

先程木下さんが選んだ原則の話ともつながっているのですが、個人が自発的にやりたいことをやっていくことが重要だというのが現れている原則として、この原則が好きだということでした。*1

何から始めるとよいのか?

続いて、どの価値や原則を中心にして始めたらいいのか?という話をしていきました。以下のような意見が挙がっていました。

  • 意欲ある人が集まってくるように、魅力的なプロダクトを作ることが重要。
  • 魅力的なプロダクトが何か?を考えられるようにエレベーターピッチを作るところから始められるのが重要。
  • 顧客との接点を作るところから始めることが重要。
  • デイリースクラムで司会を色々な人がやるところから始めることが、自発的な参加に繋がると考えている。
  • パイロットプロジェクトをやることを提案することが多い。このプロジェクトでは、どれだけチームの人達が楽しくやれるか?というのを考えてもらうことが多い。
  • チームにこだわらず「今日はどうだった?楽しかった?」をふりかえることが重要だと感じている。
  • Keepを重要視してふりかえることが重要だと考えている。

会全体を通した感想

いつもの会よりも更に、「お三方それぞれがどのような原体験を持っていて、その原体験がどのような価値観や原則に結びつくのか?」という風にお三方の話を聞くことができたのがすごく良かったです。

お三方に限らないのですが、これまで数々の功績を残されてきた方の話を聞くのは楽しいなあと改めて感じました。

*1:なお、天野さんは上から目線な感じがあるのが少々苦手だということでした笑

Professional Agile Leader読書会 #3に参加してきた

yasashii-agile.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

Professional Agile Leaderの読書会をしていくという会です。

今日はChapter2かと思いきやChapter3でした。

会の様子

いつもに増して時間を割きすぎた結果、予定していた会のすべてがチェックインになるという事態が発生しましたw

メンバーそれぞれの自己紹介に加えて、その人が褒められたいことを挙げてみようというチェックインだったのですが、途中から自然とその人を他者が褒めるような形になり、褒めが止まらなくなってそのまま会の終了まで行くことになりました。

褒められていた内容はプライベートな部分もあると思うので記事には書かないのですが、その場で見つけたところや、普段一緒に仲良くさせてもらっている中で感じたことなどを改めて言語化するような形で、すごく素敵でした。

会全体を通した感想

前回参加していなかったのですが、チェックインの仕方だったり読書会の雰囲気だったりが色々と変わっていて、進化を感じました笑

色々と大丈夫だったのか不安を感じましたが笑、みなさんが優しかったおかげで楽しい時間を過ごすことができたのと、ポケモンの多少踏み込んだ話ができて楽しかったです。

#RSGT2023 のプレゼンを同時視聴したり、アジャイル系の相談したりに参加してきた

distributed-agile-team.connpass.com

今週も分散アジャイルチームの会に参加してきたので、会の様子と感想を書いていこうと思います。

なぜ変化を起こすのが難しいのか? - 数年以上に渡って難しさに向き合い考え取り組んできたこと / The reason why changing organization is so hard - What I thought and faced for more than several yearsの同時視聴

confengine.com

最初はクロージングキーノートを同時視聴していきました。

前半は、理論の話をメインにしつつ、RSGTで行われてきたプレゼンでつながる部分を見事にまとめていて、セッションを見た立場からするとこういう風に現場では役立てられるのかあというイメージがめちゃくちゃつく素晴らしい内容でした。

後半は、iwashiさん自身のこれまでの話で勇気づけをしてくれる内容でしたが、単純にストーリーを話すとかではなくて前半の実用的な話をしっかりと踏まえながらお話をしつつ具体性も確保されていて、こちらもめちゃくちゃおもしろいお話でした。

特に忖度などはせずにがんがん意見が飛び交う分散アジャイルチームですが、絶賛の声が飛び交っていて、ここ数年の中でトップと言っていいのでは?という感想も出ていたのは印象的でした。

きょんさんの雑談

過去のクロージングキーノートの話から、きょんさんの過去セッションも見てみたいなーとつぶやいたことをきっかけに、きょんさんが若気の至りで活動していた時代の話を皮切りに1時間くらいきょんさんから色々とお話を聞くことができました。

  • 10年周期でとんでもない世代が現れるという話
  • なごやこわいの話
  • 時間軸を消し去って働いていた時代の話
  • 関数型プログラミングにのめり込んでいた時代の話(関数型帝国名古屋の話)
  • ぶっ飛んだbleisさんや@mzpさんの話
  • プログラミングの基礎をどのようにして学んでいくかのお話
  • 難しい本をどのようにして読み進めるのか?という話
  • OchaCamlのお話

全体を通した感想

昨日の製造業アジャイルに続き今日も同時視聴をするぞ!と思いきや、期待を超える雑談が聞けて楽しかったです。

EmiさんやArisaさんをはじめ、参加メンバーもお久しぶりの方々が多くて、お話はもちろん、チャットでもたくさん楽しめました!

【製造業アジャイル勉強会】RSGTセッション同時視聴や雑談をするオンラインOSTに参加してきた

beyond-hardware-agile.connpass.com

こちらのイベントに参加してきたので、会の様子を書いていこうと思います。

会の概要

OSTで、RSGTのセッションの同時視聴や雑談をしようというイベントです。
今日はRSGTのセッションの同時視聴を3本見ていきました。

会の様子

スクラムチームが自信をもってアウトカムとスプリント活動に集中するためのコツの同時視聴

confengine.com

まずは長沢さんのセッションの同時視聴をしていきました。

長沢さんのセッションは同時視聴に向いている*1ので、今回も楽しく見ていくことができました。ただ、今回は一部の説明の仕方に関しては見方を広げるような説明の仕方じゃない部分もあったり、普段の長沢さんのプレゼントは少しずらした感じが自分はあって、そのあたりのGapも含めて面白く聞くことができました。

また、プロダクトゴールやEBMの話が絡むということでmoriyuyaさんと同時視聴が実現したのは嬉しかったです。

アジャイルな組織改善 〜手法とマインドセット〜の同時視聴

confengine.com

次に、いっしーさんのセッションを同時視聴していきました。

テーマとしているナラティブと対話という内容自体は色々なプレゼンで聞く話だったのでトピックの目新しさみたいなものはなかったのですが、いっしーさんの言葉やいっしーさんの経験が多く使われていたので、いっしーさんの解釈や業務での具体的な実装方法がすごく腑に落ちて、非常に面白いプレゼンテーションでした。

個人的には、昨年のプレゼンやいっしーさんがおそらく最初に発表したスクフェス大阪2021のプレゼンから、内容の構成や話の上手さがものすごいスピードでレベルアップしている部分もすごく印象的で、「着実に」をすごいスピードで積み重ねるいっしーさんの姿にすごく刺激を受けました。

運用業務とスクラムは本当に組み合わせにくいのか?プロダクトオーナーから見た2つのプロダクトを担当するチームでの試行錯誤の軌跡とこれから / Is there chemistry between Operation work and Scrum? - Path of trial and error in our team -の同時視聴

confengine.com

最後に、自分が一番おすすめといったことが影響して(?)同時視聴したいセッションに上がった、nakoさんのセッションを見ていきました。

今日は皆さん疲れていたり及部さんさささんが不在といったこともあって*2、チャットで反応があまり見られなかったのは残念でしたが、個人的には先日きょんさんや紺野さんとお話していたときに上がったプレゼンの上手さや構成の綺麗さにフォーカスしてプレゼンを聞くことができて、また新たな発見がありました。

*1:人によってプレゼンの捉え方や引っかかり方の違いが特に出る

*2:そんな中でも同時視聴会が普通に開かれているのはすごい!

大人のソフトウェアテスト雑談会 #144【isai】に参加してきた

ost-zatu.connpass.com

今週もテストの街葛飾に行ってきたので、会の様子と感想を書いていこうと思います。(念願の誕生日枠での参加でした!)

V字モデルとデュアルトラックアジャイル

QAの方々からの視点だと、V字モデルの図がめちゃくちゃ邪魔になっている(開発の後にテストをしないといけないような話になっている)という話をまず聞いていきました。

また、V字モデルの話からデュアルトラックアジャイルに派生して、「デュアルトラックアジャイルは野中先生の"さしみ"を再現しようとした結果なのではないか?」といった話や、参加者の方からコミュニケーションをたくさんとった結果、野中先生の"さしみ"と同じような開発プロセスになっている気がするといった話を聞いていきました。

QA視点でのChatGPT

  • 現状、単体テストに関しては自動生成がある程度できている
  • QA視点ではテストのプロフェッショナルになりたい希望がある

という前提の2つから、プログラミング言語の文法的な部分はChatGPTにまかせてしまうみたいなことは期待しているし、既にGithub Copilotの活用という形でできているという話が出ていました

デュアルトラックアジャイルの未来

デュアルトラックアジャイルはこの後アジャイルと同じように知見がたまり進化していくのか?という話をしていきました。

あんまりアジャイルと同じような形で進化していくと考えている方は少なかったですが、特定の企業にとって理想的な開発を進めた結果デュアルトラックアジャイルのような形になるみたいなことはあるかもねーという話は出ていました。

企画力の再生

大企業だと、企画をまるごと外注してしまう*1ケースが出てきてしまっていて、そんな状態からどうやって企画力を再生していくのか?みたいな話をしていきました。

ヒット商品を一度出してしまうとマーケティングや営業をやるだけになってしまい企画力は下がってしまうという話や、ある程度関係性ができているなら1日あたり1個のプレスリリースを出せるようにアドバイスをするという話を聞いていきました。

かつや

かつやは、とんでもないスピードで新メニューを生み出すという話をしていきました。

将棋は100手以上の数を正確に指さないといけないからじっくり考える必要が出てくるけれど、かつやのような商品メニューを作るというコンテキストであれば、まずは質よりも量の方が大事だという話がでていました。

全体を通した感想

全体的に、おおひらさんが偉人であることを実感した会でした。

自分も偉人になれるように精進していこうと決意した誕生日でした。

*1:競合先も外注しているような状態

2023年1月のふりかえり

2023年の1月も終わりなので、今月のふりかえりをしていこうと思います。
全体的に、年が開けた感をこれまでの人生の中で一番感じた1月でした。

RSGTが最高だった

既にブログを複数件書いたので詳細は割愛するのですが、RSGTが今年も最高でした。
何が最高だったのかは書き出すときりがないので、敢えて3つに絞って書いてみると、

  • 多くの方々と初めてお話ができた(特に自分自身のプレゼンきっかけでお話できた方々が複数人いらっしゃったのは最高でした)
  • きょんさん経由を中心に話を聞いていて非常に気になっていたけれどこれまで話をする機会がなかったyotaさんと初めてお話できた
  • 前職の方々と再開して色々とお話をすることができた

は最高でした。

RSGTから波及したスクフェス福岡

RSGTが終わった直後からスクフェス福岡のプロポーザルがとんでもないことになっていました。

自分が書いたプロポーザルに関して色々とコメントをしてもらうイベントでは、初めてプロポーザルを出したという方々が勇気を振り絞って出したきっかけやこれまで長い間抱えていた葛藤を聞けたり、普段話を聞く機会がなかなかないような方々の話がプロポーザルとして出されていたり、プロポーザルの数が80を超えたり...これまでの地域スクフェスでは見られなかったような様子に驚きを隠せませんでした。

自分自身もこの様子に刺激を受けたこともあって、何かしらこれまでやったことのないようなチャレンジをしたいなあと思い、4つプロポーザルを出してみたので、結果がどうなるのかドキドキしながら待っています。

仕事らしい仕事をやり始めた

12月は転職に伴って色々と事務処理をしていたり研修を受けていたりしていたのですが、1月に入ってようやく仕事らしい仕事をすることができました。

仕事をしていて学べたことは想像していたものとは少し違う形だったのですが、これまで経験したことがないチャレンジで、色々勉強しながらも非常に楽しむことができたと思います。
コミュニティで顔を知っているメンバーの方々と働くことができているのも新鮮で、コミュニティで過ごしてきた時間がそのまま続いているような不思議な感覚を持って働いています笑

また、47機関が普段やっているMTGにも参加することができて、こちらも夢に見ていたような体験で感慨深さを感じることができました。

飲みすぎた

今の所何か弊害があったり身体に異常をきたしたりしたわけではないのですが、RSGTもあり、新年会もあり、仕事でたまたま物理出社した後の飲み会もあり...調子に乗って飲酒量がめちゃくちゃ増えてしまったので、2月は自重したいと思います笑