【自己推薦機能提供終了のお知らせ】 2024年10月11日(金)に「自己推薦機能」の提供を終了いたします。詳細は **[リリースノート](https://job-draft.jp/release)** をご確認ください。 【転職成功プレゼント変更のお知らせ】 2024年10月1日(火)0:00以降のプレゼント申請分より、プレゼントが変更となりました。詳細は**[プレゼントページ](https://job-draft.jp/user/presents)**をご確認ください。

kumashun

2024年9月回 指名


まだ何もありません

自己推薦一覧

自己推薦はありません

あなたを気にしている企業

3年後の目標や野望


所属する開発組織をたのしくする、盛り上げる

たのしいとってもfunではなくinterestの意味。 当たり前ですが常に新しい技術にワクワクして、今の状況をもっといいものにしていくことを考えて働けることを幸せと感じます。 サービスを提供する会社として収益とともに組織規模も大きくなるのは当然です。ただ意識決定スピードや社内下請け構図、リリースサイクルの長期化など、日々の開発モチベーションの妨げになるものも一緒に増えていくのは避けたい。 自分または所属するチームでは、まずそういった妨げを取り除く取り組みに積極的に取り組みたいです。ツールによる自動化など、主に下回りを整えることで貢献します。 その取り組みを社内外に発信して、組織全体のモチベーションアップに繋げることまでできれば幸いです。

年収評価シート

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

2021年/3ヶ月以内

Amazon EKS clusterでのArgo Rollouts導入

## プロジェクト概要 自社で運用しているサービスの多くはコンテナ化され、インフラであるkubernetesの実行環境としてはAmazon EKSを利用しています。主力サービスを、従来のEC2インスタンスにデプロイするスタイルからEKSに乗り換えるプロジェクトは成功しましたが、EC2時代に実現できていた仕組みが移行直後はデグレしていました。その一つが canary releaseです。 Canary relaseはデプロイ戦略の一つです。新規リリースの際、インスタンスの数台だけを新しいリリースにして一定期間様子見をしたのち、問題なければ全台を新しいリリースにデプロイ、問題があれば数台だけRollbackすることで、安定したデプロイを行うことができます。 Kubernetesでcanary releaseを実現する方法として、チームではOSSであるArgo Rolloutsを選定しました。EC2時代の仕組みでできた要件を満たすかどうか調べた上で、主力サービスに導入するまでがこのプロジェクトのゴールです。 https://argoproj.github.io/rollouts/ ## チーム情報 SREのうち、CI/CD周りを担当するチームで取り組みました。 プレイングマネージャー、エンジニアx2(自分含む)、インターンx1 ## Argo Rolloutsの機能調査 【概要】 Argo RolloutsがEC2時代のcanary releaseの仕組みでできた要件を満たすかを調査しました。 【どのような機能の開発・実装か】 調査のため実装などの成果物はありませんが、その後の開発方針を決める判断材料を作りました。 【課題・問題点】 EC2時代実施していたsticky sessionをどう実現するかが課題となりました。sticky sessionとはALBの機能で、一定のルールに基づき、1ユーザーからの全リクエストを特定のサーバーに流すことが可能です。canary releaseにおいて、例えば最初のリクエストはcanaryが返して、その後のリクエストでstableが返す、という状況が起きうるのですが、その場合の挙動が不安定になることを懸念して、canaryに当たったユーザーはずっとcanaryが当たり続けるようにするために導入されていました。 https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/sticky-sessions.html Argo Rollouts自体はsessionの管理ができないので、同じことをKubernetesでやるには別のコンポーネントが必要です。 【打ち手・使用した技術】 結論として、Argo Rollouts導入においてはsticky sessionの設定は行わない方針に決めました。sticky sessionの導入経緯は "canaryに当たったユーザーはずっとcanaryが当たり続けるようにするため" ですが、そもそもrolling updateを前提としている環境において、ユーザーごとに処理するサーバーが新旧入り混ざることは避けられません。アプリケーションのデプロイ方針としても、後方互換性を保った変更を行うべきなので、一度canaryに当たった場合リクエストを流し続ける仕組みはそもそも不要であると判断しました。 ## Argo Rolloutsを導入する仕組みの開発 【概要】 EKSにデプロイするkubenertes manifestはhelmfileで管理しています。Argo RolloutsはDeploymentの代わりにカスタムリソースRolloutsを使うことで機能が有効になるので、helmfileに手を加えて、Rolloutsを使用可能にしました。 【どのような機能の開発・実装か】 Deploymentを内包したhelm chartのバージョンを切って、enableRollouts = trueならRolloutsを使うように書き換えました。使いたいclusterに、事前にCRD(Custom Resource Definition)をinstallしておけば、あとはcanary戦略を書くだけで簡単に導入できるようにしました。 【課題・問題点】 仕組みとしては簡単に導入できますが、モニタリングツールでの可視化も必要でした。例えばエラーがcanaryによるものなのかstableによるものかは、デプロイ後監視で見たいものです。 【打ち手・使用した技術】 モニタリングツールであるDatadog、およびエラー管理ツールであるBugSnag向けに以下の対応を行いました。 - Argo Rolloutsには[Ephemeral Metadata](https://argoproj.github.io/argo-rollouts/features/ephemeral-metadata/)といって、canary Podに対してのみ割り当てられるlabelやmetadataを設定することができます。これらを用いてDatadog上でメトリクスを調べることで、canaryとstableで状態を見分けることができました - BugSnagはrelase_stageごとにバグを出し分けており、サービスからは環境変数を使ってrelease_stageを設定していました。Kubernetesの[Download API](https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api)を使って上記のEphemeral Metadataを環境変数として渡すことで、Podのcanary/stableごとに動的に環境変数を設定することで出しわけに成功しました

2024年/半年以内

MySQL監視ツールのkubernetes移行

## プロジェクト概要 自社開発サービスの多くはデータベースとしてMySQLを利用しており、その監視ツールとして古くからMonyogを利用しています。アプリケーション全体のパフォーマンス監視はDatadogを利用しているため、バックエンドとデータベースのパフォーマンスを数珠繋ぎに確認する際はDatadogが便利ですが、MySQLのロックの状況確認や問題のあるクエリのkillなどMonyogが有用な場面も依然多いです。 https://monyog.jp/ そのMonyogはサーバー上で直接バイナリを実行することで動かしており、そのサーバーは導入開始当初からアップデートされていません。メンテナンスを継続的に行い、かつインフラ全体の標準構成に揃えるためにも、Monyogをコンテナ化し、kubernetes環境にリプレースさせるのがこのプロジェクトの目的です。 ## チーム情報 リード: 1(自分) エンジニア: 2 MySQLの監視ツールということで、SREのDB周りの専門チームで着手しました。自分は以前SREのコアなチームにいたためkubernetesをはじめインフラに明るかったこともあり、設計から実装プランの計画まで行い、他エンジニアに作業を分担しながら進めました。 ## 監視機能がパフォーマンスを影響を与えないようなライフサイクルの設定 【概要】 Monyogのkubernetes移行で導入したのが、監視機能を定期的にリセットするようなコンテナのライフサイクルです。Monyogはweb画面から様々な機能を利用しますが、UIの操作を誤ると、画面からoffにできなくなった機能が仕様限界になるまで動き続け、監視対象のDBに高い負荷をかけてしまうことがわかりました。画面からoffにできなくなった機能は、Monyogのプロセス本体を停止し、再起動する必要があります。 【どのような機能の開発・実装か】 コンテナをPodとしてデプロイすることになったので、プロセス自体の再起動はPodをrotateすることで可能です。 【課題・問題点】 Podのrorateはkuectlによる手動実行は可能ですが、繰り返し手動で操作するのは大変だし、オペレーションミスを引き起こします。そのためこのrotateを自動で行う必要がありました。 【打ち手・使用した技術】 自動rotateの仕組みとしてdeschedulerを採用しました。名前の通り、設定したルールに基づきPodをevictすることができる仕組みです。このルールのうちpodLifeTimeを設定することで、1時間ごとにPodをevictする=Monyogプロセスを再起動させることができます。 https://github.com/kubernetes-sigs/descheduler?tab=readme-ov-file#podlifetime

マネージメント能力

アピール項目


アウトプット

GitHub アカウント
あり
Qiita アカウント
あり
Zenn アカウント
あり
Speaker Deck アカウント
あり
SlideShare アカウント
未入力です
特にアピールしたいアウトプット
あり

今後、身につけなければいけないと思っている技術は何ですか?

分散データベース

あなたが一番パフォーマンスを出せるのはどんな環境ですか?

プロジェクト立ち上げ直後 => オフィスでワイワイ プロジェクト進行中 => 自宅でもくもく

キャラクター

直近で一番やりたいこと
技術を極めたい
好きなスタイル
好きな規模
自信を持って人より秀でていると言える点
学習能力 / 責任感 / 巻き込み力
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
風通しの良さや意思決定ライン
やりたくない分野
アダルト / 仮想通貨
その他の特徴
未入力です
その他のやりたいこと・やりたくないこと
未入力です

やりたい事

手を動かして設計してコードを書きたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
価値あるプロダクトを作り成長させたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
学び続けて技術力でプロダクトに貢献したい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
意義があることや社会に貢献できる仕事がしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
人や計画の調整・マネジメントをしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
レガシーなシステムの保守・運用・改善をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
企画や仕様を考えるところから関わりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
業務効率を改善して一緒に働く人のためになりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
全社横断的な共通基盤作りや強化をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
組織や文化を作る・成長させる仕事をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい

基本プロフィール

年齢
今年で20代後半
好きな Text Editor
vscode
希望勤務地
東京都
希望年収
770万円
転職ドラフトに参加して
企業から指名を受け取ろう!
会員登録をして転職ドラフトに参加すると、参加企業から年収付きの指名を受け取ることができるようになります。
会員登録する
ご意見箱

要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。

なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。

  • {{error}}
SIGN UPSIGN IN


転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?