見出し画像

ウェブサイト制作にもDevOpsが大切だという話

こんにちは。株式会社PRODUCTION C-TIME のエンジニアチームです。更新しやすい、壊れない、リーズナブルという特徴をもった、ロングライフ・ウェブサイト®の制作を行う、ウェブサイト制作を行う会社です。ウェブサイト制作の現場をよりハッピーな場所にするために、ウェブサイト制作会社を技術面から助けるお仕事もしています。

noteを始めてみようと、思い立ちまして、初めて記事を投稿します。そんな記念すべき第一回目のテーマは、「ウェブサイト制作にもDevOpsの考え方が大切」というテーマで書いてみたいと思います。

DevOps って?

ウェブサイト制作業に携わる人には聞きなれない言葉かもしれません。

DevOps(デブオプス)は、ソフトウェア開発手法の一つ。開発 (Development) と運用 (Operations) を組み合わせたかばん語であり、開発担当者と運用担当者が連携して協力する(さらに両担当者の境目もあいまいにする)開発手法をさす。ソフトウェアを迅速にビルドおよびテストする文化と環境により、確実なリリースを、以前よりも迅速に高い頻度で可能とする組織体制の構築を目指している

Wikipedia より

ソフトウェア開発の業界では古くて新しい考え方ですが、要約すると、「ソフトウェアのアップデートをより迅速に、品質も高く行うためにはどうするべきか」というプラクティスを総称するものです。

なぜウェブサイト制作にDevOpsが重要なのか?

お客様の視点からの課題

ウェブ制作といっても、やっていることはソフトウェア開発のミニチュア版です。当然、「ホームページの更新や修正をより迅速に、品質を高く行うためにはどうするべきか」ということを考えるのはとても重要です。平均寿命が3年~5年ともいわれるウェブサイトが、その期間中、まったく更新も修正もされないなんていうことはまずありません。

しかしながらウェブ制作業界の現在地は、なかなか厳しいものになっています。

例えば、

「WordPressカスタマイズして納品するのに、プレビュー環境がローカルにしかない」
→ 公開後に修正はいったら、その時のテストってどうするつもりなの・・・?

「FTPでファイルをアップロードして、ファイル名やフォルダ名の命名規則で管理」
→ index_仮.html, index_確認済み.html, index_20221010.html ってどれが最新・・・?

「ビジネス用途ならサーバーはとりあえず3,000円ぐらいのやつでOK」
→ サイジングの根拠は?もしサイズが合わなかったらどうするつもり?

と、こんな感じです。控えめにいってやばいです。当初想定していなかった仕様変更、とかが入ってくると、たちまち手に負えなくなります。

そして、

「前に頼んでいた制作会社と連絡が取れなくなった」

であったり、

「『担当者が退職したので、もう当時の経緯がわからないから、作り直しになる』と言われた」

といったようなことが起こります。

お客様に対して誠実でいるためには、やはり、納品後の責任に思いをはせることは、とても重要なことだと思います。

業界の中の人の視点での課題

さらに視野を広げてみます。

Googleさんの調査でDevOps Research & Assessment (DORA) というものがあります。DevOpsを実践する企業を研究し、その活動内容から、どういった能力が生産性に影響を与えるかを分析しています。

そのレポートの中でこういう記載があります。

Comparing the elite group against the low performers,
we find that elite performers have…

973x more frequent code deployments
6570x faster lead time from commit to deploy
3x lower change failure rate (changes are 1/3 less likely to fail)
6570x faster time to recover from incidents

(日本語訳)
エリートパフォーマーと、ローパフォーマーのグループを比較したとき、このような発見がありました。

(エリートパフォーマーは)
973倍の頻度でコードを更新し、
6570倍速く変更をデプロイしており、
変更に伴うエラー発生率が、1/3で、
エラー発生時の復旧速度が6570倍でした。

State of DevOps 2021

