NTT コミュニケーションズ株式会社 (東京都)
2020/10 〜 現在、シニアソフトウェアエンジニア、プラットフォームサービス本部
- Smart Data Platform におけるファイアウォールと Managed Load Balancer のバックエンドの開発
- 役割
- 約 5 人のチームのテックリード / デベロッパー
- 業務内容
- Python (Tornado) を用いたバックエンドの開発
- Self-managed なファイアウォール / Full-managed なロードバランサを提供するための REST API の設計 / 実装
- ネットワーク製品 (vSRX など) を仮想サーバー上に構築し、REST API 経由で設定するための非同期処理の設計 / 実装
- ネットワーク製品 (vSRX など) から REST API, SNMP 経由でメトリクスを収集するための監視の設計 / 実装
- バックエンドの CI / CD の整備
- Prow を用いて pytest を実行したり、GitHub Actions を用いて Ruff などを実行したりするための CI の整備
- Argo Rollouts, Tekton を用いて Kubernetes 上で Blue / Green デプロイするための CD の整備
- バックエンドの API を実行してプロバイダー用の情報を管理するための Ansible Module / Playbook の実装
- ユーザーがファイアウォールや Managed Load Balancer を構成管理するやめの Terraform Provider の実装
- OpenAPI を用いた API リファレンスの執筆、Postman によるシナリオテストの実装
- 実績 / 成果
- Managed Load Balancer のバックエンドをゼロから設計しただけでなく、フロントエンドの画面を設計したり、企画チームや保守チームと協力してサービスの仕様を決定したりすることで、予定通りのリリースを達成
- ファイアウォールのバックエンドの開発環境と基盤をオンプレミス上の仮想サーバからクラウド上の Kubernetes へと移行する方式を確立し、トラブルなく商用移行を完遂
- 社内製のアプリケーションフレームワークや CI / CD ツールのバグ修正や機能追加をするだけでなく、その成果を他のチームにも展開し、サービス全体の品質向上に貢献
2016/04 〜 2020/09、ソフトウェアエンジニア、プラットフォームサービス本部
- Smart Data Platform におけるベアメタルサーバーと専用ハイパーバイザーのバックエンドの開発
- 役割
- 約 10 人のチームのスクラムマスター / デベロッパー
- 業務内容
- Ruby (Ruby on Rails, Sidekiq) を用いたバックエンドの開発
- 物理サーバーやハイパーバイザーをオンデマンドに提供するための REST API の設計 / 実装
- BMC (iLO, iDRAC, iRMC など) を用いて物理サーバーの BIOS / UEFI を設定するための非同期処理の設計 / 実装
- PXE や Kickstart, Preseed などを用いて物理サーバー上に RHEL / CentOS, Ubuntu, ESXi などの OS を自動インストールするための非同期処理の設計 / 実装
- 物理サーバーから IPMI, Redfish, SNMP 経由でメトリクスを収集するための監視の設計 / 実装
- バックエンドの CI / CD の管理
- Jenkins を用いて RSpec を実行したり、GitHub Actions を用いて Rubocop などを実行したりするための CI の整備
- Jenkins と Ansible を組み合わせて仮想サーバー上で Blue / Green デプロイするための CD の整備
- オンプレミス上でのバックエンド基盤の運用
- Redis, RabbitMQ の維持管理
- Consul, Fluentd, Elasticsearch, Kibana によるモニタリング / ロギング
- 実績 / 成果
- リリース手順を Jenkins と Ansible を用いて自動化することで稼動を削減し、冪等性を担保することで作業ミスを削減
- RHEL / CentOS を iPXE で起動できない問題に直面したが、新たに pxelinux を検証して導入することでサービスとして予定通りのリリースを達成
- 構築チームと協力して手順の見直しや工程の整理を行い、リージョン構築やグループ増設にかかる工期の短縮に貢献