Service Meshの背景やトレンド、また今後の展望としてeBPF連携の動向を紹介します。
![Service Mesh in 2022](https://cdn-ak-scissors.b.st-hatena.com/image/square/8a7d35c4f284e3dd0d4a2bbca5e7b9c52720a6ff/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa1e5f13ed5304ce9a64cea93c26d4ba3%2Fslide_0.jpg%3F22574367)
Goの初心者から上級者までが1年間の学びを共有する勉強会、「GeekGig #1 ~Goと私の一年~」。ここで株式会社Showcase Gigの高橋氏が登壇。マイクロサービスセキュリティの難しい点と、認証認可の実施方法を紹介します。 自己紹介 高橋建太氏(以下:高橋):「認証認可とGo」について説明します。まず自己紹介です。現在Showcase GigのPlatformチームに所属しています。主に認証認可の機能を担当しています。高橋建太です。 週1回会社でGoの知見を共有したり、ドキュメントを読んだり、Goについてみんなで話す緩い勉強会を主催で開催しています。もし合同で勉強会やりたい方がいれば、気軽に連絡してください。ぜひやりましょう。 「O:der」について まず前提知識として、「O:derとは?」について、あらためて説明します。ちょっと内部寄りな説明となり、実際のものは若干スライドの図
キーポイント For object-oriented design we follow the SOLID principles. For microservice design we propose developers follow the “IDEALS”: interface segregation, deployability (is on you), event-driven, availability over consistency, loose-coupling, and single responsibility. Interface segregation tells us that different types of clients (e.g., mobile apps, web apps, CLI programs) should be able to inte
20200725の #JTF2020 セッションスライド。 (資料内で説明した資料へのリンク) ・昨年のJTF発表資料 https://speakerdeck.com/tzkoba/cloud-nativekai-fa-zhe-falsetamefalsedatabase-with-kubernetes ・「2020年のNewSQL」 https://qiita.com/tzkoba/items/5316c6eac66510233115 ・「NewSQLのコンポーネント詳解」 https://qiita.com/tzkoba/items/3e875e5a6ccd99af332f ・Saga https://www.infoq.com/jp/news/2018/03/data-consistency-microservices/ ・「マイクロサービスとは分散システムである」 https://
はじめに 前篇の「リアクティブマイクロサービス入門(1/2)- 概念編」では、なぜリアクティブマイクロサービスが必要なのか、リアクティブマイクロサービスとは何なのかをご紹介しました。 後編となるこの記事では、リアクティブマイクロサービスの実装するために使えるテクニック・技術を、目的別にご紹介します。 もちろん、これらすべてを盛り込まなければリアクティブマイクロサービスを実現できないわけではありませんが、引き出しとして知っておけばより柔軟な設計ができるのではないかと思います。 目的別にまとめているので、適宜リファレンス的にご参照いただければと思います。 モジュール化 リアクティブマイクロサービスに求められる性質をバランス良く満たすためには、ビジネス上の関心事を分割することが重要です。 トレードオフで同時に実現することが難しい要件でも、分割することでそれぞれの関心時に最適化した手段を選択して実
はじめに リアクティブシステムを構築するためのライブラリ「Akka」を開発する Lightbend社 から、リアクティブシステムやマイクロサービスについて学習できる有償のオンライントレーニング「Lightbend Academy」を提供されていますが、2020年夏の間(※)は無償で受講できるようになっています。 ※2020/07/14現在。当初は無償期間が6月末まででしたが、7月末 -> 夏いっぱいと期間が延長されています。 ※「Lightbend Academy」の受講については、こちらのスライド「Lightbend Academyオンライントレーニングを受けてみた」もご参照ください。 この記事では「Lightbend Academy」を受講して学んだ、リアクティブな性質を備えたマイクロサービスを設計・開発するために知っておきたい知識や理論 を、私なりに整理・再編してご紹介したいと思いま
マイクロサービスにおける認証と認可の、一般論としての設計パターンを調べたところ、Web 上の複数の記事で似たようなパターンが登場していた。ここでは、まず認証と認可が実現したい一般的な要件と、そのマイクロサービスでの難しさを整理し、認証と認可に分けて調査したパターンをまとめた。 あくまで “一般論” なので、実際には個々のドメインにあわせてアレンジが必要 往々にしてこの “アレンジ” に価値が宿るものだが、まずはセオリーを知っておきたいというモチベーションで調査した Web 上の記事を読んでまとめただけなので、手を動かしての確認はしておらず、理解が甘い部分はご容赦ください 具体的な通信方式やサービス間通信のセキュリティといった具体論までは踏み込めていない。このへんはサービスメッシュやゼロトラストネットワークといったトピックが登場すると思われる これらは次回以降の Todo としています その
このパターンには2つの背景があります。ひとつは、技術者がマイクロサービスアーキテクチャパターンを採用して、複数の(理想的には単一目的で、独立してデプロイ可能な)サービスで構成されるアプリケーションを開発するようになったことです。ふたつめは、企業がコンテナ(Dockerなど)、オーケストレータ(Kubernetesなど)、プロキシ/ゲートウェイ(Envoyなど)といった、クラウドネイティブなプラットフォームテクノロジを支持するようになったことです。 意図 サービスメッシュが解決しようとする問題は次のようなものです。 サービスディスカバリ、ルーティング、アプリケーションレベル(レイヤ7)の非機能通信要件を処理する言語対応の通信ライブラリを、個々のサービス用にコンパイルする必要性の排除 外部サービスのネットワークロケーション、セキュリティ認証、サービス品質(QoS)目標など、サービス通信設定の外
状態(state)を話題にする場合、その多くはサービスの状態や、ステートレスが望ましい理由といったことが多いのですが、サービスを管理するプラットフォーム自体にも状態は必要です。信頼性の高いサービスオーケストレーションの実行、分散型のシングルトン、時間的スケジューリング(cronジョブ)、冪等性、ステートフルなエラーリカバリ、キャッシュなどを行なうには、状態が必要になります。ここで挙げたすべての機能が、内部的に状態を持つことに依存しているのです。状態管理の実際はこの記事の範囲ではありませんが、状態に依存する分散プリミティブやその抽象化は関心の範囲内にあります。 バインディング 分散システムのコンポーネントは相互の通信が必要なだけではなく、最新の外部システム、あるいはレガシな外部システムとのインテグレーションも必要です。そのためには、さまざまなプロトコルを変換し、ポーリングやイベント駆動、リク
「マイクロサービスとメッセージングのなぜ [概要編]」はこちらです。 レッドハットでインテグレーションのためのミドルウェア製品のテクニカルサポートを担当している山下です。 概要編ではメッセージングの良い面ばかりに焦点を当ててきましたが、今回の疑問編ではメッセージングを検討し始めたときに疑問に思ったり困りがちなことを説明したいと思います。概要編とは異なり、細かな技術的内容も含まれますので、その時々で必要な部分や興味ある部分だけ読んでいただければと思います。 (ところで、当初は前回を前編、そして今回を後編にして終わらせようと思っていたのですが、今回もあまりに長くなってしまったので、構成を変えたのでした。 このため当初の前編は概要編と名前を変更しています。) ではまず主に疑問とされることを確認して、その後に対処法を見ていきましょう。 メッセージングを利用することによる主な疑問 対処方法 Q1:
English ver CloudNative Days Kansai 2019 #CNDK2019 日々複雑化するマイクロサービスを運用するにあたり,サービスメッシュ実装のIstioが注目を集めています。しかし,Istioの話題性・機能性とは裏腹に,仕様の複雑さやプラクティスの無さのため,実サービスへのIstio導入は依然として敷居が高いです。日立製作所では社内開発環境の提供のため,2000+PodのKubernetesクラスタにて1年に渡りIstioを使ったマイクロサービスの運用に取り組んできました。本講演ではこの運用を通して得たIstio利用時の問題やその対策といったプラクティスを紹介します。
本記事は、2019年8月21日に行われたmerpay社の主催するイベント、「Backend Engineer’s meetup ~マイクロサービスにおける認証認可基盤~」の参加レポートです。 Backend Engineer’s meetup ~マイクロサービスにおける認証認可基盤~ レポート セッションの概要 メルペイ社の認証基盤チームの担当している 外部向けに提供しているOIDCなどの認可の仕組み 内部のマイクロサービス間通信の認証の仕組み のうち、後者についてのお話を聞いてきました。セッションのスライドはこちらで公開されています。 チームがやっていること 認証基盤チームではユーザーアカウント管理とかログインはやってない 従業員の管理とかはやってない セキュリティについてはセキュリティチームと相談しながらやっている それ以外の認証認可を認証基盤チームがやっている 現状のアーキテクチャ
tl; dr Envoyとgo-control-planeを利用すれば、そこそこ手軽にサービスメッシュを作ることができます。 ソースコードとサンプルはこちらにあります。 meshem: https://github.com/rerorero/meshem サービスメッシュとは サービスメッシュは、マイクロサービスが抱える問題を解決するためのアーキテクチャのひとつです。2017年にLinkerdを開発しているBuoyant社のCTOが使うようになり、広まったとされています。 What's a service mesh? And why do I need one? Pattern: Service Mesh 2つ目の記事にあるように、言葉自体は新しいものの、その考え方は突然登場したというわけではなく、以前より各社が試行錯誤してきてたどり着いた一つのアプローチであり、実践や知見に基づいた問題解
以前の記事で『Microservice Patterns』について要約したが、その中の一つの Saga パターンについて、もう少し詳しく掘り下げてみる。 どういう文脈で Saga パターンを使うか? 各サービスがそれぞれの Bounded Context (整合性の境界)で自前のデータストア(Database per Service)を持っているマイクロサービスアーキテクチャで、複数サービスにまたがるワークフローのデータ整合性を維持したい。 どういう制約のもとで Saga パターンを使うか? 以下のような事情で、分散トランザクションは使いたくない。 モダンでメジャーな NoSQL やメッセージブローカではサポートされていないものが多い。 CAP 定理の認知度が高まって、Consistency を絶対視する風潮が見直され、Availability をより重視するシステムも増えている。 分散ト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く