Dockerの登場により急速に普及をはじめたコンテナ型仮想化の技術は現在、DockerコンテナそのものからKubernetesを軸としたオーケストレーションツールへと主役が移ってきています。 その様子は2017年12月に公開した記事「Dockerコンテナ時代の第一章の終わり、そして第二章の展望など」で紹介しました。 この記事の公開から2年が経過し、現在のコンテナ型仮想化技術は、マイクロサービスやクラウドネイティブなどの文脈とともにエンタープライズな分野でも使われるメインストリームな技術へと確実に進み続けています。 本記事では前記事で描いたDockerコンテナ時代の第一章に続く第二章として、コンテナ型仮想化技術のここ2年半ほどの動向をPublickeyなりにまとめてみました。 Docker 1.0の到達とKubernetesの登場 まずはDockerとKubernetesの登場とその後の主要
原 康紘 アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト AWS 上でのマネージド・サービスメッシュを実現する AWS App Mesh や、Kubernetes ワークロードとの親和性が高い Istio など、サービスメッシュの世界には数々のプロダクトやソリューション、アイデアが生まれつつあります。本セッションでは、マイクロサービスにおけるベストプラクティスの集大成とも言えるサービスメッシュについて、その解決すべき課題と人々が熱狂する理由、サービスメッシュそのものの必要性について掘り下げます。同時に、サービスメッシュを実現する上で最も重要なコンポーネントの一つとも言える Envoy の詳細にも触れながら、皆さまがサービスメッシュを活用する手助けとなるヒントを紹介します。 AWS の詳細については http://aws.amazon.com/jp
サービスメッシュは、マイクロサービスアーキテクチャの様々な問題点や課題を解決します。Kubernetes クラスターへの導入もそこまで複雑ではなく、サービスメッシュから得られるメリットは計り知れません。 カナダ・バンクーバーオフィスの山口です。 Kubernetes でマイクロサービスのアプリケーション開発をしていると、一度はサービスメッシュという言葉を聞いたことがあるのではないでしょうか。 マイクロサービス間の通信制御において、サービスメッシュは非常に強力な武器となります。しかし、Kubernetes クラスターへサービスメッシュを導入するのは多少敷居が高く、躊躇している方も多いかと思います。 今回はサービスメッシュの概要についてご説明します。そして次回以降で、EKS クラスター上で Istio や App Mesh といった主要なサービスメッシュの導入方法についてお伝えしていきます。
Kubernetesの機能は損なわず、PCやRaspbery Piといったエッジの環境へ簡単に導入し運用することにフォーカスしつつ、サービスメッシュのIstio、Linderd、サーバレスのKnative、分散トレーシングのJeager、メトリクス収集のPrometheusなどもバンドルされています。 NvidiaのGPUを用いたGPGPUにも対応。MicroK8sの自動アップデートも可能。導入や構成がシンプルなことから、MicroK8sはローカルの開発環境などによく用いられています。 そのMicroK8sがWindowsとMacに対応したことが発表されました。 #MicroK8s is now available natively on @Windows and #macOS via the command line, as if you were using on Linux. Lea
はじめに SRE部プラットフォームSREチームの川崎 @yokawasa です。 ZOZOTOWNではモノリシックなアーキテクチャーから、優先度と効果が高い機能から段階的にマイクロサービス化を進めています。本記事では、そのZOZOTOWNの段階的なマイクロサービス移行で実践しているカナリアリリースとサービス間通信の信頼性向上の取り組みについてご紹介します。 なお、ZOZOTOWNのリプレイス戦略ついてはこちらのスライドが参考になります。 speakerdeck.com さて、ZOZOTOWNマイクロサービスプラットフォーム(以下、プラットフォーム)はAWS上に構築しており、コンテナーアプリ基盤にマネージドKubernetesサービスであるEKSを採用しています。また、複数サービスを単一Kubernetesクラスターで稼働させる、いわゆるマルチテナントクラスター方式を採用しています。 下記イ
Kubernetesを自動車に載せるというデンソーの発表事例を紹介した6月の記事「Kubernetesを自動車に載せる、デンソーが「Misaki」を発表。年内にもオープンソースとして公開」は多くの読者に読まれました。 このデンソーの発表の中で、(記事では省略していますが)先行事例として米国防省がKubernetesとIstioをF16ジェット戦闘機に載せたことが触れられています。 これは2019年11月にサンディエゴで行われたイベント「KubeCon+CloudNativeCon North America 2019」で行われたセッション「How the Department of Defense Moved to Kubernetes and Istio」で紹介されたものです。 セッション中では国防省がコンテナとKubernetesを基盤にCI/CDに取り組んでいること、MVP(Mini
Cloud Native Computing Foundationは、仮想マシンをKubernetesで管理可能にする「KubeVirt」がバージョン1.0に到達したことを発表しました。 Kubernetesは起動中の多数のコンテナを管理し、ワークロードを割り当てるなど、コンテナベースのオーケストレーションツールとして開発されました。 KubeVirtはそのKubernetesにおいて、コンテナと同じように仮想マシンを管理可能にするソフトウェアです。 QEMUとlibvirtで仮想化レイヤをコンテナ化 具体的には、QEMUとlibvirtが用いられた仮想化レイヤをKubernetesで扱わせることが可能になります。 これにより例えばデータベースのようなコンテナよりも仮想マシン上で実行することが望ましいと考えられるアプリケーションを、仮想マシンのままでKubernetesを用いて管理可能です
サービスメッシュを実装するオープンソースソフトウェアIstioが最新バージョンを公開した。このリリースではこれまでのコントロールプレーンの発想を一新して、複数のプロセスが協調する形から、「istiod」というモノリシックなプロセスが制御を行う方式に変更されたことが明らかになった。 バージョンアップの概要はIstioのブログ記事にあるが、より詳細にマイクロサービスからモノリシックへの変更に関しては、Christian Posta氏によるブログ記事が参考になる。 公式サイト:Istio in 2020 - Following the Trade Winds Solo.incのField CTOであるPosta氏はRed Hatのアーキテクトというキャリアの持ち主で、2019年11月のKubeConではマイクロサービスを指向するプログラミング言語であるBallerinaのセッションを行ったことも
Microservices Platform TeamでTech leadをしている@deeeeeeetです. 昨年のMTC2018ではMicroservices Platformチームの立ち上げから1年で僕らが取り組んできたことを紹介しました. speakerdeck.com 具体的にはStranglerパターンによるMonolithからMicroservicesへの段階的なリクエスト移行を行うためのAPI gatewayの開発や,Microservicesのインフラのセットアップを簡単にしサービス開発チームのSelf-service化を進めるためのStarter-kitの開発,GoでのMicroservicesの開発を高速で始めるためのTemplateプロジェクトの開発,Spinnakerの導入などについて紹介しました. これらはPlatformとして最低限の機能を整備したにすぎず,さ
こんにちは、ぐるなびのインフラを担当している飯田です。 私の所属するグループでは、ぐるなび全体のサイトインフラの構築や運用を行っています。 私自身は、新卒で入社して今年で四年目となります。現在は、ぐるなび全体の仮想基盤やコンテナ基盤の運用、IaCなどを主に担当しています 。 今回は、我々が開発し提供している社内システムをコンテナ化し、そこでどういう技術に取り組んでいるかという話をしたいと思います。 インフラが提供する社内システムとは ぐるなびでは、サーバの払い出しやミドルウェアの設定変更などが発生する度にインフラへ依頼し、それに対してインフラが対応するフローをとっています。 このフローだと間接工数が増え、サービスの開発スピードが遅くなるなどの課題がありました。 そのため、開発効率やスピードの向上のため一部のオペレーションに対してGUI化やAPI化を実施し、社内システムとして提供しています。
広告技術部のUT@mocyutoです。 大幅コスト削減シリーズ第二弾です。 前回はこちら tech.gunosy.io 今回はアベイラビリティゾーン(AZ)間通信のコストをIstioのlocality load balancingを使って削減した話になります。 概要 Istioとは どのようにコスト削減したか まとめ 概要 みなさんはマイクロサービスを導入しているでしょうか? 最近はモジュラモノリスが流行り始めている雰囲気を感じてきていますが、弊社の広告配信サーバは以下のようなマイクロサービス化された設計(と言っても2つのサービスしかないのですが)になっています。 構成図 一般的にクラウドプロバイダ上で構築している場合、耐障害性を高めるために複数AZ、複数リージョンに分散させることが基本になるかと思います。 弊社では、単一リージョン複数AZに分散させて稼働しています。 リージョン間の通信に
2021/03/01 追記 記載していたリポジトリにあるマニフェスト系があまりに不親切だったので、ちゃんとまとめてみました。 後日、もうちょっとちゃんと記事書こうとは思いますが、大体はREADMEにあるので読んでみてください。 sock-shopをベースにObservability(Prometheus, Loki, Istio(Jaeger, Kiali))とProgressive Delivery&自動負荷試験スタック(Flagger, Jmeter, influxdb)をHelmとKustomizeで詰め込みました。 今回はちゃんと誰もが入れれるようにがんばってみたので、どうぞ。 github.com この内容でCloudNativeDaysOnline2021に登壇することにしています。 event.cloudnativedays.jp 後、随分前ではありますが、本投稿に関連してK
今回はService Meshについて概要を調べ、Service Meshを提供するプロダクトの一つであるIstioに触れてみました。 Service Meshとは マイクロサービスの課題 Service Meshを考えるうえでまず必要になるのが、マイクロサービスアーキテクチャの抱えるいくつかの課題です。 マイクロサービスを導入・構築するうえでの課題として、ネットワークに関連する事項が挙げられます。マイクロサービスはお互いネットワークを通じて連携するため、ネットワークに関する機能(Load Balancing、Traffic Routingなど)を実装する必要があります。また、アプリケーションを構成するマイクロサービスの数が多くなるほど、マイクロサービス間の接続数は増加し、通信断の発生する確率やパフォーマンス低下など、ネットワーク関連の問題が発生する可能性も増加します。 これまで複数のグロ
この記事は、NTT Communications Advent Calendar 2021 4日目の記事です。 こんにちは、イノベーションセンターでSREとして働いている昔農(@TAR_O_RIN)です。主にNTT Comのソフトウェアライフサイクルの改善への取り組みやアーキテクトに関わる仕事をしております。本日はサービスメッシュを題材に,その中で用いられるEnvoyの活用パターンを手を動かして理解するお話をさせていただきます。 また,昨年までのアドベントカレンダー記事もご興味があればご覧ください! 2020年 How do you like k3s ? - CoreDNSで作るお家DNS Cacheコンテナ 2019年 TektonでCI/CDパイプラインを手の内化しよう 2018年 DevOpsってこんな仕事!考え方とスキルセットのまとめ 2017年 DockerのnetworkをCa
Abstruct サービスメッシュが、真に提供する価値は何なのか。それはトラフィック管理と可観測性なのだろうか。 サービスメッシュがこれほどにまで繁栄した理由について、私なりに考察する。 Introduction 近年では、ソフトウェアのアーキテクチャとして、マイクロサービスが大流行した。かつては最大手のインターネット企業のみが必要性に迫られていた、マイクロサービスアーキテクチャだが、昨今の急激に成長するITビジネスの中で、多くの企業にとってマイクロサービスは、あらゆる企業が取り組むべき必然性のあるソリューションとなっている マイクロサービス・アーキテクチャによって、大規模な開発チームがより俊敏になり、より多くのデプロイを実現させられることは、大きなメリットだ。一方で、マイクロサービス特有の課題も数多く存在する。 マイクロサービスに移行する際に発生する運用上の問題の多くは、結局のところ、ネ
Pull RequestをKubernetesで気軽に試せるOSS、KubeTempuraをリリースしました こんにちは、Mercari US Microservices Platform Teamの矢口です。 Mercariではこのたびテスト環境を簡単に作成できるツールをOSSとして公開しました! KubeTempuraとは KubeTempuraとはKubernetesクラスタにお試し用環境を自動で作成するためのKubernetes Operatorです。 GitHubでのPull Requestの作成をトリガーとしてKubernetesのリソースを作成できます。 Pull Requestを作成したりPull Requestにcommitをpushするだけで簡単に自分やQAのメンバーが変更したコードを試すことができます。 動機 なぜこういったツールを開発したかについて説明します。 PR
サービスメッシュを実現する「Istio 1.5」正式版が登場しました。注目すべき新機能の1つは、Istioの拡張やカスタマイズを行うための統合的な手段としてWebAssemblyが採用されたことです。 Istioが実現するサービスメッシュは、Kubernetes上のさまざまなサービス間のトラフィックの管理やルーティング、ロードバランシング、暗号化通信や認証サービス、モニタリングなどを実現します。 Istioの拡張手段をEnvoy上でのWebAssemblyによる実装で統一へ これまで、Istioの機能を拡張して外部ツールと連係させたり動作をカスタマイズするためには、Mixerプラグインを用いたポリシーやテレメトリのカスタマイズと、Istio内部で使われているプロキシであるEnvoyの拡張機能を利用したデータプレーンのカスタマイズという2つの手段が提供されてきました。 今回正式リリースされた
技術開発部の相原です。好きな --feature-gates はServiceTopologyです。 この記事はLIFULLアドベントカレンダーの16日目です。 去年のエントリではIstio を本番環境に導入するまでと題して、私のチームが進めているアプリケーション実行基盤刷新プロジェクトでのIstioの導入についてお伝えしました。 移行に至るまでの経緯などはそのエントリをご覧ください。 あれからしばらくが経ち、ようやく主要サービスの(ほぼ)全てをKubernetesに移行することができましたので今回は移行を実現するまでに行った取り組みを紹介したいと思います。 移行にあたってやったこと 健全化 構成の見直し アプリケーションサーバの見直し Containerize SIGTERMへの対応 環境ごとの値を外から与えられるように 可観測性の向上 Prometheus Exporter実装による可
はじめに SRE部 ECプラットフォームSREチームの小林 (@akitok_) です。 ZOZOTOWNでは、マイクロサービス間通信におけるトラフィック制御のために、Istioによるサービスメッシュを導入しています。本記事ではZOZOTOWNのマイクロサービスプラットフォーム基盤(以下、プラットフォーム基盤)において、Istioをいかにプロダクションレディな状態で本番に投入していったか、その取り組みを紹介します。 なお、Istioによるサービスメッシュを導入した背景については、以下の記事で紹介しています。 techblog.zozo.com はじめに What is Istio? Istioをプロダクションレディにするまでに直面した3つの課題 どのようにリソース消費量を見積もるか Data Planeサイジング Envoyプロキシのチューニング 負荷試験 Istioベンチマーク試験 サー
Istioは、サービスメッシュを実現する新たな仕組み「Ambient Mesh」を発表しました。 現在のIstioは、各サービス(≒KubenetesのPod)ごとにプロキシを配置し、サービス間のネットワークをプロキシ経由で構成することによってサービスメッシュを構築しています。これによりサービス間の通信のトラフィックコントロール、暗号化、可観測性(オブザーバビリティ)などの機能が実現されるわけです。 この仕組みは、サービスの隣にプロキシを配置することから、「サイドカー」パターンなどと呼ばれています。 新たな仕組み「Ambient Mesh」では、Pod群をホストしているノードにプロキシを配置し、このプロキシによってサービスメッシュの機能を実現します。 Podごとのプロキシ配置が不要になる、つまり「サイドカーレス」(Sidecar-less)なパターンとなることで、デプロイや管理の容易、コン
SPEEDAの開発チームの石橋です。 最近ではマイクロサービスでプロダクトを開発することが多くなってきていると思います。 そういった状況の中でマイクロサービスのテスト、特に異常系のテストをするコストがやや高いという話を何度か耳にしました。 本記事ではIstioのFault Injectionで「エラーが発生する」、「処理に時間がかかる」などの異常系のテストを容易に実現する方法を紹介します。 異常系のテストをする際の課題 環境構築 Gateway Service Deployment DestinationRule VirtualService Fault Injection Injecting HTTP Aborts Injecting HTTP Delays まとめ 参考 異常系のテストをする際の課題 サービスAとサービスBがあるとします。サービスAからサービスBにリクエストした際、サー
マイクロソフト、サービスメッシュの新たなオープンソース実装「Open Service Mesh」発表。Envoy採用、CNCFへ寄贈予定 マイクロソフトは、Kubernetes対応のサービスメッシュ(Service Mesh)をオープンソースで実装するプロジェクト「Open Service Mesh」を発表しました。 We are beyond excited to introduce Open Service Mesh (OSM), a lightweight and extensible #servicemesh that implements @SMI_spec and runs on @kubernetesio @EnvoyProxy! Check out what we've been up to here:https://t.co/l6fy4OUorO — Open Servi
はじめに SREの須恵です。 弊社では、昨秋からサービスメッシュの導入を開始していたのですが、なかなかアウトプットできていなかったので書くことにしました。 マイクロサービス化とgRPC 弊社で進行中の技術テーマの1つに「マイクロサービス化」があります。 ビジネスの成長拡大に伴い開発組織も拡大し続けており、どんどん人数が増えています。この増加していく開発者の力を、可能な限り効果的に活かして開発するため、マイクロサービス化に舵を切ることになりました。 (マイクロサービスの動機と目指す結果の詳細はいずれ誰かが記事化することに期待) 今年の1月に弊社初のマイクロサービスとしてリリースされた2つのサービスがあり、それらはgRPCで通信することが決定されていました。また今後も、マイクロサービス間の同期通信にはgRPCの採用が広がる見込みです。 なぜgRPCか モノリスをマイクロサービス化する、あるいは
これは Mercari Bold Challenge Month の3番目の記事です。 Mercari ではモノリスなサービスからマイクロサービスのアーキテクチャへと移行を行っている間、長期的な観点からみて、サービスメッシュの導入とその重要性を理解することが必要だと感じていました。ほとんどのインシデントレポートに対する現実的な対策としてあがるのが、レートリミットの導入、適切なカナリアリリースのフローの導入、適切なネットワークポリシーの導入などでした。そしてこれらこそがサービスメッシュによってもたらされる機能です。 前四半期では、私達はついに Istio の導入に挑戦することに決め、調査を開始しました。結果として、100 以上のマイクロサービスをホストするマルチテナント環境のシングル Kubernetes クラスタを深刻な障害を発生させずに本番運用を行うことができています。この記事では Me
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く