JavaOne 2014 報告会「Javaのコミュニティアップデート」鈴木 雄介氏氏(JUGリーダ)
JavaOne 2014 報告会「Javaのコミュニティアップデート」鈴木 雄介氏氏(JUGリーダ)
資料:
http://www.slideshare.net/yusuke/javaone2014
http://www.slideshare.net/yusuke/j1jp2014-architecture
Javaとコミュニティとはどんな関係なのか。OUGLS参加報告。コミュニティ視点でのJavaOne感想。
●OracleUserGroupLeaderSummit(OUGLS)
- JavaOne直前、Oracle製品ユーザグループのリーダが集まる。MySQL等データベースも。主催はInternationaoOracleUserGroupLeader'sCommunity(IOUC)。二日間。カスタマージャニーマップとか。リージョン打ち合わせとか。二日目はセッション。
- 地域コミュニティの話し合い(RegionalMeeting)、コミュニティからの報告、ユーザグループの成長(SNS、ブログの更新、どうすれば人が集められるか、スポンサーの集め方、等のグローバルな状況)、ChiefCustomerOfficer(顧客担当役員。いかに顧客の声に興味があるか。「ラリーがやめたけどどうなるのか?」とか質問が出たとか)の話。
- コミュニティ運営は世界中で苦労。東京はメーリングリストに2000人。(本日の参加者200人。グローバル的には大きい。)
●JavaOneの感想
- サプライズは無い。(Javaに想いがある人としてはつまらない。おしゃれでトレンドの時代は終わった?)
- Oracle is not Sun。(Updateが年4回はSunではできない?)
- コミュニティを通じて顧客の声を聞こうとしている。オープニングビデオに出てくる人の半分はコミュニティの人、エヴァンジェリスト、半分はOracle、とか。
- EEはコミュニティ重視。コミュニティサーベイ。
- JJUGではJSR371に注力参加予定。(MVC)
- JavaOneではTシャツ投げのイベントがあり、Tシャツがもらえる。JavaEEの親分、RedHatの人(JavaEEに寄与)、エジプトの顧客、ブラジルJUGリーダが実施。顧客、コミュニティが協力して実施しているという意図的な演出か?
- ●これからのJJUG
- 11/15 ベルサール西新宿で実施される。JJUG CCC 2014 Fall。
- 基調講演にSimmon Ritter参戦予定。(エヴァンジェリストの一番偉い人。)
- フィードバッグは@JJUG、#jjug 。幹事募集中w
●アーキテクチャトレンド
- JavaOneアーキテクチャトレンドを紹介。
- IoT(Internet of Things。)あらゆるものがInternetに接続。あらゆることがInternetを通じて発生する。デバイスが多様化。(PC、タブレット、スマホ、ウェアラブル、自動車、Kiosk端末、家電、センサ、カード、RFID、……)。経験の一体化。多様な入り口から同じデータにアクセスする。オムニチャンネル。(買うということに関していろいろな買い方がある。)
- アプリケーション開発:サービス運営にトレンドがシフト。アプリケーション開発は仕様を決めて開発する、閉じた世界。サービス運営は動的な世界、フィードバック、人が関わりながら動かす、外的要因の影響。店頭で売る人。企画・開發・運用の協力で、Agile、DevOps、Lean。
- サービス運用のレイヤーを意識する必要がある。Data、Configuration、Code、Runtime、Middleware、OS、Virtualization、Servers、Storage、Networking(AWSサービスメニューより。AWSはうまくパッケージングされている。どういうところがMiddlewareとして抽象化されているか、とか。)。Codeだけ見ていたのではダメな時代。クラウドになってもスタックが変わるわけではない。(SaaS、PaaS等。)Middlewareに着目。ネットワーク、ロードバランサ、DB、ストレージ、サーチエンジン……。どうアーキテクチャをパターンとして組むか。
- MicroservicesArchitecture(MSA)。固有のドメインに固有のサービス。サービス同士はAPIとメッセージを介して連携。SOA:モノリシックなアプリケーションのサービス化、アプリの統合。ガバナンス、デザイン、ビジネスアーキテクチャからはじまる。MSAはサービスを小さなサービスによって構成するボトムアップな設計。9つの特徴。Componentization via Services、Organized around Business Capabilities、……。ビジネスのドメインでチーム分け。動的なところまで付き合う。APIとメッセージやりとり、分散ガバナンス、ドメインで特有の技術を取り入れて良い(いろいろな言語が入り混じっても良い)、相手のサービスが死んでいる時の設計、どんどん進化。
- Reactive(反応的な。)Event-driven、Scalable、Resilient(障害耐性)、Responsive(応答性が高い。どんなに混んでようが返す)。非同期、……
- OSGi、Play+Akka(POSのクラウドサービス提供がEJBのフロントエンドにakkaとか)。SpringBoot、Dropwizard、RabbitMQ。EoDだけではない監視、障害対応。Closureはこれからでいろいろなことやるのかな雰囲気。StandardJavaには取り入れられていない話。
- DDD(Domain Driven Design)。BoundedContext。ドメインごとに境界線をつけてそれごとに。データもドメインで管理。変化、コンテキストの境界線を見つけるのが重要。それぞれのドメインに最適な手法を。概念はそういう方向性に向かいつつある。
- アーキテクチャ。HTML5(ClientMCV)→(WebSocket/HTTP2.0)→API(Reactive/EDA)→(AMQP)→MessageQueue→(AMQP)→BusinessLogic(Domain)→(JDBC)→Database。
- Docker。コンテナ型仮想化をきばんとしたアプリケ0ション。OSからアプリケーションまでの構成情報をまとめて登録、配布。(前述したレイヤーのうちConfigurationからOSまで) Build,Ship and Run Any App, Anyware@Amazonの人。DockerEngine上にあるコンテナ、DockerFileという設定ファイル。レポジトリにプッシュすると、本番系DockerEngineがRunしてくれる。本番は何もない状態からいっぺんに。差分更新。warファイルをデプロイではなくOSからアプリをそのまま送り込むという考え方。こんごこれが重要になるかも。WindowsServerでもサポートするとか!!!(今はLinux前提。)
- NoSQL。CAP定理、ACIDをどうやっていくか。MongoDBがJavaOneでは多い? NoSQLでもRDBでもダメでまだ進化していくべき。NoSQLでググると全部考え方が違い、特徴があるので、きちんと調査して使え。
●なぜJavaか
●その他
- データは大量ではなく多様なのがポイント。常に変化する全体にどうアプローチするか。製品を安易にくくらず(NoSQLとか)、手段から始めない。テクノロジは道具。なんのためにこの道具を使うのかを考える。