JJUG CCC 2018 Spring に行ってきました
先日開催されたJavaのコミュニティイベントJJUC CCC 2018 Spring のセッションレポートです。 ちなみに今回で4回目の参加ですがレポートするのはこれが初めてです。
- JavaでWebサービスを作り続けるための戦略と戦術
- Concourse CI入門 ライブ環境構築&ビルド
- 収益を支える中規模アプリケーション開発奮闘記
- Apache Kafkaとストリーム処理
- 古いフレームワークでもマイクロサービスアーキテクチャにしたい
- Spring Boot on Kubernetes : Yahoo!ズバトク事例
- DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
- まとめ
JavaでWebサービスを作り続けるための戦略と戦術
www.slideshare.net
2-3回に分けて詳しく話を聞きたい位のボリュームでした。時間が足らなくなって駆け足になるくらいでしたね。
将来を見据えた開発環境と開発文化をアップデートした話は自分がやってみたいことの事例として参考に、そして励みになりました。
特に「組織にテストを書く文化を根付かせるには年単位の取り組みが必要だ」という意見には、新しい文化を取り入れてすぐに結果を求められ苦い経験したこともあり同意しかありませんでした。
Concourse CI入門 ライブ環境構築&ビルド
最近CI/CDについて考えたり、直前の仕事でBambooに触れることが多かったので、登壇者のうらがみさんからは「CI/CDとは?みたいな話はせず、concourseの話をするだけ」と事前に言われたものの他のツールも気になったので聴きました。
concourseの"パイプラインの設定はYAML"、"ビルド実行はコンテナ"というシンプルなアーキテクチャーに潔さみたいなのを感じました。
(concourseのHPにもそんな感じな事が書いてありますね。Concourse CI - About)
話を聴き終わった直後は「BambooのSpecsやDockerRunnerみたいなものね」位にしか考えられませんでしたが、この後のセッションや後日アーキテクチャーを考える機会が会った時に「実行環境がコンテナなら、BambooやJenkinsで複雑な構築や設定して動かすよりもconcourseならサクッと作れるんじゃ無いか?」と考えるようにはなりました。
収益を支える中規模アプリケーション開発奮闘記
www.slideshare.net
今回自分が聴いたセッションの中で一番”Java”って感じでしたが、事例で書かれていたコード例とかは自分には難しくて理解できないものも多かったです。
仕事の仕方やコードレビューの観点など、Javaのコードの特性を理解した上での"正論"で進めている感じがして凄く理想的に思えました。
特にコードレビューの観点は、静的解析ツールで検出できないレビューでチェックするべき内容に着目されていることがわかりました。
今回の話で実践されている内容を自分の周りでもできるようになりたいです。
Apache Kafkaとストリーム処理
仕事でRabbitMQに触れそうだったので、メッセージングのことをよくわかっていないこともあり、聴きました。
感想としてはメッセージングそのものを理解していない自分には難しかったです。資料もコードが多くて目で追うだけでも大変でした。(もともと初心者向けのセッションではないことを認識した上で聞いたわけですが。)
なのでセッションを聞いた直後は内容の半分以上わかりませんでしたが、その後自分なりにメッセージングについて調べ始め、少しずつセッションの内容とリンクしだした部分もあるので、セッション資料共々今後の勉強の参考にさせていただきます。
古いフレームワークでもマイクロサービスアーキテクチャにしたい
半期ごとのフリュー(株)さんのアプリ開発現場のアップデートを聞かせてもらえ、シリーズ化しているみたいなところが面白いですし、現場がすごくカイゼンやチャレンジしている感じが羨ましくもありました。
内容としては大きく「Netflix Eurekaを利用したSpring Cloud Configの参照方法」と「Apache KafkaによるSpring cloud Stream」の2つの話に分かれていました。 順番が前後しますが、Apache Kafkaについては直前のセッションでも聞いていた流れがあり、こちらのセッションでは使い方事例にもなったので、おぼろげながらメッセージングやStreamについて少し理解できた気がしました。
また前者の方ですが、個人的に”何が理由で古いサービスからSpring Cloud Configが参照出来なくて”、"なぜ、Netfilix Eurekaを利用すれば問題が解消するのか"が、自分がこの辺をよく知らないこともあってわかりませんでした。。
Spring Boot on Kubernetes : Yahoo!ズバトク事例
www.slideshare.net
「KubernatesとDockerでSpringBootアプリケーションを動かす」という、JavaでWebアプリを開発していた身としては興味のあるテーマでした。
まずはKubernatesに変えると同時に、サービス全体をクラウドネイティブなアーキテクチャにシフトするという点は、前職で携わってたレガシーなシステムを同じように考えていながら実現できなかったこともあり事例が聞けてとても勉強になりました。
開発フローで気になったことがあり、大したことでは無いのですがソースコードのPull Requestとマージの前にDocker registryにDocker imageをpushしている理由は何だったんだろう。
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
www.slideshare.net
最後はこれもまたDDDやマイクロサービス化など自分が前職でチャレンジしたかったことだったのと、会社のお仕事関係でジャストシステムと関わる機会があったこと、以前のJJUG CCCで聞いて後でやってみた「Java100本ノック」が面白かったので聴きに行きました。
「最後の時間だし空いてるだろ」と思って少しノンビリしていたら超満員で、自分もそうですがみなさんこのテーマにすごく興味があるんだなと実感しました。
DDDを使ってマイクロサービス化する過程で、ロバストネス分析が出た時は「ユースケース駆動開発実践ガイド」で、シーケンス図を作ったり、classを分割するときに役立った経験があったので、とても興味深かったです。
余談ですが、この間仕事でちょっとECSに触れる機会があって「便利なものがあるんだな」って思ってたらセッションで「ほんとはFargateにしたかったけどまだ日本には無かった」って話を受けてその場合で検索して「さらに便利なものが!」なんて言ってたら、このブログを出すまでの間にAWS Summitで東京リージョンにリリースが決まったみたいですね。AWS色々と早いですね。
ユースケース駆動開発実践ガイド (OOP Foundations)
まとめ
全体の感想
- 難しい内容も多かったが、いつか近いうちに参考になる時が来るって感じられることばかりだった。
- 自分が手を出してみたいと思ったことを実践された話などが聞けて勉強になりました。
- 「アジャイル」「DevOps」って言葉がほとんど出てこなかった。最早それらは当たり前なことで、それが前提のセッションが多かったのかもしれない。
運営
- これだけ大きなコミュニティーイベントで目立ったトラブルも無く、凄く楽しめました。
- 混雑緩和対策も前回から更に良くなったと感じました。(通路での混雑感がほとんど無かった。)
- セッションごとの人の混雑もほとんどなく、事前のアンケートでタイムテーブルを決められたことが良かったのかなと思いました。
そのほか