採択
2022/11/27 11:00〜
Track A(#jjug_ccc_a)
Sponsor Session (Video:40min + Live:10min)
Intermediate Architecture Database Others Yes (YouTube)

LINE NEWSにおけるJava移行の5年間の歩みとこれから

森藤 賢司

LINE NEWSでは約5年の歳月をかけて、バックエンドの開発言語をPerlからJavaへ移行してきました。

本セッションでは、Javaに移行した理由や、どのように移行していったのか、また、移行途中で発生したイシューについてどのように対処したかをご説明します。

技術的負債の返済やトラブルシューティングにご興味がある方は是非ご視聴ください。

2
採択
2022/11/27 11:00〜
Track B (#jjug_ccc_b)
Sponsor Session (Video:40min + Live:10min)
Intermediate Jakarta EE Cloud JVM Yes (YouTube)

ミリ秒で起動するFullplatformのアプリケーションサーバー・Liberty InstantOnでクラウドネイティブにひろがるJakarta EEの世界

ttakakiyo 田中 孝清

Liberty InstantOnとは,Checkpoint/restore機能を追加したOpenJ9 VMと組み合わせることにより,Java EE/Jakarta EE Fullplatformに対応したアプリケーションサーバーOpen Liberty/WebSphere Libertyを超高速で起動することができる技術です。1〜数秒で起動していたLibertyの起動時間を1/10程度まで短縮することができます。現在βを提供しており,2023年の正式提供を予定しています。
GraalVMの力を借り数十ミリ秒で起動するQuarkusが人気を集めていますが,これはコンテナ技術を利用したクラウドネイティブの世界では実行環境の起動時間が本質的に重要だからです。しかしGraalVMで実行できるJavaアプリケーションには様々な制限があり,従来のJava EEアプリケーションをそのまま実行することはできません。Liberty InstantOnは,GraalVMとは別のアプローチで実行環境の起動を高速化する機能です。実行するアプリケーションの制限も少なく,Java EEのアプリケーションも実行することができます。
このセッションでは,Liberty InstantOnの詳細と,それが実現するであろうあたらしいJava EE/Jakarta EEの用途についてご紹介します。

1
採択
2022/11/27 11:00〜
Track C (#jjug_ccc_c)
Sponsor Session (Video:40min + Live:10min)
Intermediate Spring Cloud JVM Database Yes (YouTube)

Microsoft Build OpenJDK をコンテナ環境で利用する際のベスト・プラクティス

yoshioterada てらだ よしお

コンテナ環境では小さいコンテナ・イメージを作成し利用するのが良いと言うのは多くのエンジニアが理解しています。
Microsoft では Microsoft Build OpenJDK を標準で提供していますが、Microsoft に限らず OpenJDK を含むコンテナ・イメージを利用するとコンテナのイメージサイズは大きくなります。そこで、jlink コマンドを使用したカスタム JRE を作成し利用する事で小さなコンテナ・イメージを作成することができます。

しかし、しっかりと考えてコンテナ・イメージを作らなければ、非効率なイメージを作成したり、セキュアなイメージを作成する事はできません。
そこで、本セッションでは、Microsoft Build OpenJDK を利用する際のコンテナ作成におけるプラクティスをご紹介したいと思います。
ここでご紹介する内容は、まだ世の谷中に余り提供されていない情報が含まれますので、Azure 環境でコンテナの利用をご検討の方はどうぞご覧ください。

2
採択
2022/11/27 11:00〜
Track D (#jjug_ccc_d)
Sponsor Session (Video:40min + Live:10min)
Intermediate Java SE Database Yes (YouTube)

カード決済基幹システム レガシーの克服と無停止更改の挑戦

羽鳥樹

数秒の停止も許されないカード決済基幹システムの更改で、安定稼働を目指しつつ性能限界を向上させるために挑戦したことをお話しします。
・レガシーシステムあるあるの解消
・インメモリDB(Hazelcast)の導入
・新旧並行稼働でヒヤリ
・リリースしたら原因不明の処理遅延発生?
についてお話する予定です。

2
採択
2022/11/27 13:30〜
Track A(#jjug_ccc_a)
Sponsor Session (Video:40min + Live:10min)
StepUp DevOps Tools Yes (YouTube)

未来を見据えた CI/CD ~ 10年後も使える ビルド・テスト パイプライン ~

PR_CASAREAL 野中 翔太

今日では、迅速な DevSecOps サイクルを遂行するための CI/CD ツールが数多く存在し、多種多様な選択肢の中からプロダクトに適したツールを自由に選択することができます。

その一方で、エンドユーザのニーズや経営戦略におけるビジネスモデルの変化によって、現状最も適していると思われる選択をしたとしても数年後もベストな選択であるとは限りません。
そのため、プロダクトが成長し続けるためには、継続的な改善を前提とした選択をどのように行うのかが重要になります。

今回は、CI/CD にフォーカスし、パイプラインの移植性を向上させる「Dagger」を紹介します。
Dagger を使用することで、多種多様な CI/CD ツールの選択を阻害することなく、ビルド・テスト・デプロイといった普遍的なフローの再利用が可能になります。

これから CI/CD パイプライン構築をご検討されている皆さま、すでにパイプラインを構築済で継続的な活用をご検討されている皆さま、ぜひご視聴ください。

4
採択
2022/11/27 13:30〜
Track B (#jjug_ccc_b)
Sponsor Session (Video:40min + Live:10min)
Beginner DevOps Tools Yes (YouTube)

gaugeで学ぶ実行可能ドキュメントの価値

清家蒼一朗

シンプレクスでは金融取引プラットフォームサービスを提供しています。
サービスの拡大に伴い、提供機能の拡大、顧客の増加、メンバーの変遷がある中で、暗黙知を形式知に変換していかなければサービスをスケールさせられないという課題があります。

プロダクトに関する仕様や知識をドキュメントとしてストックし、それらを実際のプロダクトと乖離させないため、私達は「実行可能なドキュメント (Executable Documentation)」 の概念に着目しました。gaugeという軽量自動テストフレームワークが私達の課題解決につながると考え、試験的に導入してみた結果について紹介したいと思います。

採択
2022/11/27 13:30〜
Track C (#jjug_ccc_c)
Sponsor Session (Video:40min + Live:10min)
Others Yes (YouTube)

ユーザー数100万人規模の事業成長を止めずに、レガシーコードと戦う

be11 菊池 信太郎

即戦力人材と企業をつなぐ転職サイト「ビズリーチ」は、主にJavaで書かれており、おかげさまで10年以上成長を続けながら運営をしております。
思い返すと今から4年前、事業成長のために修正を積み重ねてきたコードは変更容易性が失われ、開発の生産性は落ちていました。しかし、事業成長は停滞させず、プロダクトを磨き続けなければならない。
そういった状況の中で、我々は「日本のキャリアインフラになる」という目標を掲げ、機能改善を続けながら、アーキテクチャの刷新を進めています。

このセッションでは、急成長を続ける中でプロダクトと組織をより強くするために、これまでどのような戦略を描いて改善してきたのかをご紹介します。まだまだ道半ばではありますが、現在大規模プロダクトに携わっている方、今後プロダクトを成長させていく方のご参考になれば幸いです。

2
採択
2022/11/27 13:30〜
Track D (#jjug_ccc_d)
Sponsor Session (Video:40min + Live:10min)
Beginner Tools Yes (YouTube)

Java開発ツールのあれこれ ~便利そうなツールを色々集めてみた~

大城 夏樹

みなさんは、Java開発でどのようなツールを利用していますか?
Java開発のツールには、
  ・統合開発環境のEclipse
  ・単体テストフレームワークのJUnit
  ・静的解析のSpotBugs
  ・CIツールのJenkins
  ・(他多数)

等々、Javaの歴史と共に多くのツールがリリースされており、
Javaのバージョンや環境に合わせて、更新されなくなったツールもあれば、
昔から現在まで進化し続けているツールも数多くあります。

このセッションでは、Java開発ツールの中から「品質・生産性向上」関連を中心に
いくつかピックアップしたツールをご紹介いたします。
みなさんもご存知の「有名なツール?」や「マニアックなツール?」等
色々集めてみましたので、
Java開発の運用でツールを検討している方やツールの知見を広げたい方等
Java開発の改善にご興味のある方は、ぜひご視聴ください。

この情報が少しでもJava開発にお役立ていただければ幸いです。

2
採択
2022/11/27 16:00〜
Track A(#jjug_ccc_a)
Sponsor Session (Video:40min + Live:10min)
Beginner Java SE Architecture Yes (YouTube)

組織と技術の両輪で開発を加速させるkintoneチームの取り組み

itchyny 濵田 健

kintoneは2011年のリリース以降、開発チームが90名になるまで成長し、コードベースも肥大化を続けてきました。しかし、組織もコードベースもモノリシックなまま成長を続けてきたため、メンバーの認知負荷やコミュニケーションコストの増大などによって、開発体制がスケールしない問題を抱えていました。今後、開発を加速かつスケールさせるために、領域専任のチーム体制への移行に挑戦しています。技術面でも、開発を加速するための改善に取り組むプロジェクトを、エンジニアが起案し、チームを発足して進められるようになりました。JUnit 5へのアップデートや、Joda-TimeからJSR-310 Date and Time APIへの移行、さらにフロントエンドのクラス構文への移行など、多岐に渡る改善プロジェクトが進行しています。組織面と技術面の両輪で開発を加速するための取り組みについてお話しします。

3
採択
2022/11/27 16:00〜
Track B (#jjug_ccc_b)
Sponsor Session (Video:40min + Live:10min)
Beginner Tools Others Yes (YouTube)

Jaegerによる分散トレーシングの実践~マイクロサービスのボトルネック解消~

_u77_0 内田 理絵

マイクロサービスアーキテクチャの普及とともに、分散トレーシングも広く知られるようになってきました。分散トレーシングの導入を検討されている方も多いのではないでしょうか。
本セッションでは、マイクロサービスアーキテクチャを採用したシステムにおける分散トレーシングの実践例をご紹介します。
マイクロサービスのシステムは処理の複雑さから、ボトルネックやバグの特定が難しく、ログの集約だけではデバッグや監視しきれません。
セッションで取り上げるプロダクトは、リアルタイムな画像処理システムで、高速なレスポンスが求められます。遅延のボトルネックを特定し、早期に改善を図ることが重要でした。そこで、分散トレーシングソリューションのJaegerを利用して効率的かつ早急なボトルネック改善を目指しました。
分散トレーシングソリューション導入の利点や工夫など、ノウハウの一部を共有します。

2
採択
2022/11/27 16:00〜
Track C (#jjug_ccc_c)
Sponsor Session (Video:40min + Live:10min)
StepUp Jakarta EE Architecture Yes (YouTube)

Red Hat Application Foundationsから学ぶアーキテクチャー入門

megascus 瀬戸 智

なんでもかんでも1台のサーバーに入れて巨大なシステムを構築していないでしょうか?
システムが巨大化するとレスポンスタイムの低下や、開発速度の低下等のいくつかの問題が発生するようになります。
Red Hatではアプリケーションを小さく作り複数のサーバーに分割してシステムを構築することを推奨しています。
そうすることで、不必要なレスポンスタイムの低下や開発速度の低下を防ぐことができるようになります。
しかしながら、サーバーを複数台に分割する場合は1台ですべてを作る場合に比べていくつかの注意点が必要になる場合があります。

Red Hat Application FoundationsはJava EEを実装するJBoss EAPやMicroProfileを実装するQuarkusやそのほかのミドルウェア、インテグレーション製品のどれを使っても良いというサブスクリプションになります。
このセッションではRed Hat Application Foundationsに含まれる製品やそのほかのOSSを使用して、どうやってアプリケーションを分割していくのかと、分割する上での注意点について説明します。
Red Hatの製品はすべてがOSSでベースとなるアップストリーム製品(≒github上等でOSSライセンスで公開されているリポジトリ)があります。
Red Hatのサポートが不要な場合はサブスクリプションを購入しなくても使用することができます。
ですので、Red Hatのサブスクリプションを購入したことがない方、購入する予定のない方でも聞くことができます。

すでに巨大なJava EEサーバーで構築されているシステムを抱えている方や、これからシステムを分割していきたい方、1台のサーバーでしか作ったことがない方の知識の助けになると思いますのでぜひご参加ください。

1
採択
2022/11/27 16:00〜
Track D (#jjug_ccc_d)
Sponsor Session (Video:40min + Live:10min)
StepUp Cloud Tools Database Yes (YouTube)

クラウド時代のデータアクセス仮想化のススメ

hornets79 疋田圭介

クラウドデータ連携、とくにツール・サービスからの連携には従来のバッチ連携に対してリアルタイム連携のニーズが増えています。
リアルタイム連携で増え続けるSaaS やクラウドDB を扱うために「データアクセス仮想化」がホットです。
rデータアクセス仮想化とは?を実例を引きながら解説します。実際にCData Connect Cloud というツールでSalesforce データやTwitter などのクラウドデータのSQL Server への仮想化についてもデモします。