こんにちは、サイオステクノロジー技術部 武井です。マイクロソフトが主催するセミナー「【Java / .NET 開発者必見!】開発者の未来を支えるクラウ
セミナーの概要は、クラウド隆盛期のこの時代に、Java及び.NETアプリ開発は今後どうあるべきかという議題で、Javaのプロフェッショナルである寺田佳央さん、.NETのスペシャリストである井上章さんが登壇されました。
このセミナー、私にとって非常に有用な時間でした。
「Java」「.NET」とありますが、私がセミナーを受けた印象としては、特定の開発言語に従事する方向けのセミナーではなく、これからのソフトウェア開発全般において必要な、とても大切なことが語られていたものでした。「Java」「.NET」な人たちだけではなく、ITに関わる全ての人達に聞いてほしい、そんなセミナーでした。
オンプレミス→IaaS→PaaS、さらにマイクロサービスやミニサービスと、システムの形が目まぐるしく変遷し、多数の有用なテクノロジーが台頭する中で、ある特定のテクノロジーに固執することなく、ビジネス要件を満たすテクノロジーを選定する力が、これからのエンジニアには求められるのだと強く感じました。確かに昔は、「web層→アプリ層→データ層」みたいなN-tierなアーキテクチャを迷わず決めるみたいな感じがあったような気もしますが、今はそうはいきません。
私も最近Azure上でクラウドネイティブなアプリケーションを提案する機会が多くあります。多数のサービスが提供されるAzureの中から、最適解を探すというのは、非常にやりがいがあり楽しい作業でありながらも、アタマを悩ませるところでもあります。
Azureは年間500近い機能が追加されると聞きます。その中で、本当に必要なものを必要なところに適用するためには、小手先だけのテクニックではだめで、しっかりとした基礎力(AzureやAWSというプロダクトに依存する技術ではなく、ソフトウェア理論や通信プロトコルへの深い理解)が必須だと常々思っておりましたし、その思いは本日、確信に変わりました^^;
また、ノンブロッキング、非同期、The Twelve-Factor Appなどといった、これからのエンジニアに必要な要素も具体的に紹介されていて、非常に興味深く聞いておりました。その中で、寺田さんがご紹介されていたのは、データベースへの接続情報は、環境変数から取得すれば、本番やステージングなどの環境に依存しない実装になるというのをお聞きして、目が点になり、一所懸命メモしてしまいました。あぁ、確かに今までは、MavenのProfileでstagingとかproductionとか分けて、それぞれの環境の設定ファイルをアプリの中でベタに記述、環境ごとにビルドしてたなーと思い出し、自戒の念も込めて、ここにカミングアウトしました(´・ω・`)
エンジニアとしてのマインドセットについても語られていて、それが非常に興味深く(私がそういう話が大好きなのですが^^;)、「おぉっ」と思ったのは「学び続ける姿勢」という下りでした。確かにこれだけ目まぐるしく技術が変遷する中、それをキャッチアップするためには、常日頃、意識して「学び」を続けなければ、時代に取り残されてしまいますし、今まで以上に「学び」を意識しようと心に誓いまして、早速「プログラマが知るべき97のこと」をポチりました。読むぞー。
そして、さらに感激したのが、セミナーの中で紹介頂いた以下のサイトでした。
Azureソリューションアーキテクチャセンター
https://azure.microsoft.com/ja-jp/solutions/architecture/
CI/CD、データキャッシュなどAzureにおけるアーキテクチャパターンが満載でした。これを見て勉強して、私なりの「最適解」を出せるように頑張ろうと心に誓いました。
ということで、非常に有意義な時間を過ごせましたし、これからの自分の歩むべきエンジニア像を深く考えさせられるよいきっかけにもなりました。