富士通クラウドダイレクトブログ

初心者エンジニア向けTechBlog

富士通クラウドダイレクトブログ

初心者エンジニア向けTechBlog

【レポート】DevOpsの始め方

この記事は、ニフクラブログで2022-03-17に公開された記事を移転したものです。

こんにちは。 ニフクラエンジニアミートアップ事務局の鮫島です。

2022年2月22日(火)に第45回ニフクラエンジニアミートアップを開催しました。 ※世間では、スーパー猫の日ということでいろいろ盛り上がっていたようですね。

今回のテーマは、「DevOpsの始め方」

fujitsufjct.connpass.com

ということで、特にDevOpsに求められる多くの機能を単一の環境で実現するオールインワンツールとして人気を集めているGitLabにフォーカスした内容でお送りしました。

DevOpsは、「Development(デベロップメント=開発)」と「Operations(オペレーション=運用)」を組み合わせた造語で、開発担当と運用担当が緊密に連携して、柔軟かつスピーディーにシステム開発を行う手法です。

日本でもDXを推進する企業の増加とともに、システム開発のスピードアップが求められていますが、DevOpsを実践するにあたっては、開発手法や企業文化・組織の変革が必要なのはもちろんですが、コラボレーションを活性化するためのツールも重要です。

選択肢は無数にありますが、ニフクラ/FJcloud-Vでは「DevOps with GitLab」というプライベートなAll-in-one DevOps環境(GitLab)が簡単に構築・利用できるサービスを提供していますので、今回はサービス開発担当者による解説と、実際にDevOps with GitLabの環境構築を行った宮原氏のレビューも踏まえてツール面からDevOpsへの理解を深めていただけたかと思います。

「DevOps with GitLab」で始める簡単DevOps

まずは、富士通クラウドテクノロジーズ株式会社の「DevOps with GitLab」サービス開発担当者山口純のセッションです。

簡単にDevOpsとは何か?という歴史的・文化的側面のお話から入り、DevOpsのメリットにである速度・特にリリースを早くするためのCI/CDパイプラインがどのようなものかを解説していきます。

DevOpsのメリットとは?

DevOpsのメリットは何か?歴史的・文化的側面から入ると、開発と運用の非協力による負のループを解消するといった話がよく出てきます。

負のループが生じると何が起きるか? スピードの遅延、ミスの多発、相互不信が同時多発的に起きて、生産性が著しく低下することになります。

したがってDevOpsのメリットを量化するとこうなります。

DevOpsのメリットを数値化すると速度が際立つ結果に

アーカイブ動画ではこのあたりです。
DevOpsのメリット

パイプラインによる自動化とは?

実際にどうすれば速度が上がるのか?というと、CI/CDのパイプライン構築による自動化が重要なポイントです。

ココから、急速に具体的な話に突入しますが、テスト→ビルド→レビュー→デプロイという一連の手順を、GitLabでは「.gitlab-ci.yml」というYAML形式の定義ファイルを使って実行します。

YAML形式のファイルに自動化の手順を記述して実行する
実行するのは、「GitLab Runner」というGitLab謹製のCI/CDツールです。

アーカイブ動画ではこのあたりです。
パイプライン

デモ

ココからは、実際にCI/CDパイプラインを使ったデモになります。
皆さんもコード修正・レビューの都度、検証環境にデプロイ作業をして工数がかかり大変だった経験などないでしょうか?
パイプラインやGitLabのreview appsという機能を使うことで、それを自動にしてしまうデモを行いました。

サンプルアプリに足し算機能を実装する、というシナリオで実際にパイプラインによるデプロイ自動化のデモを行っています。

概念ではなんとなく理解できても、実際にソフトウェアを開発する前提でどういう手順でパイプラインが実行されるのか?デモを見るとよりイメージがしやすいと思います。

アーカイブ動画ではこのあたりです。
「足し算機能」実装!CI/CDパイプラインのデモ

やっぱりKubernetesだよな?

今回のデモでは、ニフクラFJcloud-VのマネージドKubernetesサービスである「Kubernetes Service Hatoba」を使用していますが、「GitLab Runner」をKubernetesクラスタ上で動かしているだけでなく「足し算機能」というアプリケーションのデプロイ先としても利用しています。 Kubernetesまではちょっと知識が追い付かない…という人は、仮想マシン(VM)で「GitLab Runner」を動かしてCI/CDを行う方法もあります。

アーカイブ動画ではこのあたりです。
K8s未経験者は無理せずVMでも・・・

