Tagbangers Blog

Spring I/O 2017 Day 1 の概要

さてSpring I/O 2017が来月5月18, 19日にバルセロナで開催されます。 場所も昨年と同じ会場なため4ルームくらいになりそうです。 今年も多くのセッションがあり、並行して講義が始まるため 少しでも前知識をつけておくべく、概要をGoogle先生に翻訳していただきました。 日本語的にわからない点だけちょっと調整してみましたが、 原文はこちらでございますのでご確認ください。

4.29更新:スケジュールに変更点がありましたので修正しました。Day 2 はこちら

KEYNOTE - The Only Constant Is Change

by Andy Wilkinson, Stéphane Nicoll

Demo:
https://github.com/snicoll-demos/demo-webflux-streaming

Architecture Deep Dive in Spring Security

by Joe Grandja 11:00am

この講演では、認証と承認に焦点を当てたSpring Securityのアーキテクチャの概要を提供します。主な目的は、Spring Securityがどのように「カバーして」動作するかを深く理解できるようにすることです。この講演では、さまざまな認証と認可のシナリオもデモンストレーションします。

Reactor 3, the reactive foundation for Java 8 (and Spring 5)

by Simon Baslé 11:00am

Spring Framework 5.0の主なテーマは、Reactive Programmingのサポート、具体的にはReactive Streamsです。その革命を推進するために、SpringとRxJavaのバックにいる同じOSSチームが、独立したreactiveエンジンであるProject Reactorで開発しています。実際に、Spring MVCからSpring Data、Spring Cloud Streams、さらにはKafka、Netty、Cloud Foundryオーケストレーション(!)まで幅広いReactiveな新機能をサポートしています。 このセッションでは、Reactor3について具体的な例を紹介します。コールバック地獄からリアクティブの源に向かうため、バックプレッシャーに対応済で、設計がresilientな ReactiveアプリケーションやAPIを作成してテストする方法を示します。

Growing Spring-based commons, lessons learned

by Piotr Betkier 11:00am

コモンと呼ばれる内部ツールのエコシステムを設計、開発する方法は? ほとんどすべての会社でこれを見つけることができます。 しかし、要件の絶え間ない変更にもかかわらず、そのようなエコシステムが強力で使いやすいものである必要がある場合は、それほど明白な作業ではありません。

このセッションではエコシステムの構造化、API設計のカバー、依存関係の処理、機能の決定などに取り組んでいきます。 これらのすべては、AllegroのマイクロサービスインフラストラクチャのためのSpringベースのプラットフォームとライブラリを構築する経験(および間違い)から来ています。

私は内部のコモンズの拡大と一般的な有用なオープンソースライブラリの作成の両方のために、成功したツールを構築するために不可欠な実践的な知識をお知らせしたいと考えています。

Spring Boot at AliExpress

by Juven Xu 12:00pm

巨大で急速に成長するクロスボーダーb2c電子商取引ビジネスとして、AliExpressは速度と安定性を保つため、Microservicesに大きく依存しています。

この講演で私は以下を紹介します:

  1. Spring BootをAlibabaのインフラストラクチャサービスに統合する方法。
  2. BOMを使用して依存関係を管理する方法。
  3. Spring Cloud ConfigをAlibabaコンフィギュレーションサービスに統合する方法。
  4. 数多くのSpring Boot starterを書いてきた中で見つけたパターン。

Database centric applications with Spring Boot and jOOQ

by Michael Simons 12:00pm

Slide:
https://speakerdeck.com/michaelsimons/bootiful-database-centric-applications-with-jooq
Demo:
https://github.com/michael-simons/bootiful-databases

jOOQは、Javaベースのアプリケーションからリレーショナルデータにアクセスするためのいくつかの全く異なるテクノロジーの1つです。

jOOQは「Javaオブジェクト指向クエリ」の略で、PostgreSQLなどのオープンソース・データベースやOracle Databaseなどの市販製品を使用するデータベース・スキーマとは独立して、データベース・スキーマを調べるクエリー・ビルダー・フレームワークについて説明しています。ステートメントを生成するための特定言語(DSL)。

jOOQの目標は、明示的にユーザーをSQLから保護するのではなく、タイプセーフな方法で使用することです。

このセッションでは、必要なリソースをjOOQに提供するためにSpring Bootの「マジック」を促進し、高度な分析クエリをHTTP APIとして公開するために誰が利用できるのかを学びます。

途中で自動的にデータベースを移行することで、データベース中心のアプリケーションでも継続的な配信を実現する方法を学習できます。

Testing for Unicorns