この絶望的な差はわかるでしょうか。ウェブ制作業界に所属する大多数の企業、フリーランスは間違いなくこのLow Performerグループの中でも最下層に位置するレベルです。しっかりと組織を作り、DevOpsを実践しているチームと比べると、生産性の差は10倍なんていうレベルではありません。1000倍違うのです。

これは業界の中で働く人にとっても由々しき事態です。

一つは、生産性が低いまま、苛烈な競争にさらされる中で、「低賃金で長時間労働」になりやすい点。もう一つは、技術が育たないので、ウェブ制作業界を卒業できないという点です。

ウェブ制作は、IT業界の、とくにエンジニア系職種の入り口としてはとても良い業界のはずなのですが、入ったが最後、日々の業務に忙殺され、その先もない、という「詰んだ」状態になってしまう可能性があります。

何から始めればいいの?

先ほどのDORAのなかでは、DevOpsを実現するために必要な能力(Capability)の一覧が紹介されています。この中で、ウェブ制作業界がすぐにでも取り組むべきと私が勝手に考える3つの能力を紹介します。

バージョン管理

まがりなりにもソフトウェアを開発している人が、GitやSubversionを使えないというのは、本当に不幸なことです。知っていると、知らないとでは、本当に何倍も Quality of Life が違います。(当社比)

変更履歴、変更者、変更の意図がもれなく残るのは、のちの修正のときだけでなく、制作中の生産性にも大きく影響します。例えば、「このコードうまく動かないんですけど見てもらえますか」と質問するときに、自分が編集したところだけ正確にハイライトして見せたり、「あれ?このまえ指示したこの変更、反映されてないんだけど?」っていうときに、「あ、誰々さんがこの修正をいれたときに、間違えて戻ってしまったみたいです」みたいな会話ができたりします。

いますぐ、全員がGitを習熟するべきです。ツールにこだわりはないですが、今から勉強するならGitでいいでしょう。

デプロイの自動化

WordPressにしても、Movable Typeにしても、システムです。開発環境、テスト環境、本番環境、できれば環境は3つ用意すべきです。

そのためには、各環境に、全く同じ状況を確実に再現できるようにしなければなりません。となると、自動デプロイは必須になります。

手作業でアップロードしていると「テスト環境ではちゃんと動いてたのに。。。」というなんのためのテストなのかよくわからない状況になり、結局、本番環境でテストすることになります。そんな状況で、責任のある仕事はできないと思います。

クラウドインフラストラクチャ

クラウドとウェブの相性はとても高いです。ウェブのために生まれたといっても過言ではありません。ウェブサイトは、アクセスが不安定で、急激な増減も発生します。そういったときに、必要なリソースを増やしたり減らしたりすることが簡単で、とても細かい単位で調整ができるようになります。
これはコストの削減に役立ち、アクセスの少ない月は数十円、繁忙期だけ数千円といった最適化がきくだけでなく、インフラの強度、安定性も飛躍的に高めることができます。(少しの勉強が必要ということを除いて)悪いことは何もありません。

EC2とRDSしか使ったことがなくて、「クラウドは高い!」と思われている方がいたら、とてももったいないです。とりあえず、AWSかGCPの認定資格をとりましょう。

まとめ(と、宣伝)

まとめると、「Git勉強しよう」「デプロイは自動化しよう」「クラウド勉強しよう」そうすれば、生産性が爆上がり、ウェブ制作業界で働く人もお客様もハッピーになりますよ!という感じです。

とはいっても、どこからどう手を付けていいのか・・・と思われる方はぜひご相談ください。

弊社はロングライフ・ウェブサイト・ファクトリーサービスという、ウェブサイトの製造を担う部分をアウトソースいただける仕組みを備えています。(もちろん、上で言っているようなことは実践されています。)

自社内できる体制を整えたいという企業様へは、3か月で上の三つを組織に定着させるコンサルティングプログラムのご提案も可能です。

この記事がちょっとでも役に立ったと思ってくれる方がいらっしゃれば幸いです。お読みいただきありがとうございました!

この記事が気に入ったらサポートをしてみませんか?