とはいえ、CI/CDすなわち「継続的インテグレーションと継続的デリバリ・デプロイ」は、本デモのようにコンテナやk8sといった技術と組み合わせることで実現しやすくなります。

現在のビジネスシーンでは一回リリースしたら終わりではなく、変化に適応できるソフトウェア開発の必要性がどんどん高まっていることもあり、Kubernetesと連動したパイプラインの利用が増えています。

なかなか導入に踏み切れない場合には、まずは検証環境から段階的に導入をしていくのがよいとのこと。

まとめ

GitLabは単一のツールでCI/CDパイプランを構築してDevOpsを実践できるところに大きなメリットがあります。 単なるリポジトリマネージャーにとどまらず、今回のデモで使用しているコンテナレジストリ機能やセキュリティ・監視といった隅々まで、痒い所に手が届く?系のツールが用意されています。

コンテナレジストリがいい働きしている感があります。

もちろん、誰もが必要なツールではありませんし、すぐに使いこなせるかというとそう簡単でもないと思いますが、何といってもインターネットで先人たちの様々なノウハウを参照することもできますし、構築の手間が少なくて済むというマネージドサービスのメリットをぜひ活用していただければと思います。

「DevOps with GitLab」でDevOps環境をセットアップしてみた!

続いて、山口からの予告通り宮原氏による「DevOps with GitLab」の環境構築に関するセッションです。
前置きとして、実は日本仮想化技術の遠山氏が検証した結果を参考にしているとのことで、同社のDevOpsのお役立ち情報満載の技術系メディア「とことんDevOps」に記事があります。

「ニフクラのDevOpsサービスを使ってみた」 devops-blog.virtualtech.jp

結論を先に言ってしまうと、この手順を参考に「DevOps with GitLab」の環境セットアップを行ったところ「簡単でした!」という内容です。。

山口のセッションで「GitLab Runner」はKubernetesではなくVMで動かしてもいいとの話がありましたが、まさにその手順が紹介されていました。

とりあえずDevOps環境を試すためならVMでいいと思います。

初心者が出来るだけ簡単にDevOpsをスタートできるように…という観点で重要なのが、ニフクラのお作法です。

先にファイアウオールグループの設定を行うのがお作法です。

アーカイブ動画ではこのあたりです。
DevOpsサーバー設定手順

それ以外は、淡々と言われるがままにニフクラのコントロールパネル(管理画面)を操作するだけです。 大きな流れとしては、こんな感じ。

1.DevOpsサーバー(GitLab)を作る
2.サーバーを作成してGitLab Runnerをインストールする
3.GitLab CI/CDの動作確認をする

思いのほか、簡単に見えますがとりあえず環境設定はこれだけです。

どうせなら最後までセットアップした状態にしたら?とのこと

アーカイブ動画ではこのあたりです。
やってみて感じたこと

この後、宮原氏の個人的な疑問に山口が一つ一つ答えるというプレQAとなりましたが、「こうしたらもっと簡単にDevOpsを始められそう?」というご意見もたくさんいただきました。

がんばる!って感じです。。

アーカイブ動画ではこのあたりです。
中の人から補足コメント

「DevOps with GitLab」を触ってみたいという方は、「DevOps導入支援!DevOps with GitLab無償キャンペーン」を実施中(2022年7月31日まで)です。
ニフクラの無償枠(OEMのFJcloud-V)と合わせて、ぜひお試しください!
personal.clouddirect.jp.fujitsu.com

QAセッション

最後に恒例のQAセッションです。
「DevOps with GitLab」はもちろん、関連技術に関する初歩的な質問も寄せられました。

下記のような質問が寄せられましたが、時には脱線しつつ真摯にお答えできたかと思います。

Docker Composeの機能はK8sで補える?
GitLab とGithubの違いは?
GitLab環境のバックアップ
yamlファイルって何ができるの?
大量のPodを作り直したいけど一括リセットできる?
GitLabのバージョンアップ検証は大変じゃない?

いくつか、適度に中の人を苦笑させる質問もありました。
深刻なオチにならないレベルであり、質問が上手だな?と感じました。
こういう、双方向性こそQAセッションのだいご味といえます。

以下、当日のスライドと動画のリンクです。

www.slideshare.net www.slideshare.net

youtu.be youtu.be youtu.be

次回のニフクラ エンジニアミートアップは3月30日開催予定です。
fujitsufjct.connpass.com

お楽しみに!