by Alex Soto 12:00pm

自動テストの最も重要な利点の1つは、システムアーキテクチャを進化させるために、迅速で安全なコードリファクタリングを保証することです。主な問題は、書込みが容易で、実行が容易で、開発や実行時間に時間がかからないテストを書き込む方法です。

このセッションでは、マイクロサービスエンドポイントの検証、他のマイクロサービスへのリモート呼び出し、または非同期/リアクティブコードのような主要なUnicornsアーキテクチャーの課題に焦点を当てて、優れた(単体の)テストを作成するのに役立つ強力なJavaテストライブラリを探求します。

The Beginner’s Guide To Spring Cloud

by Ryan Baxter 2:00pm

あなたはSpring Cloudの素晴らしさについて見聞きし、自分で取り組んで試してみるときだと決めました。ブラウザからググって、Spring Cloudのホームページに到達。さてその後、どこから始めるのでしょう?各プロジェクトは何をしていますか?それらすべてを使用する必要がありますか、または選択することができますか? Spring Cloudの傘の下にあるプロジェクトの数はここ数年で非常に増加しています。あなたがSpring Cloudのエコシステムの初心者であれば、必要なものを見つけるためにプロジェクトを選別するのはかなり難しいかもしれません。この講演の最後には、Spring Cloudプロジェクトをしっかりと理解し、クラウドネイティブアプリケーションの構築方法について学び、自信を持って始めることができるでしょう。

Microservices, but what about the UI

by Marten Deinum 2:00pm

ここ数年、私たちはMicroservicesを採用してきましたが、主にバックエンドサービスのために採用されました。フロントエンドを考えるとき、私たちはほとんどの場合、モジュール化されたバックエンドを利用するモノリシックなWebアプリケーションで終わってしまいます。

この講演では、マイクロサービスをどのように活用し、フロントエンドを分割して、バックエンドとフロントエンドの両方でマイクロサービスのフルパワーを活用できるようにするかを検討します。

プログレッシブエンハンスとウェブ標準の組み合わせによるいくつかのJavaScriptテクニックの使用が、モジュラー/コンポジットUIの作成にどのように役立つかを探求します。

Front Ends for Back End Developers

by Matt Raible 2:00pm

Slide:
https://speakerdeck.com/mraible/front-end-development-for-back-end-developers-devoxx-uk-2017

フロントエンドの開発に追われているバックエンドの開発者ですか?優れたUI開発者になるために学ばなければならないすべてのJavaScriptフレームワークとビルドツールにはイライラしていませんか?もしそうなら、このセッションはあなたのためにあります!私たちは、フロントエンドからの開発(npm、yarn、Gulp、Webpack、Yeoman)のための取引のツールを探究し、HTML、CSS、JavaScriptの基礎を学びます。ブートストラップ、マテリアルデザイン、ES6、およびタイプスクリプトの複雑さに挑戦します。最後に、この新技術を使ってスピードを上げた後、どのようにして、細やかでダンディーなJHipsterプロジェクトをどのように統合できるかを示します。

Making the most of Spring boot: adapt to your environment! [WORKSHOP]

by Erwin Hoeckx 2:00pm

この2時間のワークショップでは、出席者には、開発のスピードアップのためにSpring Bootの真のパワー(内部のオートコンフィギュレーションの仕組み)を初めて体験する機会が与えられます。我々は、多くのサービスが同じアーキテクチャーとガイドラインを使用しているクライアント環境にいましたが、これまでのサービスのspringコンフィギュレーションをちらっとも見ないでにコピーすることが多いのです!ワークショップでは、カスタムの再利用可能なオートコンフィギュレーションの作成を通して、出席者にそういった機会を提供します。次のステップは、開発したオートコンフィギュレーションを利用するための独自のスターターを書く可能性と組み合わせることです。これらの2つの要素を組み合わせることで、クライアントの開発作業を最適化するためのSpring Bootの内部機構を最大限に生かす方法の完全な概要が得られます。

Deep Learning with DeepLearning4J and Spring Boot

3:00pm

この講義では、ディープラーニングの最近の進歩についてのレビューから始めます。その後、DeepLearning4J(Java用に開発された商用グレードのオープンソースの分散ディープ・ラーニング・ライブラリー)を紹介し、最初のレビューで説明されたトピックをどのようにカバーするかを調べます。次に、ニューラルネットワークによって実行されるいくつかの機能を備えたSpring Bootアプリケーションを紹介します。最後に、Spring Boot Actuatorを使用したモニタリングシステムを実装する可能性について検討します。これにより、Actuatorのエンドポイントと相互作用できる訓練されたモニタリングシステムが実現します。

