こんにちは、宮内です。
最近は花粉が多くてつらい時期ですが、皆さまは大丈夫でしょうか?
僕は花粉症でマスクと目薬が必需品になってきた今日この頃です、つらーい!
さてさて、今回のブログですが、以前はバズワードとして取り上げられていた DevOps について触れていきたいと思います。
昨今では DevOps の記事や特集が組まれており、DevOps 時代とさえ言われています。とは言っても「具体的に DevOps って何から始めたらいいんだろう?」と悩みますよね。この記事では皆さんと一緒に DevOps を考えていくと共に、Azure を使った DevOps を紹介したいと思います。
それではまず簡単に DevOps という言葉の定義をしていきましょう。
DevOps とは、開発チーム(Dev)と運用チーム(Ops)を合わせた言葉です。
開発チームのお仕事は、“システムに新しい機能を実装していくこと”ですね。ビジネス環境は日々変わっていくので、その変化に合わせて対応していくために新しい機能をどんどん実装し、変化を起こしていきます。
一方で運用チームのお仕事は、“稼動しているシステムを安心・安全・安定に稼動させ続けること”ですね。僕も運用経験があるためよく分かるのですが、一番の安定稼動は変化を加えないことです。いわば変化がリスクになるのです。
開発チームと運用チームは仕事の目的が真逆になるため、このギャップを埋めることができれば面白くなると思いませんか?
このブログでは「システムへの変更を安全に実装することができれば、効率的な DevOps シナリオが実現できるんじゃないか説」を考えていきます。
ブルーグリーンデプロイメントという言葉をご存知でしょうか? 稼動している本番環境(ブルー)とは別に、同等の新しい環境(グリーン)を用意します。用意した新しい環境に新機能を実装したアプリや設定を実装し、問題なければ新しい環境をリリースして稼動させる方式のことです。
オンプレミス環境ではハードウェアの機器調達もあるため、同等の環境を準備するのはハードルが高いですが、Azure であれば同等の環境をすぐに作ることができます。
ブルーグリーンデプロイメントは Azure 環境でも実現することができます! Azure の PaaS として提供されている Web Apps の機能にある、デプロイスロットを利用することでブルーグリーンデプロイメントを実現できるのです。
デプロイスロットは、独自のホスト名を持つステージング Web サイトです。もっと簡単に言うと、現在稼動している環境と類似した環境を作るってことです。類似環境側で Web サイトの新しいコンテンツや構成を変更し、問題なければ Web サイトのコンテンツと構成をデプロイスロット間でスワップすることができます。
スワップすると、デプロイスロット内の Web サイトが現環境スロットに移動され、運用スロット内の Web サイトが新環境スロットに移動されます。
もう少し実践的な構成で考えてみましょう。
通常のシンプルな Web サーバーの構成はこんな感じですね。
この構成では Web サイトの新しいコンテンツや構成を変更する際、ロードバランサーから1台ずつ切り離して変更を加え、またロードバランサーに戻して、次のサーバーも同様にロードバランサーから切り離して・・・って作業を繰り返さないといけません。ましてや、作業中に予期しない障害が起こったりすればそれはもう大変っ!開発チームは新しい機能を追加できず、運用チームもたまったものではないですね。
デプロイスロットを使えばもっとシンプルかつ安全に切り替えることができます。
Azure ならこういった構成です。
デプロイスロット間でスワップすることで瞬時に切り替えができます。もし、切り替え後に何か想定しない問題があれば、再度スワップすることで元に戻すことができ、切り戻しも簡単にできます。
「効率的な DevOps シナリオが実現できるんじゃないか説」はちょっとできた気がしますね。
今回の記事のポイントは、
です!
いかがでしたでしょうか?
みなさんも是非お試しください。