【仕事の舞台裏】プログラミング環境の作成について

 

ありがたいことに僕らはたくさんのWordPress案件をご依頼いただき、仕事をこなしています。そうした中で最近、開発環境を改善しましたので、本日はそのお話をさせていただきます。

WordPressはサーバーソフトの上の「PHP」というプログラムで動作するため、まずはサーバー環境を用意し、PHPが動作する環境を作成しなくてはならず、またその管理がとても面倒な作業でした。

例えばMacOSなどのUnix系OSであれば、OS自体にサーバーソフトやPHPなどが最初からインストールされているので、WordPressを動かす「だけ」ならそこまでハードルは高くありません。

しかしながらWordPressを納品するお客様の環境は十人十色で、サーバーの環境が全く同一のものは存在しませんし、動作しているPHPのバージョンなども異なってきます。
例えば、僕らが使っているPHPのバージョンが「5.4」だったとして、この「5.4」でしか利用出来ない機能を使ってWordPressの開発してしまったとすると、PHPのバージョンが「5.3」のお客様のサーバー上では、そのWordPressは正しく動作しません。

そんな状況が納品の際に発生などしようものなら、納品直前にプログラムの見直しと調整が発生してしまい、作り直しやチェックのコストが2倍以上かかってしまうことがあります。
また、通常1つのPCには1つのバージョンしか導入できないため、バージョンを切り替えるための仕組みを導入したりするのですが、PHPのバージョンは切り替えられてもサーバーの環境を同じにすることはできなかったり、結局のところ完全にお客様のサーバーを再現するのは難しい状況でした。
そこで最近、そんな状況を改善する画期的なソフトウェアを導入しました。
それが「VirtualBox」「Vagrant」というツールです。

VirtualBox

VirtualBoxはPCやMacOS、Linuxなどに仮想環境を作成するためのソフトで、「VMWare」や「Parallels」といった同系統のソフトも多種存在しているので、ご存じの方も多いのではないでしょうか?

コレを使えば例えばMacOSの中でWindowsやLinux等の別OSを動かすことができ、1つのアプリケーションのような感覚で他のOSを扱うことができます。
※Mac使いの人は割と常識のようなソフトですね。

このソフトウェアを用いることで、お客様の環境と全く同様の環境を、開発用PCの中に簡単に用意することが出来るようになりました。

また、PCの容量が許す限りいくつでも別の環境を作成することができるため、別のお客様の環境を用意するのも非常に簡単で、これにより「バージョンが違って動かない!」といった状況を減らすことが出来ました。

Vagrant

Vagrantというのは、簡単に言えばOSの設定を「設定ファイル」にまとめて、その設定ファイルに従ってVirtualBox上に自動的にOSをセットアップしてくれる、3年ほど前に発表された画期的なソフトウェアです。

たとえば、Aさんがこの設定ファイルとVagrantを使って「CentOS」というサーバーに利用されるOSをセットアップしたとします。

その後、Bさんが同じ設定ファイルとVagrantを使って「CentOS」をセットアップすると、このAさんとBさんがセットアップした「CentOS」は、全く同じ構成で起動するため環境の差異がありません。

これがどういうメリットをもたらすかというと、開発チームの3人が同じお客様の案件に対応するときなどに、設定ファイルを共有するだけで、全く同様の環境を3人のPCに立ち上げることができます。

VirtualBoxを使うことでお客様のサーバーと同じ環境を用意することが出来るようになりましたが、開発チームで同じ環境を共有しようとすると、今まではそれぞれが「手動」で対応していたため、完全に同じ環境を作成したつもりでも、1人の環境ではソフトが抜けていたり、バージョンが微妙に違ったりと、「人為的なミス」が入り込んでしまう余地があったのです。

このVagrantはそんな「人為的なミス」が入り込む余地を無くし、完全に開発チームが、同じ環境で開発をできるようになりました。

いまではこの2つのツールを使うことで、お客様の環境を社内で完全に再現することができるようになり、また開発チーム毎に全ての環境を統一することができるようになったため、バージョンの違いなどによるトラブルを全く無くすことが出来るようになりました。

開発環境も日進月歩ですので、開発する対象にばかり目を向けるのではなく、たまには開発をするための土台にも目を向けないと、いつまで経っても古いやり方から抜けられず、無駄なコストがかかってしまう場合があります。

常に自分たちの環境が最善であるかどうかを見直しながら、より価値の高い仕事ができるように努力することを心がけております。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ABOUTこの記事をかいた人

インスパイアデザインの取締役兼、エンジニア。WordPressのテーマ・プラグイン開発を年間100件以上、独自のフレームワークを用いて開発をしています。