Easily secure and add Identity Management to your Spring(Boot) applications

by Sébastien Blanc 3:00pm

セキュリティとアイデンティティ管理はどのアプリケーションにとっても重要な側面ですが、その実装は困難です。さらに悪いことに、それはしばしば無視され、実装されないまま、コードに侵入します。しかし、最近では、 https://auth0.com/ などのすべての認証および認可の側面をアウトソーシングおよび委任できるIdentity Managementサーバーが登場しました。これらのサーバーの中で最も有望なのは、オープンソースで柔軟性があり、あらゆる技術に依存しないKeycloakですが、それ自体のインフラストラクチャに容易に展開/適応可能です。このセッションでは、KeyCloakを漸進的かつインタラクティブな方法で発見することを提案します:0スライド、100%ライブコーディング。

当然、Keycloakが提供するSpring Boot Adapterに焦点を当てるだけでなく、Spring SecurityとKeycloakをどのように組み合わせるかを見ていきます。

New in Spring 5: Functional Web Framework

by Arjen Poutsma 3:00pm

Spring 5では、既存のアノテーション駆動型プログラミングモデルの次に、新しいファンクショナルWebフレームワークを導入しました。 この講義では、この新しいフレームワークについて説明します。そのフレームワークの使い方、目標、アノテーションモデルとの比較、その他の関連トピックについて説明します。

Container orchestration on Apache Mesos - DC/OS for Spring Boot devs

by Johannes Unterstein 4:30pm

Docker、ビッグデータ、マイクロサービスの時代には、クラスタ全体でアプリケーションを合理的に配布し、実行中のすべてのアプリケーションの概要を把握することが非常に重要です。このため、Apache MesosやDC / OSなどのクラスタ管理ソフトウェアは非常に重要であり、普及しています。このセッションでは、Spring Bootを使用してJavaベースのサービスを実装し、ローカルで、Dockerの作成を開始します。その後、私たちのサービスをDC / OSに配備し、拡張、アップグレード、監視、その他の操作を簡単に行うことができます。デモのいちおし:すばらしいUI、優れたCLI。

Building Spring boot + Angular2 apps in minutes with JHipster

by Deepu K Sasidharan 4:30pm

