読書メモ:詳解Tomcat
スキルの棚卸のため、こちらも過去読んだ本について書きます。
Javaは、いまだに多くの企業やアプリで使われている言語です。
SI企業などでは、Spring Bootなど使いをWebシステムを開発する場合が多いと思いますし、金融などのパフォーマンスと堅牢性を求められる場面でもよく使われていると思います。
オープンソースのプロジェクトでも大規模なものでよく使われています(特にApache系: Hadoopなど)。
そのようなJavaのWebアプリケーションサーバの役割りを提供するのがTomcatです。
JavaのWebアプリ開発というだけで多くのエンジニアがその学習ボリュームに苦しんでいると思いますが、さらにTomcatだけでも嫌というほど機能が豊富にあります。
例えば、認証、マルチテナント、クラスタリングなどです。
私は、Javaに特化したエンジニアとして働いたことはありませんが、OSSのソースを改変したり、オンプレミスのTomcatで動いているJavaのWebアプリをDockerコンテナ環境で稼働させるためにDocker化したり、納品物の設定・ソースをチェックしたり、そのアプリ自体の運用管理という場面において携わりました。
例えば、冗長化を行っていると、管理において無停止でのTomcatサーバや載っているwarファイルのアップデート対応などが求められます。
そのような場面でTomcatと仲良くなる必要があります。
Tomcatは、多くのエンジニアが避けては通れない洗礼的な技術ですが、Javaも含め無学で挑むと体を壊しかねないぐらいの設定呪文の連続で、理解が大変です。
この本はリファレンス的な内容ですが、Tomcatの全容をつかむことができます。
自分の認識では、複雑になり過ぎるため、Tomcatの一部のメジャーな機能(Ajpやマルチテナント等)のみ使うことが多いように思います。
Tomcatの詳細理解が必要な状況ならば、洞窟から出れなくなる前に読んでおきたい内容です(寓話ですが、前提知識が不足しているJava系のエンジニアが数か月なにも進捗がない等が発生することがあります)。
これは余談ですが、Java系は英語表記(org.apache.catalina.realm.JDBCRealやorg.apache.catalina.tribes.ChannelSender等)が長くなる傾向があるので、英語の勉強も平行でした方が動作の把握が早いかもしれません。
業務アプリだと会社や顧客との間に責任が発生する場合があり、管理するだけでも大変ということが頻繁にありますので、Tomcatを管理することになったら最低限読んでおきたい内容だと思います。