はじめまして、今回記事を書かせていただきますSREチームの金澤と申します。よろしくお願いいたします。
自己紹介
前職はとある会社の情報システム部門に在籍して自社のサーバやネットワークの管理といった社内インフラのあれこれを担当していました。
そんな中、社内インフラの更改を担当する機会がありました。更改先として候補に挙がっていたパブリッククラウド(AWS)に触れ、パブリッククラウドが持つサーバ資源調達の迅速性やリソース変更時の柔軟性を文字通り身をもって体験し興味を持つようになりました。
更改以降も自主的に学習を続けていましたが、次第に自分のキャリアもそちらに寄せていきたいと考えるようになりました。そして今、アプトポッドとご縁がありましてSREチームとしてインフラ構築・運用業務にあたっています。
入社のきっかけ
- HW設計~アプリケーション開発・デザインを統合し製品提供する難易度の高さ
- 成長できそう
- 製品が持つ社会貢献性の高さ
- モダンな技術の採用
- 製品がカッコよい
の箇所を魅力的に感じ入社を決めました。製品のカッコよさは重要ですよね。製品の詳細は製品紹介をご覧ください。
キャッチアップの必要性
前職は管理が主な担当業務だったため、開発も含む本職に携わるにあたりキャッチアップの必要性があると感じていました。
本記事では、弊社のコミュニケーション・開発環境を簡単にご紹介するとともに、私自身がどのようなキャッチアップに取り組んでいるかご紹介できればと思います。 私のようにキャリアチェンジに取り組んでおられる方や、弊社に興味をお持ちの方に対して参考となれば嬉しいです。
入社直後の課題改善
弊社の神前(こうさき)のエントリにもあります通り、現在アプトポッドではリモートワークを前提とした勤務体系で社内コミュニケーション基盤としてSlackを利用し各種業務を進めています。
Slackでは基本的な連絡などは滞りなく進む反面、質問や確認で時間を要することを課題に感じていました。入社直後はプロダクト内の言葉や略称を把握できず、どうしても内容を正確に掴み取るまでに時間を要するものと思います。私もまさにそちらに当てはまっていて、業務で取り扱うことになるインフラ構成の詳細や至った意図など、ヒアリングしたい内容が生じていました。
質問のインプットがアウトプットを上回る状態で、チャット上へ随時質問を垂れ流すことも方法として微妙と感じていたこともあり、一先ずSlackの個人スペースにメモとして適宜記録していました。ただ、ご存じの通り個人スペースは自分一人のクローズドな環境のため他者との連携が無く、課題解決に向けどのように進めようかと考えていました。
アプトポッドでは個人が社内でオープンなチャンネルを持ち、
- 作業進捗
- 疑問点
- 気になった(技術)情報
- ネタ
をポストする文化があります。チャンネルを作成することや、他の人のチャンネルに参加することも自由で、ポストした内容にスタンプなどのレスポンスがあったりもします。率直に良い文化だなと感じています。そして、私の抱いていた課題もそちらに倣ってアウトプットすることで改善が図られることを期待し最近運用を始めました。まだまだ運用期間は短いですが自分の状況のアウトプットを継続することで疑問の解決を促し、自身の成長に繋げていきたいと思います。
開発フローのキャッチアップ
チーム開発フローへの順応
アプトポッドではGitlabをVCS*1に採用しコード管理を行っています。Gitは前職でも使用の経験がありましたが(様々な事情があり)自身の作業履歴を残すことを目的とした個人運用でした。そのため、Gitを使用する上で主流となるチーム開発のフローに順応することを心掛け行動するようにしています。
具体的に言いますと以下のような内容になります。
- 小さな単位でのコミットを意識する
- 思いついた多数の修正を含めて
fix
等とやらない。
- 思いついた多数の修正を含めて
- 分かりやすいコミットメッセージを心掛ける
- フォーマットに従うなど運用ルールを確認する。
- チームで使用していることを意識する。
- ターミナルへツール導入し操作性の改善を行う。
何れも基本的なところですが、VCSの運用方法は会社やその会社が持つ文化に左右され一概には決まらない印象が強いです。このような基本的な内容を確認することで運用方法はもちろんのこと、会社文化の一端を感じ所属している場所に慣れる方法として有効であると考えています。
サンドボックスを利用したIaC*2のキャッチアップ
アプトポッドではお客様に提供するインフラをTerraform
およびAnsible
のコードベースで管理しています。
業務を進める中でインフラリソースを自由に作成・変更・削除することができる環境が欲しくなることがあります。提供されているドキュメントと実動作の乖離確認やパフォーマンスの測定、また既存環境には影響を及ぼさず安心して試行錯誤したいというモチベーションから生まれるものです。
アプトポッドでは、開発者や希望者にパブリッククラウド(AWS)の個人アカウントを払い出しており各々が使用することができます。そのため個人アカウントをサンドボックスとして利用して前述のような検証を自由に行うことができます。これは「社員各々の成長、開発スピードの向上のため」という目的の元で進められていて皆幸せとなれる良い文化だなあと感じています。*3
私自身もこれには非常に助けられており、自身の理解促進に役立っていると実感しています。特にコストがかかる機能検証はプライベートアカウントで行うのも抵抗がありますよね。
守備範囲を広げる
構築作業で使用するツールがPythonの2系での実装であったため、構築作業と並行して3系への移植を行いました。そして、このような作業に関わらず各種作業を通じて気づいた点は、社内Wikiに反映することを都度行っていました。既存環境の改善の一環なのですが、さらにもう一点、自身の守備範囲を広げるというねらいがありました。
まだ、構成を十分に把握していない不透明な環境の中で少しでもバリューを発揮できるよう得意な所を増やし、自身の活動の基礎を作るよう意識していました。この考えは参考にさせていただいたブログエントリがあります。エントリ中に表現されている「庭」という考え方にはすごく共感しており、引き続き実践していきたいと考えています。
知識のキャッチアップ
主に入社前の取り組みになりますが今まで得た知識の振り返りや新たなインプットのために以下の書籍を読みました。
- いちばんやさしいGit&GitHubの教本
- みんなのコンピュータサイエンス
- マスタリングTCP/IP入門編(第5版)
過去に購入した書籍を復習のために読み返しました。この中でも有名なマスタリングTCP/IP入門編は一通りの内容をおさらいしたかったため今回は浅く内容をさらったのですが、読んでみて改めて体系的に内容が網羅されている本だと思いました。昨年第6版が発売されたようですね。
- [試して理解]Linuxのしくみ~実験と図解で学ぶOSとハードウェアの基礎知識
- Software Design
LinuxのしくみはLinuxの基礎動作を図やプログラムで追えることができるため選択しました。Software Designは毎号特集しているテーマについて初学者が触れやすい構成をしていることが多く、テーマにざっくりと触れたいと思う時には購入しています。
- 入門監視
- SREサイトリライアビリティエンジニアリング
有名なSRE本ですが、まずは一通り読み終えたく少しずつ進めています。
最後に
本記事ではアプトポッドへ入社し業務に携わるにあたり取り組む必要があると感じていたキャッチアップについて、弊社のインフラを交えお話させていただきました。挙げた内容は今後も継続していき、アプトポッドや弊社プロダクトへ貢献できるようこれからも努力したいと思います。