Gaiax Engineers' Blog

Gaiaxのエンジニアブログです。 社内のエンジニア様子、イベントレポート等を発信していきます。

メールの話、またはレガシーとモダンの話

こんにちは、Gaiax技術開発部インフラチームの @xtetsuji です。この記事は Gaiaxアドベントカレンダー の7日目の記事です。

Gaiaxには2015年10月に正社員としてジョインしました。数ヶ月働いていますが、ありがたいことに居心地良く仕事させていただいています。

私は仕事では2005年くらいからPerlを使ったウェブプログラマーをしていましたが、今はインフラチームに入って社内外のサーバの保守運用を担当するインフラチームで働いています。「いままでウェブプログラマーだったのにどうしてインフラなんですか?」という質問を時々受けるのですが、一つは以前からインフラという仕事に興味があったこと、もう一つは入社時に提示された部署の中にインフラチームがあったことでした。むしろ提示された部署群にPerlを使う部署がなかったので、「Perlくらいしかマトモに書けるプログラミング言語無いんですが…」と正直に言ったくらいです。技術開発部についてはアドベントカレンダーの1日目の記事をご参照ください。

とはいえ、GaiaxはPerl企業として有名なだけあって、社内でPerlの話やPerlのプロダクトに触れる機会は結構あり、Perlの知識は今も役立っています。他のプログラミング言語に携わる場合も、Perlで得た深い知識がダイレクトに役立つことが多く、一つのプログラミング言語をしっかり勉強することは重要な事だなと感じます。

メールと私

Perlウェブプログラマーとしての経歴が長い私ではありますが、ウェブメールを開発していた会社で長年働いていたことで、一般的なウェブプログラマーよりもメールサーバであるとかメールにまつわる知識が結構付きました。

勉強会などでメールにまつわる経歴を話すと、Gmailや各種チャットツールを持ちだしてメールの未来を憂いてくれる人が多いのですが、なんだかかんだで色々な要因から今もメールは生き残っていますし(考察は割愛します)、これからも技術基盤としての比重は小さくなりつつも生き残るでしょう。

Gaiax でも当然ながら社内外のサービスにメールを使ったものは多くあり、担当の方からご相談を受けるケースがたびたびあります。良くも悪くも枯れてしまった技術がメールであり、今でも多く使われているはずなのに世間一般にはノウハウがなかなか出てこないという状況ではありますが、私が今まで得た知識を少しでも活かせればという思いです。

最近のメールトレンド

メールはインターネット基盤の根底に位置していることもあり、なかなか大きな変化を起こすことができませんが、今でも地道な改良が続いています。

メールという仕組みはメッセージの認証処理が無いという批判に対しても、歴史ある送信ドメイン認証であるSPFに続き、ここ数年で電子メール認証技術であるDKIMや、SPFのやDKIMの成果を元にしたDMARCといった技術も着実に普及しつつあります。

業務や商業でのメールといえばメーリングリストメールマガジンといったツールが今も重要ではありますが、レガシーな既存のメーリングリストメールマガジンのシステムとのDKIMとの相性の悪さをどうするかであるとか、今後はそういったことも課題に上がりそうな気もします。

PGP(GPG)やS/MIMEなどのエンドツーエンドのメール暗号化技術は大昔からあるものの、なかなか普及しません。メールの正統な置き換え技術が登場して全て解決してくれればいいのですが、それまでにこの分野も進展があるのか、気になるところではあります。昨今のメール技術はグーグル(例えばGmail)などの大企業によって普及が加速されることが多く、Gmailのサポート状況などで一気に普及が加速される未来があるかもしれません。実際、DMARCもGmailが対応するようになって注目された感もあります

オンプレからクラウドへの時代の中で Gmailデファクトスタンダード化や Amazon SES の受信対応など、この分野のクラウド進化も見逃せません。

レガシーなメールとモダンな○○

今ではメールは地味なジャンルではありますが、その非中央集権的なSMTPネットワークであるとか、もっとも原始的であり最も信頼できるキューイングシステムがMTA (Mail Transfer Agent) であるとか、メール技術には興味深い技術要素がいくつも詰まっていますし、DNS などの周辺技術も興味深いです。

「メールになんて携わっていても、次の食い扶持はないんじゃない?」といった話もよくされる(私はよく周囲の方に心配されていますね^^;)のですが、メール技術が今もまだ現役であるということ以上に、それなりに興味深い技術要素の集合体であるメール技術を習得することは、他の技術への応用も結構効くのだと感じます。私は Apache (Apache HTTP Server) とその下位技術である mod_perl を相当掘り起こしているという別の側面もあるのですが、この知識が Nginx や Plack の動作の深層を理解する上で相当役立っていることを考えると、 ある技術をそれなりに深めることは他の技術への応用にも当然つながってくる と痛感します。

多くの人の予想(?)通りメールが滅びたとしても、この知識でチャット基盤であるとかMBaaSだったりといった他のジャンルへすぐ乗り換えられるでしょうし、今も平行してウォッチはしています。

インフラチームの一員として、ウェブプログラマーが扱うより層の低い基盤技術への関心は常に持っておいて、次の将来に情報を提供できるようにしたいです。Apache などのウェブサーバ技術であれば、次のトピックは HTTP/2 あたりでしょう。

オンプレからクラウドへ、クラウドから知へ

現在インフラチームでは多数のオンプレサーバを抱えていますが、業務効率を高めるためにクラウド化を推進しています。

サーバのクラウド化によってデータセンターに行くといった手間が大きく削減されるというのは魅力的です。とはいえ、クラウド化を成し遂げつつある会社のインフラエンジニアの方の業務内容を聞いても、劇的には仕事は減らないというのは面白いものです。

「オンプレサーバが無くなったら仕事がなくなるのでは?」と(またもや?)心配されることはあっても、結局はクラウドサーバの管理業務が必要なのですね。

多くの人達の心配(?)通りに私の仕事が完全に無くなったら、地元に帰ってバスの運転手をしながら細々と生活したいと思ってはいるのですが、まだ活躍の余地はありそうです。

バスの運転手は半分冗談にしても、オンプレからクラウドへ移行することで結構な負担軽減にはなりそうです。その時に次に何をしたいかと言われたら、基礎科学などの 知のインフラ の整備を進めたいなぁというのが個人的な夢です。

定期的に話題になる技術の中にはディープラーニングなどの基礎科学寄りのトピックもあります。それを扱うことができるツールを待って成果だけを使うことは当然できますが、それの基礎を組織として理解し応用することでさらに進んだことができるのではないかということは常に考えています。

データセンターに通ってオンプレサーバを保守していた私達が、クラウドにサーバを預けて身軽になり、そしてさらに基礎技術を整備していくという未来は、個人的にワクワクさせられます。

その時に私達に必須となるツールは、何世紀も前に整備された微分積分学であったり、紀元前に発明された三角関数だったりといった 超レガシーなツール なのかなと思うと、レガシーもまた大切だという思いがさらに強くなります。