「Spring in Summer ~夏なのにSpring」に行ってきました
「Spring in Summer ~夏なのにSpring」に行ってきました。
Java向けのアプリケーションフレームワークである「Spring Framework」のユーザカンファレンスです。
開催概要
- 日時
- 2015/08/28(金)10:00-18:30
- 場所
- 株式会社リクルートホールディングス@グラントウキョウサウスタワー(丸の内)
- 主催
- 参加者数
- 約300人
- hashtag
- 資料
会場雰囲気
所感
- 以下のキーワードが盛り上がっていました。
- Spring Boot
- SpringFramework界隈で活発なSpringプロジェクト
- 簡単にアプリ開発、デプロイを実現するための軽量プロジェクト。
- \boot!/ \boot!/ \boot!/ といった風潮。
- 個人的には本開発/運用に耐えられるか要経過観察、事例調査。
- Microservices
- James Lewis/Martin Fowlerが提唱しているソフトウェアのアーキテクチャパターン
- ざっくりいうとサービスを一枚岩で作らず、それぞれ独立したサービスの組合せで実現すること(独立=開発的に。組織的に。デプロイ的に。運用的に。)。
- SOAとの違いは組織構成やデプロイなどにまで切り込んでいる所。
- それぞれのサービスを作るのにSpring(特にboot)が最適だよーという流れ。
- 発表内でもあったように、この思想に沿って厳格に作るというよりか、大規模にサービスをつくろうとすると自然となっていくアーキテクチャ構成。メンバー内で認識合わせのためのアーキテクチャ指針とかをこれに置き換えられそう。
- 逆にSpring Boot/Microservices以外の発表が少なく、ベタなSpringの話(事例とか工夫とか新機能とか)が少なかった(;´Д`)(実はそれが一番聞きたかったりする)
- Spring Boot
セッションメモと雑記
オープニングセッション
- 日本Springユーザ会 会長さんの話
- 「Java EE」は最近生意気だ。それを懲らしめるための会。
- Seasarはもう敵ではない。
- (所感)
- 「今回の見所は入館カードが返却されるか、Josh Long(ブラジルから今朝7時成田到着)が無事会場に到着するか?」・・・こういったカンファレンスの運営、大変そう(;´Д`)
マイクロサービスアーキテクチャの設計
- 日本Javaユーザーグループ 会長さんの話
- Micro Service Architecture(MSA)の全体説明。
- MSAはデザインコンセプト。
- 分散配置。
- サービスをサービスで構成する。サービス間はメッセージ(HTTPやRPC)で統合/協働させる。
- 持続性と分権
- ソフトウェア開発から、ITサービス運営へ。
- 分散配置。
- MSAは新しい理想論ではなく現実論。
- プラットホームを先に決めたら楽だが、技術のロックインとのバランスを考えると必要がある。
- Springはあるゆる粒度で関係性を管理できる。
- (所感)
- Springについてはほとんど関係なかった。
- MSAについては全く知らなかったので大変勉強になった。
- www.slideshare.net
大規模エンタープライズにおける、最新のフロントエンド・アーキテクチャへの挑戦
- モバイル化で技術要件レベルが落ちたが、最近フロントエンドへの要求が高まった来ているので、フロントエンドの技術(フレームワーク)を最新化する必要がある。
- Springはjarを入れるだけ適用できるのでいい。
- エンタープライズでもUXへの投資が始まっている。フロントエンドを最新化する必要がある。
- JFSをJavaScriptで動かすと予期せぬ動きをする場合がある。詳しくないとjQueryが使えない。
- シンプルにリクエストマッピングができた。
- 例外の処理。Filterで例外が置きても、後ろに流してそこで例外処理するようにした。
- コントローラーからコントローラーを呼び出す機能を追加した。
- クライアントMVCを適用すると、開発の分担が30%(jQueryのみ)から、85%にできた。#オフシェア時。
- Javaと一貫性がある書けるようにTypeScriptを使った。
- (所感)
- 最近フロントエンドの仕事のやりつつあるので、Springと他のテンプレートの位置づけ関係がはっきりできた。
The Macro of Microservices(キーノート)
- Josh Long(Spring Boot、Spring Integration、Spring Cloudのコントリビュータ)の発表。
- 以下の本の著者
Cloud Native Java: Designing Resilient Systems With Spring Boot, Spring Cloud, and Cloud Foundry
- 作者: Josh Long
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2016/01/25
- メディア: ペーパーバック
- この商品を含むブログを見る
- Microservicesの全体説明
- Microservicesは継続的デリバリーとかアジャイル、DevOpsについての議論の中で生まれた。
- Microservicesは複雑さ、難しさがある。既存の使えるものは使ったほうがいい(車輪の再発明は良くない)。
- あとで調べる
- Pivotal:Spring Frameworkの提供元(?)
- Netflix:動画ストリームサービスのこと。Microservicesの事例として紹介。
- speakerdeck.com
- (所感)
- またまたMicroserviceについて勉強になった。
- Josh Long、おちゃめ(*´Д`*)
Josh from Pivotal is here in Japan and has given the keynote for "Spring in Summer". @starbuxman #jsug #jsug_sis pic.twitter.com/i3IxzUdqvP
— Kenji Motohashi (@movmov) August 28, 2015
Spring DIと大規模プロジェクト、春は来るのか本当に?
- HUEでのSpringトラブル事例
- component-scan、Autowiredを使っていたらアプリの起動が遅くなった話。
- モジュール性の担保。インターフェースと実装を分離するなど。
- scanしないようにした。独自にbean管理をするようにした。
- アノテーションベースDIからJavaベースDIへ。
- @Importもちゃんと使う
- 人が増えると知識が薄まる。成果物(ドキュメントやjarなど)が多くなる。
- (所感)
- DIする際の工夫/こだわりがすごかった。DI/コンテナの仕組みをちゃんと理解していない泥沼にハマりそう(;´Д`)
The Bootiful Application
- Josh Longの発表
- Spring Bootを使ったアプリ開発のライブコーディング
- 以下のサイトでプロジェクトのひな形を作れる。便利そう。
- Bootを使うと、LinkRelation的なプロトコルにも簡単に対応できる(HATEOASとかHALとか)。
- /infoには独自の情報を出せる。例えばビルド時のパラメータなど出力するなど。
- アプリ起動時に発行されたパスワードでSSHログインする仕組みがある。
- /healthcheckは200 OKといった情報だけでなく、バックエンドの情報も返すようにしたほうが何かと役に立つ。その仕組みがBootにはある。
- (所感)
- コーディングのスピードがえげつないほど速かった(*´Д`*)
- 最近流行りのテンプレートはthymeleaf?
【前半】Spring Framework/Boot/Data徹底活用~Spring Data Redis編~ / 【後半】 Spring適用のアンチパターンとベストプラクティス(仮)
- リクルートは社内標準フレムワークとしてSpringを全社的に採用することを決定した。
- Confluence(Atlassian)もspringを使っている。
- IntelliJがデフォルトでサポートしているフレームワークはSpringだけ。
- 【前半】SpringからRedisを使う話。
- 単一構成のRedisならライブラリを取り込むだけですぐに使える。
- Cacheも簡単に使える。
- ただRedisがクラスター化されているときつい。ライブラリがサポートしていない。
- 【後半】これまでSpringを利用していたことで得られた成功/失敗の事例集
- DB初期化のフレームワーク作った。
- あとで調べる
- @Primary
- www.slideshare.net
- (所感)
- Spring内のモジュール構成の整理がわかりやすかった。Springに沿った構造にすることが綺麗に作るために大切。
Spring Bootをフル活用した継続的デリバリーの実践
- Spring Bootを使った社内開発フレームワーク作成の話
- 困り事
- アーキテクチャが異なるとと学習コストが高くなってしまう。
- 独自の構成があると対応者が限られてしまい問題解決が遅れる。
- 以下の資料も参照
- 共通の開発手法の確立。
- フレームワークの選定はコミュニティとメンテナンスの活発さで選んだ。
- プロジェクト自動生成とデプロイのためのスクリプトも提供した。
- 標準フレームワークの是非はよく話に上がる。
- 使わなくてはいけないという強迫感があるので、利用を強制しないこと。
- よく使うデータ構造、ログ機能などはライブラリがあると楽なはず。
- あとで調べる
- (所感)
その他
- お昼は丸の内で厚切り牛たん(´・~・`)b 1300円