@シンガポールDevOpsこんにちは。Hatの新しい試みの1つである、DevOps文化を学ぶトレーニングに参加してきたので、そのレポートです。一緒に行った鈴木(@tomoya_su)とともに本ブログを書いています。Linuxの印象が強いのではないかと思います。Linuxは大きな事業の柱ですが、最近ではOpenShiftをはじめコンテナ技術に関する製品に注力していますし、また製品だけではなくてそれを「うまく使いこなせるようになるためのDevOps文化を育む」ためのトレーニングやビジネスを行っています。Labsというがあります。Hatのコンサルタントやエンジニア、対象分野の専門家とともに一定期間(標準的なものだと4〜12週間)ともにプロジェクトを進めていくタイプのサービスです。アジャイル開発やDevOps導入の方法論を学び、実践しながら、プロトタイピングしていくといったことを行います。最近ですと日本でもふくおかフィナンシャルグループ様での事例などがてきています。Enablement」をシンガポールで受講してきました。labsが実際のプロジェクトベースなものに対して、数日間の一般的な「トレーニング」として提供するものです。日本でも提供を企画しており、提供するにあたっての体験として参加してきました。Hat社員20人程度。ロールはコンサルタントやテクニカルトレーナーなど。www.redhat.com学んだ内容については、後述するのですが、このトレーニングの面白いところは、アジャイルなカルチャーを学ぶトレーニングをアジャイルなカルチャーで実行して学ぶというメタ的な視点で学ぶことにありました。それでは実際にどんなことを体験してきたのかみていきましょう。TDDやCICDなどの技術的なプラクティスを実践する技術演習に大きく分かれています。初日にチーム分けをして、5日間そのチームでプラクティスに取り組みます。ワークショップ実施されたトレーニングルームは、DevOps文化を体験する専用の部屋でした。広い部屋でしたが講師を含めて30名近い人数がいたので、ちょうど良い大きさでした。壁や窓が広く使える点とホワイトボードがいたるところにあるなど、DevOpsを体験するための環境としてとても工夫されている空間でした。本トレーニングでは、基本的にワークショップ形式が中心となって進められていきます。DevOpsのプラクティスの概要について説明をうけて、そのプラクティスを同じチームのメンバーと一緒にワークショップで取り組みます。どのようなプラクティスを体験したかというと、例えば下記のようなものです。上は例なので他にもOpenPracticeLibraryにあるようなプラクティスを実際に体験しました。ちなみに、OpenPracticeLibraryはRedHatがDevOpsで役立つプラクティスについて公開しているサイトです。openpracticelibrary.com余談ではありますが、下記サイトにてOpenPracticeLibraryにあるプラクティスを日本語で紹介する取り組みも進めています。プラクティスを実際に体験するということはとても重要です。書籍や上記のサイトを見るだけでも学べます。プラクティスも知識として知っていても使いこなすことは非常に難しいものです。実際に体験し、どういうものか、どういうメリットがあるのかを体で感じることが大切です。その問題をチームで取り組むことでプラクティスを簡単にではありますが体験できます。自分自身の成長はもちろん、組織にDevOpsの文化を取り入れていくためにもとても大事なことです。簡単な体験だけではなく、実際の仕事でそのプラクティスがどう生かされているのかを実際のプロジェクトを元に紹介してもらえます。Labs)を実施してきたコンサルタントがほとんどです。ように実例を元に説明をしていただけたので、トレーニングだからうまくいくのではないかという疑念を払拭でき、説得力がありました。技術編DevOpsのカルチャーを学ぶトレーニングですが、技術もその重要な要素です。DevOpsを行うにあたって特に「自動化」や「テスト」は欠かせないポイントです。アジャイルの開発プロセスでは、仮説と検証を繰り返しながらサービスに必要な機能やそのありかたを探っていきます。リリース作業やテストの作業が自動化されていないことには、早いサイクルで仮説検証を行っていくことができなくなってしまうため非常に重要なトピックです。Imageレジストリなどを構築して使っていきました。実際にシンプルなサンプルアプリケーションを利用して、CICDやTDDなどを体験していくものとなります。サンプルアプリケーションはTODOアプリなのですが、フロントエンドはVue.js、APIサイドはNode.js+mongoDBで動くという構成でした。以下は、今回実際に触ってみた全体像になります。重要なポイント技術編では資料に沿って手順をこなしていけば完成はするのですが、いくつか重要なポイントがありました。独断ではあるのですがいくつかピックアップしてまとめてみます。Ansibleを使って、OpenShiftの設定のセットアップを自動化することOpenShiftそのもののデプロイではなく、利用するネームスペースや共通で使うJenkinsなどのコンポーネントの立ち上げをAnsibleで行いました。Codeと呼んでいましたが、他のチームでの構築や再構築が可能なようにするために自動化をしていきました。ツールは何でもいいのですが、再現可能にして環境を複製したり設定の反映の自動化ができるようになることが重要でした。Jenkinsでビルド、テスト、リリースなどを自動化するパイプラインを作ること基本的なCI/CDですが、アジャイル開発での仮説と検証をすばやく行えるようにするためにJenkinsを利用したビルド、テスト、リリースなどの作業を行いました。こちらを行うことで、提携の作業をなくして、より開発やチームでのワークを増やすことができます。サンプルアプリケーションで実践することサンプルのアプリはシンプルではありますが、Front-endアプリケーション(Vue.js)とAPIアプリケーション(Node.js)に別れた構成になっていていました。それぞれでの役割を意識しながら、環境を作っていくことが非常に重要です。パイプラインの作成だけでなく、TDDやE2Eテスト、非機能要件のチェックなどの体験をすることができました。わからないことはペアで助け合いながらすすめること本トレーニングには必ずしもOpenShiftやCICDに長けたエンジニアだけではなく、プロジェクトマネージャ職など様々な人達が参加していました。わからない部分はチーム内でお互いに助け合いながらすすめていきます。これも、多様性を重視したクロスファンクショナルなチームでものごとをすすめるための重要な要素でした。まとめDevOpsのカルチャーを学ぶトレーニング、ということで、ただ単によくある手法や技術を学ぶだけでなく、実際にチームを組んで実践していくというを体験してきました。頭だけでの理解ではなく、そのカルチャーの中に5日間身をおいて活動する楽しさがありました。ツールやプロダクトだけでなく、それを使いこなしていく最高のチーム・効率的な開発プロセスを学んでみたい方は多いはずです。日本での提供がいつになるかはまだ未定ですが、検討と準備をしている最中ですので、進捗あり次第またご報告させていただければと思います。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。