はじめに
こんにちは、id:FM_Harmonyです。前回はPostgreSQLのターミナルコマンドであるpsqlについて、記事を作成しました。
さて、先日12/15(土)に日本Javaユーザグループ(以下JJUG)が開催するカンファレンスである「JJUG CCC 2018 Fall」が開催されました。
http://www.java-users.jp/ccc2018fall/#/www.java-users.jp
休日を利用して参加してきましたので、今回は私が参加したセッションについて簡単に書いてみました。参加されなかった方にも会場の雰囲気など伝わりましたら嬉しいです。
各カンファレンスの感想
Pivotal認定講師によるSpring Framework 5.1ハンズオン!
コードを書きながらSpring Framework5.1の機能を学んでいくというセッションでした。
事前に準備を行っていなかったため当日は準備作業から始めていたのですが、会場の回線に問題があったのか必要なソフトのDL等に時間がかかってしまいました。チューターの方に助けていただき何とか環境構築はできたのですが、そこまでで時間が終わってしまったのが残念です...
その後、空いた時間でハンズオンを進めていたのですが、xmlではなくJavaのコード上でアノテーションを利用してアプリケーションの設定を行えるところがSpringの特徴なのかなと感じました。コードベースで設定が行えるため、JUnitを使って正しい設定ができているか確認できるようになっていたのが興味深かったです。まだ、全項目完了していないので、今年中には全部終わらせたいと思います。
IBM CloudとKubernetesでSpring Bootのマイクロサービスを簡単に!
タイトル通り、IBM Cloud上のKubernetesへSpring Bootで作成したアプリケーションのデプロイやデータベースの構築を行う方法についてのセッションでした。
IBMライト・アカウントを作成してFree プランのKubernetesを使うことで、無料で使える環境を用意することができるということでした。アプリケーションのデプロイ等もコンテナ化しておけばコマンドを叩くだけで処理を行えるようなので、難易度自体は高くないのかなと思いました。個人的にAWSを利用していますが、KubernetesやDockerに対する理解を深めるのであれば、IBMクラウドの無料で利用できる範囲で学習するのもアリかと思いました。
今こそStream API入門
個人的に、今回参加した中では一番面白いと感じたセッションです。 セッションのポイントは、
- Stream APIは複数のデータに対して繰り返し行う処理を簡潔に記述できる
- 中間処理と終端処理に分けて考えると分かりやすい
- 慣れないうちはfor文で記述してからStream APIに置き換えると理解しやすい
という点かと思います。 何となく今までStream APIに対して取っ付きにくさを感じていたのですが、セッションを聞いた結果「分かった」気になれました。機会があれば、実務でも使ってみたいと思います。
Migration Guide from Java 8 to Java 11
Java8からJava11への移行する際の注意点に関するセッションでした。
アプリケーションで利用しているJavaのアップデートに携わる機会があったので、参加してみました。が、正直なところセッション内で登場する単語は初耳なものが多く、いま私が持つ知識では内容を吸収しきれなかったと感じました。
セッション内で印象に残ったのは、「findbugsなどコミュニティが終了してJava11に対応できないものがある」という点と「Java11では原則リフレクションが禁止になった」という点です。前者については、業務で使う機会もあるためJava11アップデート時にポイントになるかと感じています。後者については、携わっているアプリケーション内でリフレクションを利用している箇所があったはずなので、将来的にJava11に移行する際に苦労するのではないかと感じました。
オイラ大地の18年拡張し続けているECサイトをSpring Bootとk8s on Azureでマイクロサービス化する事例
品質維持やリリースサイクルの高速化、スケーラビリティのために自社サービスのマイクロサービス化を行っているという内容のセッションでした。
- 一度にすべてのサービスを移行させることはできないので、段階的にサービスを移行する
- 自社クラウドとクラウドサービスと複数のクラウドを利用した構成にした
- モノリシックな部分に依存しない範囲については、DBを徐々に分割していく
という点をポイントに挙げていました。
また、ログ検索を目的とした新規サービスの作成やバッチ処理、利用者が閲覧するのみのマスタ関連の処理は外に出しやすいため、マイクロサービス化の第一歩として行ったというお話もありました。
Scala とマイクロサービスでつくる証券会社とスタートアップ
金融商品を取り扱うサービスでScalaを利用していることと、マイクロサービス化する理由等に関するセッションでした。
Scalaに関しては疎いのですが、Scalaが持つ型宣言機能によってJavaよりもコードに意味を持たせることができるという点が印象に残りました。型宣言によりコンパイル前にエラーを検知しやすいというお話もされていました。
また、マイクロサービス化については、サービスを分けることによって障害の影響範囲を小さくすることができる他にも、開発チームをサービスごとに分けることで対象の業務について知識を深めやすくなるという点が印象的でした。
おわりに
いかがでしたでしょうか。
Javaのカンファレンスといいつつ、マイクロサービスに関するセッションにばかり参加してしまいました。ただ、個人的な感想ではありますが、マイクロサービスに関するセッションが多かったことからも「やはり今のトレンドはマイクロサービスなのだ」と改めて感じました。
また個人的な意見ですが、マイクロサービス化の事例などで課題や目的として挙がっていた事項は、楽楽精算とも重なる点があるように感じました。
将来的に今回のセッションで得た知識を使うことがあるかもしれないので、時間のある時に改めてセッションの内容と関連する知識を自分の中でまとめておきたいと思います。
おまけ
懇親会で出されたお寿司が美味しかったです。
参考資料
- JJUG CCC Fall 2018 資料まとめ - Qiita
- 執筆時↑に上がっていなかったもの