JHipster( https://jhipster.github.io/ ) は、Spring Boot + Angularプロジェクトを数分で作成するために広く使用されているオープンソースのアプリケーションジェネレータプラットフォームです。

JHipsterは複雑なマイクロサービスアーキテクチャに簡単なWebアプリケーションを簡単に生成できます。

JHipsterには、予想より速くアプリケーションを生成し、コード化、展開するためのツールや、ヒント、アイデアが満載されています。

DeepH KS(JHipsterプロジェクトの共同リード)が、JHipster 4.0を使用してAngular 2、Bootstrap 4、Webpackを完全に統合したSpring Boot webappを作成し、30分以内に実動させる方法を紹介します

The Future of Event-driven Microservices with Spring Cloud Stream

by Kenny Bastani 4:30pm - 5:20pm

マイクロサービスを構築する場合、状態の管理は分散システムの問題になります。 単一のモノリシックアプリケーションの境界内でトランザクションとして状態を管理できるのではなく、マイクロサービスは、さまざまなアプリケーションやデータベースのネットワークに分散されたトランザクションを使用して一貫性を管理できる必要があります。

イベントドリブンアーキテクチャは、マイクロサービスにおけるデータ一貫性の問題を解決するための重要なコンポーネントです。 このセッションでは、マイクロサービスにおけるデータの一貫性の問題と、CQRSとEvent Sourcingを含むさまざまなイベント駆動型のプラクティスについて説明します。 Spring BootとSpring Cloud Streamを使用して、これらのポピュラーなプラクティスがどのように実装されるかを見ていきます。

Hands-on reactive applications with Spring Framework 5 [WORKSHOP]

by Violeta Georgieva, Brian Clozel 4:30pm - 6:20pm

スケーラビリティとレジリエンスは、モダンなアプリケーションの重要な目標です。 このアプリケーションを実現するには、back pressureを重要な要素とする、 少数のスレッドでスケーリングするノンブロッキング、イベントドリブンの方法を使用できます。

Spring Framework 5では、これらのニーズに対応するための新しいReactiveに関するスタックが紹介されています。

このワークショップでは、Spring Framework 5.0と今後のSpring Boot 2.0を使用して反応的なWebアプリケーションを作成します

次のWebFlux機能について説明します。

  • アノテーションベースおよびファンクショナルプログラミングモデル
  • 機能的で反応的なWebClient
  • クライアントとサーバーを含む反応的なWebSocket
  • 統合テストのサポート
  • サポートされているランタイム

新しく導入された機能のスケーラビリティと利点を示すために、パフォーマンス測定も行われます。

DDD Strategic Design with Spring Boot

by Michael Plöd 5:30pm

Demo:
https://github.com/mploed/ddd-strategic-design-spring-boot

ドメイン駆動設計の最も貴重な部分の1つは、戦略的設計の概念です。これらの概念には、境界付きコンテキスト、コンテキストマップ、およびコンテキストマップに文書化されているパターンが含まれます。

この講演では、モノリシック環境をMicroservicesに移行するなどの実用的な使用シナリオと同様に、上記のトピックのすべてについて説明します。実践的にするため、様々なSpring Bootアプリケーションのアプリケーション環境でStrategic Designを取り巻くコンセプトを実演する予定です。

Awesome Tools to Level Up Your Spring Cloud Architecture

by Andreas Evers 5:30pm

Spring Cloudを立ち上げて稼働させることは簡単です。しかし、初期設定が完了したら、追加の運用上の複雑さと品質の問題に対処できるエコシステムを補完する必要があります。本番環境でSpring Cloudを何年も稼動させている間に、ドキュメンテーション、操作、テストのためのいくつかの興味深いツールを統合しました。

この講演では、Spring Cloud Contract、wiremock、saboteur、ELK、Spinnaker、Spring Boot Adminなどのツールを含む、Spring Cloudに基づく統合プラットフォームのデモをご覧いただけます。これらのツールの1つは、最近オープンソース化されたSpring Cloudマイクロサービスアーキテクチャを視覚化するためのダッシュボードです。

マイクロサービスアーキテクチャにおける高度に分散されたシステムの文書化、テスト、トラブルシューティング、および監視は困難です。オープンソースの中で、質の高い補完的なツールを見つけることはさらに困難になります。本講演では、実稼働環境でマイクロサービスを実行する上での課題を掘り下げています。

Surviving in a Microservices Team

by Steve Pember 5:30pm

クラウドネイティブマイクロサービスアーキテクチャは、ここ数年で、少なく効率的なコードベース、きめ細かなスケーリングオプション、CIとCDを可能にするなど、多くの理由でますます人気が高まっています。すべて潜在的に非常に強力な機能です。しかし、ほとんどの場合と同様に、マイクロサービスはアプリケーションの複雑さの面でトレードオフをもたらします。個々のサービスを扱うのは簡単です。全体のアプリケーション開発はますます複雑になります。おそらく、あなたの平均的なWebアプリケーションにとっては複雑すぎるでしょう。

マイクロサービスの現象に関する多くのプレゼンテーションでは、モノリシックなパターンとの比較、マイクロサービスへの移行方法について話し合っていますが、実際にその環境でどのように動くのかということはめったに聞きません。率直に言って、伝統的なモノリシックな開発経験に慣れている人にとっては脅威になる可能性があります。個々のサービスを開発するのは取るに足らないことですが、今ではチェックしておくべき数え切れないほどのサービスがあります。迷子になってしまうかもしれません…。これらすべてのサービスで、全体的な開発を指揮する人がいますか?これらのサービスがいつ、どのようにコミュニケーションを取るかに没頭しないといけなくなるでしょう。アプリケーション全体を「プラットフォーム」と呼ぶ必要があります。まもなく、開発用ラップトップでプラットフォーム全体を実行することは、困難または不可能になります。デベロッパーズの作業に取りかかり、デプロイメントパイプライン、メトリクスとロギングのまったく新しい世界について学ぶ必要があります。

パニックに陥らないでください。このプレゼンテーションでは、過去3年間Microserviceプラットフォームでの作業を学んだことについて説明します。 Microserviceチームに参加する際に期待することと、チームサイズが拡大するにつれてどのような状況になるかについて説明します。我々は、どのように重要なサービス間テスト戦略がチームの成功につながっているかを見ていきます。新しいサービスを追加したり、新しい機能を開発したり、バグを修正したりする場合の開発ライフサイクルの様子を調べます。私たちはDevOpsにちょっとばかり飛び込み、KubernetesやELKスタックのような、さまざまなメトリックと集中化されたロギングツールがどのように依存するかを見ていきます。最後に、コミュニケーション、チーム編成戦略、そしてそれらがMicroservices開発チームの生存のために最も重要なツールである可能性が高い方法について説明します。