Submit Search
Upload
マイクロサービスにおける非同期アーキテクチャ
•
Download as PPTX, PDF
•
6 likes
•
49,096 views
ota42y
Follow
Rails Developers Meetup #5 https://techplay.jp/event/631406
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 105
Download now
Recommended
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2022-03-05 YAPC::Japan::Online 2022
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
Microservices Meetup vol.8 Lightning Talks Battle! で話した内容です https://microservices-meetup.connpass.com/event/99190/
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
LayerX社内の定例でつかった資料です。
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
アプリ「ニュースパス」をマイクロサービスで開発してみた泥臭い体験談です。
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
2020/03/03 に富士通本社で行われた、富士通TechLiveに発表資料です。 コロナウィルスの影響で、リモート発表になりましたが、当日は800人以上の方に同時視聴していただきました
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニアの技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXk
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
@PHPerKaigi 2022
Recommended
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2022-03-05 YAPC::Japan::Online 2022
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
Microservices Meetup vol.8 Lightning Talks Battle! で話した内容です https://microservices-meetup.connpass.com/event/99190/
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
LayerX社内の定例でつかった資料です。
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
アプリ「ニュースパス」をマイクロサービスで開発してみた泥臭い体験談です。
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
2020/03/03 に富士通本社で行われた、富士通TechLiveに発表資料です。 コロナウィルスの影響で、リモート発表になりましたが、当日は800人以上の方に同時視聴していただきました
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニアの技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXk
テストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
@PHPerKaigi 2022
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
シリコンバレーのスタートアップを数多く取材する中で気付いた「シリコンバレーにおけるディシプリン(規律)の存在」や「General Electric(GE)やIBM、SAPといった老舗企業が必死になってシリコンバレーのスタートアップを真似している理由」、そして「日本企業がイノベーションを実現するための処方箋」について解説します 詳しく知りたい場合は「GE 巨人の復活」をご覧下さい。 http://www.nikkeibp.co.jp/atclpubmkt/book/17/P55110/ 今後の記事は「シリコンバレーNext」をご覧下さい。 http://itpro.nikkeibp.co.jp/siliconvalley/
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
JJUG ナイトセミナー 「メッセージングミドルウェア特集」のRabbitMQの発表資料です。 https://jjug.doorkeeper.jp/events/65028
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
XP祭り2017のセッションのスライドになります。 http://xpjug.com/xp2017-session-a5-1/ 元ネタは以下です。 http://i2key.hateblo.jp/entry/2017/05/15/082655 ※CCPMの表記について一部誤解を与える部分がありましたので、表記を削除いたしました。 2017/09/21 0:27
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
アプリケーションの分割のアプローチ ●4つのアプローチ - ビジネスファンクション - 動詞/ユースケース - 名詞/リソース - 境界づけられたコンテキスト ● トランザクションの分割 - パイプライン化 (VETRO) - コーディネート (Saga) - 状態更新の非同期化 ( Event History - State Materialize - Domain Specific Query )
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~ (Kubernetes Meetup Tokyo #33 発表資料) 2020/08/26 NTT DATA Yasuhiro Horiuchi
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
年単位でトラブルを起こさないための考え方についてまとめました。システムがトラブル続きだとビジネス速度がどんどん落ちていくので、気をつけましょう。
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JJUG-CCC 日本Javaユーザーズグループクロスコミュニティカンファレンス 2018/12 登壇資料です。
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
Takuya Tejima
TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発 Forkwell Library https://forkwell.connpass.com/event/277304/
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
2019/01 JSUG勉強会の資料です。 この資料でDisっているのはJPAではなく、 ・何も考えずに「標準だから」というだけでJPAを選ぶ人 ・OSSに全くコントリビュートせずにフリーライドする人 です。
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
こわくない Git
こわくない Git
Kota Saito
「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
kamakura.go #5 の発表資料です
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 河合 宜文(株式会社Cysharp) こんな人におすすめ ・C#を極めたいエンジニア ・パフォーマンスに興味のあるエンジニア ・プログラミング言語マニア 受講者が得られる知見 ・structに関する深い知識 ・パフォーマンス向上のヒント ・C#の新しい文法と活用法 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
JJUG CCC 2018 Spring の発表資料です。 #jjug #ccc_a8
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
201708-26(土)Redmine大阪 第17回勉強会@大阪 今回のテーマは”Embed”(埋め込み)。 Redmine にカレンダーやら動画やら埋め込んでみたところ、 意外にうまくやれて 捗ったのでご紹介。
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
Nobuhiro Sue
Spring Boot on Kubernetes / OpenShift
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
de:code 2017
Spring CloudはJava開発者がマイクロサービスサービスアーキテクチャを構築するために必要となってくる様々な技術要素やデザインパターンを用意しています。本セッションではSpring Cloudを用いることで簡単に利用可能となる機能群のうち代表的な次の機能を説明し、使いどころ/利用例を紹介します。 * Service Discovery * Circuite Breaker * Message Driven Microservice * Distributed Tracing など コード例はJavaですが、考え方はフレームワークに寄らないため、Javaユーザー以外の方もご参加ください。最後にPivotal Cloud FoundryとSpring Cloud Servicesを使って、マイクロサービスを簡単に運用するデモをご覧いただきます。 受講対象: マイクロサービスでシステム構築を検討中の開発者の方はぜひご参加ください。 製品/テクノロジ: DevOps/Microsoft Azure/OSS/Web 開発/アーキテクチャ/クラウド/クロス プラットフォーム/コンテナー/Docker/開発言語/事業継続/運用/マイクロサービス 槙 俊明 Pivotalジャパン株式会社 シニアソリューションズアーキテクト
More Related Content
What's hot
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
シリコンバレーのスタートアップを数多く取材する中で気付いた「シリコンバレーにおけるディシプリン(規律)の存在」や「General Electric(GE)やIBM、SAPといった老舗企業が必死になってシリコンバレーのスタートアップを真似している理由」、そして「日本企業がイノベーションを実現するための処方箋」について解説します 詳しく知りたい場合は「GE 巨人の復活」をご覧下さい。 http://www.nikkeibp.co.jp/atclpubmkt/book/17/P55110/ 今後の記事は「シリコンバレーNext」をご覧下さい。 http://itpro.nikkeibp.co.jp/siliconvalley/
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
JJUG ナイトセミナー 「メッセージングミドルウェア特集」のRabbitMQの発表資料です。 https://jjug.doorkeeper.jp/events/65028
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
XP祭り2017のセッションのスライドになります。 http://xpjug.com/xp2017-session-a5-1/ 元ネタは以下です。 http://i2key.hateblo.jp/entry/2017/05/15/082655 ※CCPMの表記について一部誤解を与える部分がありましたので、表記を削除いたしました。 2017/09/21 0:27
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
アプリケーションの分割のアプローチ ●4つのアプローチ - ビジネスファンクション - 動詞/ユースケース - 名詞/リソース - 境界づけられたコンテキスト ● トランザクションの分割 - パイプライン化 (VETRO) - コーディネート (Saga) - 状態更新の非同期化 ( Event History - State Materialize - Domain Specific Query )
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~ (Kubernetes Meetup Tokyo #33 発表資料) 2020/08/26 NTT DATA Yasuhiro Horiuchi
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
年単位でトラブルを起こさないための考え方についてまとめました。システムがトラブル続きだとビジネス速度がどんどん落ちていくので、気をつけましょう。
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
JJUG-CCC 日本Javaユーザーズグループクロスコミュニティカンファレンス 2018/12 登壇資料です。
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
Takuya Tejima
TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発 Forkwell Library https://forkwell.connpass.com/event/277304/
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
2019/01 JSUG勉強会の資料です。 この資料でDisっているのはJPAではなく、 ・何も考えずに「標準だから」というだけでJPAを選ぶ人 ・OSSに全くコントリビュートせずにフリーライドする人 です。
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
こわくない Git
こわくない Git
Kota Saito
「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Java/Spring Boot/MyBatis/Thymeleafを使った、ドメイン駆動設計のサンプルコード。ビジネスルールに焦点を合わせ、計算モデルで複雑さを整理し、型指向のプログラミングで実装する、その具体例。
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
kamakura.go #5 の発表資料です
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
NTT Tech Conference 2022 での「Dockerからcontainerdへの移行」の発表資料です https://ntt-techconf.connpass.com/event/241061/ 訂正: P2. . 誤: ``` Ship docker run -it --rm alpine Run docker push ghcr.io/ktock/myalpine:latest ``` 正: ``` Ship docker push ghcr.io/ktock/myalpine:latest Run docker run -it --rm alpine ```
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
2019/9/25-6に開催されたUnite Tokyo 2019の講演スライドです。 河合 宜文(株式会社Cysharp) こんな人におすすめ ・C#を極めたいエンジニア ・パフォーマンスに興味のあるエンジニア ・プログラミング言語マニア 受講者が得られる知見 ・structに関する深い知識 ・パフォーマンス向上のヒント ・C#の新しい文法と活用法 Unityのイベント資料はこちらから: https://www.slideshare.net/UnityTechnologiesJapan/clipboards
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
JJUG CCC 2018 Spring の発表資料です。 #jjug #ccc_a8
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
201708-26(土)Redmine大阪 第17回勉強会@大阪 今回のテーマは”Embed”(埋め込み)。 Redmine にカレンダーやら動画やら埋め込んでみたところ、 意外にうまくやれて 捗ったのでご紹介。
What's hot
(20)
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
WayOfNoTrouble.pptx
WayOfNoTrouble.pptx
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
例外設計における大罪
例外設計における大罪
こわくない Git
こわくない Git
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Viewers also liked
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
Nobuhiro Sue
Spring Boot on Kubernetes / OpenShift
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
de:code 2017
Spring CloudはJava開発者がマイクロサービスサービスアーキテクチャを構築するために必要となってくる様々な技術要素やデザインパターンを用意しています。本セッションではSpring Cloudを用いることで簡単に利用可能となる機能群のうち代表的な次の機能を説明し、使いどころ/利用例を紹介します。 * Service Discovery * Circuite Breaker * Message Driven Microservice * Distributed Tracing など コード例はJavaですが、考え方はフレームワークに寄らないため、Javaユーザー以外の方もご参加ください。最後にPivotal Cloud FoundryとSpring Cloud Servicesを使って、マイクロサービスを簡単に運用するデモをご覧いただきます。 受講対象: マイクロサービスでシステム構築を検討中の開発者の方はぜひご参加ください。 製品/テクノロジ: DevOps/Microsoft Azure/OSS/Web 開発/アーキテクチャ/クラウド/クロス プラットフォーム/コンテナー/Docker/開発言語/事業継続/運用/マイクロサービス 槙 俊明 Pivotalジャパン株式会社 シニアソリューションズアーキテクト
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
de:code 2017
メインフレーム上に構築された「モノリシック」な基幹システムは、まだまだ現役です。こうした基幹システムをリプレイスする際に、複数のアプリケーションを「疎結合/高凝集」に組み合わせるいわばマイクロサービス的な設計が目指されることはよくあります。その時に重要なのは、システムをどう分割し、統合するかという方針です。 本講演では、こうしたコンテキストでドメイン駆動設計をとりあげ、アーキテクチャに関する具体的な意思決定をする方のために、有益な考え方を示すことを目指します。 受講対象: システムのマイクロサービス化を実現したい開発者の皆様、特にどのように開発をすすめていけば良いかわからない方はぜひご参加ください。 和智 右桂 株式会社ハピネット 情報システム部 新基幹開発チーム
マイクロサービスアーキテクチャの設計 - JUG2015
マイクロサービスアーキテクチャの設計 - JUG2015
Yusuke Suzuki
2015/8/28に開催された「Spring in Summer ~ 夏なのにSpring 」での講演「R1-2 マイクロサービスアーキテクチャの設計」の講演資料です。
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
de:code 2017 DO07
マイクロサービスで、 一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、 一歩先行くImmutable Infrastructureを目指そう
Takashi Abe
近年マイクロサービスの議論が盛り上がってきています。かつてはSOAの文脈でも語られてきた、サービス化されたシステムアーキテクチャの考え方は、アプリケーションとインフラの設計が一貫していることの重要性を高める結果となりました。特に、モダンなインフラの考え方の一つである、Immutable Infrastructureを実現するに当って、ステートレス・ステートフルの完全な分離など、考慮するポイントがいくつか出てきます。本セッションは、そうしたマイクロサービスやSOAの考え方が、モダンなクラウドのインフラ設計に与える影響について詳しく解説します。
要求の変化とマイクロサービスアーキテクチャ
要求の変化とマイクロサービスアーキテクチャ
Yusuke Suzuki
要求開発アライアンスの2016年5月セミナーでの資料です。
Light and shadow of microservices
Light and shadow of microservices
Nobuhiro Sue
JTF2017 session presentation for "Light and shadow of microservices"
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
Yusuke Suzuki
2017年5月31日に行われたAWS Dev Day Tokyo 2017での講演「クラウド時代のマイクロサービス設計徹底解説!」改め「マイクロサービス化設計入門」の講演資料です。
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
2015年11月28日に行われたJJUG CCC 2015 Fallにておこなわれた講演「マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に」の資料です。
[Cloud OnAir ] #03 No-ops で大量データ処理基盤を簡単に構築する
[Cloud OnAir ] #03 No-ops で大量データ処理基盤を簡単に構築する
Google Cloud Platform - Japan
次のビジネス時代を生き抜くために BigData は欠かせないものとなりつつあります。 GCP のビッグデータ製品である、BigQuery や Cloud Dataflow、Pub/Sub を使って No-Ops でデータ処理基盤を構築する方法を紹介します。
Viewers also liked
(11)
JSUG20171027-spfingboot-k8s-ocp
JSUG20171027-spfingboot-k8s-ocp
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
マイクロサービスアーキテクチャの設計 - JUG2015
マイクロサービスアーキテクチャの設計 - JUG2015
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスで、 一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、 一歩先行くImmutable Infrastructureを目指そう
要求の変化とマイクロサービスアーキテクチャ
要求の変化とマイクロサービスアーキテクチャ
Light and shadow of microservices
Light and shadow of microservices
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
[Cloud OnAir ] #03 No-ops で大量データ処理基盤を簡単に構築する
[Cloud OnAir ] #03 No-ops で大量データ処理基盤を簡単に構築する
Similar to マイクロサービスにおける非同期アーキテクチャ
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
ota42y
API Meetup Tokyo #25 AIの民主化を推進する日本のAPI提供者 ~ クラウドベンダーだけじゃない ~ https://api-meetup.doorkeeper.jp/events/72837 で発表した資料です
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
スタートアップスキルカレッジ第3弾
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
特定のプロジェクトがあり、要件定義をし概要設計をする。 それがアーキテクトの仕事だと思われがちですが、大きな視点を持ち様々な課題を自らリードして解決していく立場としても絶好のポジションです。 このセッションでは、Mobage オープンプラットフォームの立ち上げから、 グローバルプラットフォーム展開、さらには mixi 社との共同プラットフォーム構築、 JavaScript SDK と認証技術の組み合わせによる新しい HTML5 プラットフォーム構築をアーキテクトという立場でリードし続けた立場から、技術選択のみならず実現したい事に対する俯瞰的な捉え方を、これまでの実例と共に紹介し、アーキテクトという役割について、お話します。
インドのインターネット環境との戦い方
インドのインターネット環境との戦い方
健一 辰濱
iOSDC 2018 LT 資料
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
2016-08-11 セキュリティ・キャンプ全国大会2016 クラウドセキュリティ基礎 最新版はこちら ⇒ http://www.slideshare.net/nekoruri/20161126-cloud-security-aomori
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
就職に強いプログラミングスクール「DIVE INTO CODE(ダイブ・イントゥ・コード)」 ★ホームページ : https://diveintocode.jp/ ★電話番号 : 03-5459-1808 10:00-22:00まで営業中!!(木曜休業) 人材紹介会社と連携した、本気のカリキュラムと手厚いサポートで、わずか6ヶ月でRailsエンジニアに転職することをご支援しております。 ご入校の無料説明会を開催しております。お気軽にお電話ください。
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Masakazu Muraoka
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
Takashi Sogabe
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
2017-06-22 Rails Developers Meetup #2
クラウドセキュリティ基礎
クラウドセキュリティ基礎
Masahiro NAKAYAMA
最新版はこちら ⇒ http://www.slideshare.net/nekoruri/20161126-cloud-security-aomori 2016-11-06 セキュリティ・ミニキャンプ in 北海道 2016 #seccamp
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
拓将 平林
LPF REV UP 2020 での発表資料です。 https://linedevelopercommunity.connpass.com/event/188903/
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
真吾 吉田
2018.4.18 JAWS-UG横浜で話した資料です
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
3,000名が受講したRailsの登竜門講座。経験ゼロでもインターネット上に自作のWebアプリケーションを公開することができます。 本セミナーの講義動画と手順は、どなたでもご覧いただけます。 【講義動画】 https://youtu.be/dkWipixPCJs ※ DIVE INTO CODE公式チャンネルにもぜひご登録をお願いします! 【手順】 https://diver.diveintocode.jp/seminar_documents プロのエンジニアになるために挑戦する人が、チャンスをつかめる場をつくる。 DIVE INTO CODEでは、コースの卒業後に卒業発表会を開催しています。 エンジニアへの就職やキャリア相談、 サービス内容に関するご質問がありましたら、ぜひ一度カウンセリングにお越しください。 https://diveintocode.jp/briefings DIVE INTO CODE 東京校 〒150-0044 東京都渋谷区円山町28番4号大場ビルA館 cs@diveintocode.jp
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
2014年12月4日(木) 株式会社リンク(東京都赤坂)18:00 ~ 21:00 ビール片手に!ゆくトレ くるトレ 2014 - 2015 発表資料
最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ
dsuke Takaoka
11月CC研で話した内容です。 ほぼ箇条書きで並べただけなので、口頭でのフォローが無いと誤解されるかも。。参考程度にとどめておいてください。
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
わんくま同盟 名古屋勉強会 #48 のセッション発表資料。 http://www.wankuma.com/seminar/20190525nagoya48/
Devとopsをつなぐchat ops
Devとopsをつなぐchat ops
ikikko
くららカフェ#5 桃の節句(旧暦) @party ~Webインフラを語り合おう~ http://clara-cafe.connpass.com/event/13586/
Livlisのcakephp事例
Livlisのcakephp事例
Masahiro Saito
株式会社kamadoが開発したLivlisのcakephp事例のスライド。
Introduction to NetOpsCoding
Introduction to NetOpsCoding
Taiji Tsuchiya
NetOpsCodingで発表したイベント導入資料です。 https://atnd.org/events/70253
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Yosuke TOMITA
2015/9/1 AWS Startup Tech 夏のLT大会 at dots. でお話した内容です。 http://eventdots.jp/event/567770
Similar to マイクロサービスにおける非同期アーキテクチャ
(20)
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
インドのインターネット環境との戦い方
インドのインターネット環境との戦い方
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
クラウドセキュリティ基礎
クラウドセキュリティ基礎
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
Devとopsをつなぐchat ops
Devとopsをつなぐchat ops
Livlisのcakephp事例
Livlisのcakephp事例
Introduction to NetOpsCoding
Introduction to NetOpsCoding
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
More from ota42y
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
ota42y
技術書典非公式アフター(10/08)で話した内容です https://techbook-and-ethanol.connpass.com/event/97154/
なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
ota42y
表参道.rb #39 〜技術書典〜 で発表した内容です https://omotesandorb.connpass.com/event/102572/
Rails上でのpub/sub イベントハンドラの扱い
Rails上でのpub/sub イベントハンドラの扱い
ota42y
Shinjuku.rb #63 で発表した資料です
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
ota42y
https://shinjukurb.connpass.com/event/91172/ の発表資料です。
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
ota42y
Shinjuku.rb #60 の発表資料
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
ota42y
Ruby FFIについての解説 Shinjuku.rb #50 PyCallを中心に機械学習やFFIなどを勉強しよう https://shinjukurb.connpass.com/event/58526/ の発表資料です
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
ota42y
Railsを使ってサービスの成長を継続させるぞ!(FiNC×みんなのウェディング) https://mwed.connpass.com/event/49711/
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
ota42y
Shinjukurb 45
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
ota42y
2016/10/18 Ginza.rb 第40回 の発表資料です
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
ota42y
ABpro2015の発表資料
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
ota42y
情報科学若手の会2015の発表資料 動画を含めると容量が酷いことになるので外してあります
More from ota42y
(11)
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営を同時にやった話
なぜか技術書典5で 3サークルの運営をやってた話
なぜか技術書典5で 3サークルの運営をやってた話
Rails上でのpub/sub イベントハンドラの扱い
Rails上でのpub/sub イベントハンドラの扱い
goroutineはどうやって動いているのか
goroutineはどうやって動いているのか
bootsnapはどれくらい早くなるのか
bootsnapはどれくらい早くなるのか
ruby-ffiについてざっくり解説
ruby-ffiについてざっくり解説
FiNCでのOSSとのつきあい方
FiNCでのOSSとのつきあい方
CarrieWaveについてざっくり解説
CarrieWaveについてざっくり解説
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
身近なサイバー攻撃から身を守る
身近なサイバー攻撃から身を守る
HCI分野の紹介と最新研究
HCI分野の紹介と最新研究
Recently uploaded
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
ビジュアルプログラミングIoTLT17資料です。
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
Yuuitirou528 default
深海探査を行うロボットについてざっくりと初心者向け?に解説したおはなし会の資料です。 https://x.com/INHI_UV2B/status/1796712335765369263
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Masatsugu Matsushita
下記の会の感想 https://kichijojipm.connpass.com/event/315276/presentation/
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
K Kinzal
Solana Developer Hub Online #6 https://lu.ma/evx8jtpi
Recently uploaded
(7)
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
マイクロサービスにおける非同期アーキテクチャ
1.
ota42y 2017/09/28 Rails Developers Meetup
#5 マイクロサービスにおける 非同期アーキテクチャ
2.
• ota42y • ゲームクライアントエンジニア →サーバエンジニアに転職(1年ぐらい前) •
rubyとかgoとかC++とか • twitterとかgithubとか 自己紹介
3.
• twitter凍結したらこちらへ – https://ota42y.com/ –
ネタとして入れたら今朝になって現実味が… あとでツイート全削除かな… – 凍結されそう
4.
5.
6.
• 外から見たときは一つのアプリ • 内部的にはドメイン事に別々のサーバ microservice ダイエット家庭教師 FiNCモール FiNC
アプリ lifelog 法人向けchat ranking main
7.
• 各サーバは独立しており、API経由で連携 • 非同期に連携処理も多数含まれる •
巨大かつ複雑になりやすい→知見 microservice ダイエット家庭教師 FiNCモール FiNC アプリ lifelog 法人向けchat ranking main
8.
9.
処理の完了を待たずに次の処理を実行し、 メインの流れとは別にその処理が進行する 今回の文脈では待ち時間を減らすためにす ぐレスポンスを返し、別プロセス等で処理 非同期処理
10.
今回は特にJob Queueの話 Mail Server Rails user
11.
今回は特にJob Queueの話 Mail Server Rails user
12.
今回は特にJob Queueの話 Mail Server Rails user
13.
今回は特にJob Queueの話 Mail Server Rails user
14.
今回は特にJob Queueの話 Mail Server Rails user Oh!
15.
今回は特にJob Queueの話 Mail Server Rails user
16.
今回は特にJob Queueの話 Mail Server Rails user Slowly…
17.
今回は特にJob Queueの話 Mail Server Rails user Queue
18.
今回は特にJob Queueの話 Mail Server Rails user Queue
19.
今回は特にJob Queueの話 Mail Server Rails user Queue
20.
今回は特にJob Queueの話 Mail Server Rails user Queue Fast!
21.
今回は特にJob Queueの話 Mail Server Rails user Queue
22.
今回は特にJob Queueの話 Mail Server Rails user Worker Queue
23.
今回は特にJob Queueの話 Mail Server Rails user Worker Queue
24.
今回は特にJob Queueの話 Mail Server Rails user Worker Queue
25.
今回は特にJob Queueの話 Mail Server Rails user Worker Queue
26.
今回は特にJob Queueの話 Mail Server Rails user Worker Queue
27.
今回は特にJob Queueの話 Mail Server Rails user Worker Queue Oh!
28.
今回は特にJob Queueの話 Rails Queue Job Queueを抽象化したActiveJobは Railsに標準搭載 Rails環境での非同期処理では一般的な構成
29.
• microserviceでは非同期処理を多用する • 非同期処理の移り変わりとともに紹介 microservice ダイエット家庭教師 FiNCモール FiNC
アプリ lifelog 法人向けchat ranking main
30.
牧歌的時代 〜何でもdelayed_jobに突っ込む〜
31.
delayed_job https://github.com/collectiveidea/delay ed_job Railsで最も簡単に導入できるJob Queue
32.
delayed_job https://github.com/collectiveidea/delay ed_job • RDBのテーブルをQueueとして使う • 1
job=1 recordとして保存する • RDB以外を用意・運用する必要無い(redisとか) • 優先度や時刻指定など一通りの機能がある • RDBに書き込むのでJobは永続化される FiNCでは最初期から採用
33.
delayed_job delayメソッドに続けて本来のメソッドを呼ぶだけ • 関連する情報がシリアライズされてDBへ • workerがデータを取り出して復元・実行
34.
便利(o゜▽゜)
35.
しかしある日…
36.
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 🔥🔥🔥突然の大障害🔥🔥🔥 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
37.
delayed_jobが遅くなる アプリのメインのサービスで障害が… delayed_jobがjobを実行するのが急激に遅くなる queueが処理されずにどんどん積まれていく 1時間たっても非同期処理が実行されず、 先に進めなくなるユーザや表示が変に…
38.
\(^o^)/
39.
delayed_jobが遅くなる delayed_jobではjobの同時実行を防ぐ機構がある 制御用カラムにworkerの識別子を書き、 カラムのupdateに成功(=実行権の取得) した場合に処理を実行し、同時実行を防いでいる
40.
MySQLの例 こんなupdate文で実行権を取得して処理を実行 (delayed_jobに:optimized_sql を設定した場合)
41.
MySQLの例 実行可能なjobの中で、最も優先度の高いやつ1つ に対して自分の識別子をupdate 成功したら実行権を取得したとしてjobを実行する 他workerが実行権を得るとwhere句から外れる そのため、実行権を重複して得ることはない
42.
地獄への急行列車 indexが効かないwhere句の絞り込み&ソート →テーブルロック
43.
地獄への急行列車 indexが効かないwhere句の絞り込み&ソート →テーブルロック whereの条件は、queueのだいたい全部が対象 (未実行のqueueが対象なので) →未実行jobが増えるとupdate時間が延びる →実行権取得に時間がかかり、処理速度の低下
44.
地獄への急行列車 処理速度が低下し 処理速度 <
増加速度 になる →未実行jobが増加しさらに処理速度が遅く →無限に遅くなる負のループに
45.
地獄への急行列車 処理速度が低下し 処理速度 <
増加速度 になる →未実行jobが増加しさらに処理速度が遅く →無限に遅くなる負のループに 処理のほとんどがupdate待ち →並列数を増やしても待ってるworker増えるだけ
46.
地獄への急行列車 処理速度が低下し 処理速度 <
増加速度 になる →未実行jobが増加しさらに処理速度が遅く →無限に遅くなる負のループに 処理のほとんどがupdate待ち →並列数を増やしても待ってるworker増えるだけ よって打つ手がなくなる
47.
😇 😇 😇
48.
最大のボトルネックに 新規ユーザ登録や既存ユーザの行動に応じて、 非同期のjobが作られる →ユーザ数が増えるとjobが詰まりやすくなる
49.
最大のボトルネックに 新規ユーザ登録や既存ユーザの行動に応じて、 非同期のjobが作られる →ユーザ数が増えるとjobが詰まりやすくなる サービスが成長すると障害が起きる
50.
😱なんとかせねば😱 その場は緊急対応で乗り切った
51.
大移行時代
52.
非同期処理の整理 何も考えずにdelayしていたので、 そもそもdelayを使って何をしているかを整理
53.
非同期処理の整理 何も考えずにdelayしていたので、 そもそもdelayを使って何をしているかを整理 • 巨大な処理 対象データが多い 複雑な処理をしている • 複数サービスとのデータ連携
54.
非同期処理の整理 何も考えずにdelayしていたので、 そもそもdelayを使って何をしているかを整理 • 巨大な処理 対象データが多い 複雑な処理をしている • 複数サービスとのデータ連携
55.
巨大な処理
56.
巨大な処理 クリティカルかどうかで場合分け • クリティカル • ユーザ作成時の初期化処理 •
再実行が難しい処理 • クリティカルではないもの • フォロー数の再計算 • 検索用キャッシュのアップデート • 簡単に再実行可能なやつ
57.
巨大な処理 重要度に応じて処理わけ • クリティカル • 信頼度が重要なので引き続きdelayed_job •
クリティカルではないもの • 後からの再実行が容易 • 基本的に別バックエンドへ移動 • delayed_jobのjob数を減らす
58.
バックエンド選定 delayed_jobからの変更先を選定 gemの安定度や経験等を元に以下の2つが候補に • sidekiq • resque
59.
バックエンド選定 delayed_jobからの変更先を選定 gemの安定度や経験等を元に以下の2つが候補に • sidekiq • resque
60.
sidekiq redisをバックエンドに使うJob Queue • スレッドベース •
redisなので並列度は上げやすい • リトライ機構あり 他のmicroserviceで採用していたり、 社内に経験者がいる的なのでこれ
61.
sidekiq 移動が簡単で、大量にjobが発行されるものから sidekiqを利用するように変更していく たまたまActiveJobを使っていなかったので、 delayed_jobをActiveJob(+sidekiq)に書き換える (手動で1つずつ)
62.
😆
63.
ここまでのまとめ • 巨大な処理 • クリティカルなもの •
安全なバックエンド ( delayed_job ) • クリティカルでは無いもの • 並列処理に問題がないもの( sidekiq ) • delayed_jobのjob数増加を抑える • 複数サービスへの連携
64.
イベントアーキテクチャ時代
65.
ここからの話 • 巨大な処理 • クリティカルなもの •
安全なバックエンド ( delayed_job ) • クリティカルでは無いもの • 並列処理に問題がないもの( sidekiq ) • delayed_jobのjob数増加を抑える • 複数サービスへの連携
66.
複数サービスへの連携 microserviceではあるサーバの変更に対応して、 別サーバが対応する処理を行うことが頻繁にある ダイエット家庭教師 FiNCモール FiNC アプリ lifelog 法人向けchat ranking
main
67.
複数サービスへの連携 microserviceではあるサーバの変更に対応して、 別サーバが対応する処理を行うことが頻繁にある
68.
複数サービスへの連携 更新時に他サービスに何をさせれば良いのか? を更新側が知る必要があり、結合度が高い
69.
🤔
70.
やってることの図解 Lifelog Ranking StepsCampaign Point Steps Update
71.
イベント駆動アーキテクチャ これはどうもイベント駆動アーキテクチャっぽい クライアントがリクエストを発 行して処理を依頼する代わりに、 クライアントがある事態が起 こったことを通知し、他者が何 をすべきかを知っていることを 期待します。他の誰かに何をす べきかを指示することは決して ありません。 Sam Newman著,佐藤直生監訳,木下哲也訳(2006)『マイクロサービスアーキテクチャ』,オライリージャパン.
72.
複数サービスへの連携 Lifelog Steps Update Event • 条件を満たすと対応するEventを送信
73.
複数サービスへの連携 Lifelog Ranking StepsCampaign Point Steps Update Event • 条件を満たすと対応するEventを送信 •
受け取り側はEventを受信したら処理する
74.
複数サービスへの連携 Lifelog Ranking StepsCampaign Point Steps Update Event • 条件を満たすと対応するEventを送信 •
受け取り側はEventを受信したら処理する 送信側と受信側の結合度が減る
75.
良さそう(o゜▽゜)
76.
具体的な内容
77.
イベント送信 AWSのSNS(Simple Notification Service)を利用 (Pub/Subメッセージングしてくれるサービス) 送る側はSNSにデータを送るだけ Lifelog AWS
SNSSteps Update
78.
イベント受信 AWSのSQS(Simple Queue Service)を利用 (簡単なqueueシステム) Lifelog
Ranking AWS SNS AWS SQSSteps Update
79.
イベント受信 AWSのSQS(Simple Queue Service)を利用 (簡単なqueueシステム) SNSをsubscribeすると、 eventがキューにコピーされる Lifelog
Ranking AWS SNS AWS SQS Steps Update
80.
イベント受信 SNSは複数のSQSに同時にコピーしてくれる 各サービスは自分のSQSを作り、SNSをsubscribe Lifelog Ranking Point AWS SNS AWS
SQS Steps Update Steps Update
81.
イベント受信 あらたにeventを受け取りたい場合も、 SNSをsubscribeすれば良く、送信側の変更は不要 Lifelog Ranking StepsCampaign Point AWS SNS AWS
SQS
82.
性能も良い SQSは • 大量にキューを積んでも遅くならない • 意図的に消さない限り消えない ので安心ヽ(・∀・)ノ
83.
性能も良い SQSは • 大量にキューを積んでも遅くならない • 意図的に消さない限り消えない ので安心ヽ(・∀・)ノ 一度10万ぐらいjobを積んだけど、 並列度は簡単に増やせるので大丈夫だった (delayed_jobなら死んでた)
84.
🍺🍺🍺優勝🍺🍺🍺
85.
…
86.
SNS/SQSには癖がある • 冪等である必要がある • SQSは1回以上取り出す事を保証 •
同じjobが2回実行される場合がある • 実行済みの時、並列実行の時に気をつける • 従量課金 • 送ったデータ数・サイズ課金 • 大量に送りまくる使い方だと課金死
87.
SNS/SQSには癖がある • SNSが遅い • 同リージョンで40msぐらいかかる •
delayed_jobやsidekiqと比べると遅い • もっと早いという噂も聞くので設定かも • 依存設定がAWSのコンソールに集中 • 変更履歴無い • 依存関係がわかりにくい
88.
統一フォーマットが必要 自由に送るとフォーマットが違って実装が大変 ある程度フォーマットを決めてやりとり ダイエット家庭教師 FiNCモール FiNC アプリ lifelog 法人向けchat ranking
main
89.
統一フォーマットが必要 こんな感じのフォーマットを決めて運用
90.
両方移行しないといけない 良さそうだがmicroservice間の通信の事なので、 送信側・受信側共に移行する必要がある Lifelog Ranking AWS SNS
AWS SQS
91.
両方移行しないといけない 良さそうだがmicroservice間の通信の事なので、 送信側・受信側共に移行する必要がある →簡単に移行できないとみんな移行しない Lifelog Ranking AWS SNS
AWS SQS
92.
やりとりはgem化 移行を楽にするために • SNSへ送信 • SQSから取得 •
イベントのフォーマット統一 のためのgemを作った https://github.com/ota42y/rising_dragon
93.
やりとりはgem化 移行を楽にするために • SNSへ送信 • SQSから取得 •
イベントのフォーマット統一 のためのgemを作った https://github.com/ota42y/rising_dragon Lifelog Ranking AWS SNS AWS SQS Steps Update
94.
欠点 <<< 利点 気をつける所はあるが、利点の方が大きい マイクロサービスではかなり良いアーキテクチャ 癖に対してもいくつか対応中 •
イベントをまとめて送りSNS/SQSの費用削減 • AWSの情報を元に依存関係の見える化サービス • 設定ファイルからSNS/SQSの自動設定
95.
まとめ 非同期処理はサーバでは超重要 FiNCでは処理に応じてバックエンドを使い分ける 適切に使い分けると特製をうまく使えてべんり
96.
まとめ • イベントっぽいもの • イベント駆動アーキテクチャ •
SNS/SQS • イベントでは無いもの • クリティカルなもの • 安全なバックエンド • (delayed_job) • クリティカルでは無いもの • 並列処理に問題がないバックエンド • (sidekiq)
97.
98.
おまけ
99.
delayed_jobの障害対応 障害が起きてしまった場合は、 • 手動でDBの行の一部をファイルに書き出す • 書き出した行を削除 •
queueの件数が減るのでまともに動く • queueが減ってきたら待避したのを戻す と、頑張れば何とかなります(つらい)
100.
delayed_jobいつまで使うの いちおうdelayed_jobと使い分けています サービスが1000万ユーザとかになった場合、 delayed_jobの障害が簡単に起きる状態になる なので最終的には全て捨てる事になりそう… (当面は併用が続く)
101.
どこまでイベントにするか イベントはいつ実行されるか確実ではない 同期的に実行したい場合は、 event/sidekiqは使えないので普通にHTTP通信
102.
SQSのFIFOキューは AWS SQSのFIFOキューは https://aws.amazon.com/jp/blogs/news/new-for-amazon-simple-queue-service-fifo-queues-with-exactly- once-delivery-deduplication/ メッセージが送信順に 1
回だけ、重複なく処理さ れることを保証するように設計されています。 というキュー ただ、1秒当たりの最大取得数があるので、 大量に積んだときの処理に不安があり採用見送り (あとTokyoにまだ来てなかった)
103.
会場Q&A
104.
キューの分け方どうしてます Q. キューをどういう基準で使い分けているか? A. ほとんど分けずに一つのキューにしている 1分の処理も1秒の処理も同じキュー そっちの方がリソース管理が容易 毎秒数100積まれるようなものがあり、 そういった問題がありそうなものだけ別キュー
105.
AWS Batch Q. AWS Batchという選択肢は…? A. この問題を早急に直さないとサービス止まりまく るので、最小限の変更ですむような解決法にした 一段落したのでそういったものは検討している
Download now