Folioscope

Envoy Proxyで作るHTTPロードバランサー

Envoy Proxy

Envoy Proxyに入門してポチポチ勉強を進めてます。 Envoy Proxyは動的な設定とxDS APIが魅力的ですが、手始めに静的な設定ファイルで動かしてみましょう。 この記事ではHTTPロードバランサーをEnvoyで構築します。 完成図は以下の図になります。

Envoyで構築するHTTPプロキシの図

HTTPロードバランサーの後ろには、目的の異なる2つのクラスタがあります。 今回はNGINXとApache httpdを使っています。 それぞれのクラスタはnginx.localhttpd.localというホスト名(バーチャルホスト)で経路を分岐します。

  • 2019-02-06追記 : DEPRECATEDなプロパティを修正しました。

Envoyの設定ファイル

Envoyをどういう環境で利用するにもBootstrap …

もっと読む…

ブログエンジンをMiddlemanからHUGOに移行した

HUGOのロゴ

このブログ、以前はMiddlemanでビルドしてたんですが、この度HUGOに移行しました。 結論から言えば、機能的にはほぼ同じで移行も簡単でした(すでにこのブログも移行済みです)。 いくつか工夫する部分があったのでそれを記事にまとめました。

テンプレートエンジンの移行

HUGOはテンプレートエンジンにGoのhtml/templateを使ってます。 HUGOではMiddlemanと同様 partial を使ってHTMLを外部ファイルとして記述できるので、パーツの共通化ができます。 MiddlemanからHUGOへの移行も、.erbファイルをGoのテンプレートに変換するだけで移行できました。 HUGOではMiddlemanと同じよう、テンプレート内から現在の記事のタイトルや全ての記事を取得できます。

MiddlemanではRubyで書いたヘルパメソッドをテンプレート …

もっと読む…

Envoy Proxyに入門した

Envoy Proxy

Envoy Proxy

最近Kubernetes周りの技術をよく触るのですが、Envoy Proxy (Envoy)もよく耳にするので勉強しました。

Envoyとは?

EnvoyはクラウドネイティブなWebサービスのために設計されたロードバランサーです。 元はLyftが開発しており、現在はCNCF (Cloud Network Computing Foundation) によって管理されています。 Envoyには大きく2つの用途があります。

  • サービスメッシュの通信バス: サービスメッシュ内の各サービス間の通信を制御するプロキシ。サービスディスカバリーや流量の制御をする。
  • エッジプロキシ: サービス内のプライベートネットワークとサービス外をつなぐプロキシ。データセンターやKubernetesクラスタの外からのアクセスを受け付ける。

背景

モノリスで …

もっと読む…

Arch Linux上でSteamのゲームで遊ぶ

Linux

Portal Bundle

PortalとPortal 2がセットで180円という電波を受信したので早速買いました。 自分のマシンはArch Linuxということで、Linux環境でSteamをインストールしてゲームの起動までチャレンジしました。 結果を先に言うと、普通にプレイできました。 大きな障害もなくて驚きです。

SteamのLinuxサポートはかなり前からニュースになってました。 正式にサポートしてるOSはUbuntuまたはSteamOS(Debianベース)のみですが、Arch Linuxでも動かしてみました。 自分の環境は以下のとおりです。

  • Arch Linux
  • nVIDIA GeForce GT 1030

依存パッケージのインストール

まずはゲームを起動するための依存パッケージをインストールします。 Steamのゲームは32ビットバイナリでビルドされて …

もっと読む…

初めてのアメリカでKubeCon + CloudNativeConに参加した

12月10日から13日の4日間、北アメリカのシアトルでKubeCon + CloudNativeCon North Americaが開催されました。 自分も今のチームメンバーと一緒に参加しました。

KubeConキーノート会場の様子

イベント自体の報告は会社のブログで公開してるので、そちらを参考にしてください。

自分はこれまで、シンガ …

もっと読む…

「WebExtensionsとテスト」というお話をしてきました

WebExtensions

先日、WebExtensions Meetup #3 が開催され、そこで「WebExtensionsとテスト」というお話をしてきました。 この発表では、 WebExtensionsのテストの方法と、Vim Vixenが取り組んでいることについてお話しました。

この記事では発表資料をかいつまんで、より詳しく説明してゆきたいとおもいます。 それでははじまりはじまり〜。

はじめに

タイトルスライド 自己紹介スライド

まずは自己紹介。 WebExtensions歴は1年ちょいです。 メインで開発してるWebExtensionsは「Vim Vixen」です。

Vim Vixen Vim Vixenの開発環境

Vim Vixenの開発をスタートしたきっかけは、XUL製だったVimperatorが使えなくなったからです。 開発を始めて1年が経ち、現在はユーザー数も10,000を超えるほどになりました。

開発的な視点で見てみると、本体コードが5,000行程度、テストコードは3,000行程度の規模感です。 ビルドはBabelを使ってES7をトランスパイルし、webpackでシングルJS化して …

もっと読む…

ソースコード検索ツール「Livegrep」を構築する

DigitalOcean TIDE NYC 2018のセッションをなんとなく眺めていたら、「Livegrep」というソースコード検索ツールが紹介されました。 面白そうだったので、手元にも構築してみました。

Livegrepのスクリーンショット

Livegrepとは

Livegrepとはソースコード検索ツールです。 Livegrepの使用感は公式ページにアクセスすればわかります。 以下のリンクから、Linuxのカーネルを対象に検索できます。

Livegrepはリアルタイムのソースコード検索ツールです。 GitHub上でも全文検索できますが、Livegrepはファイルシステムに対して検索します。 そのためGitHub以外のソースコードや、バージョン管理されてないコードも検索の対象にできます。 またGitHubの全文検索と違 …

もっと読む…

Builderscon Tokyo 2018 に行ってきた (2/2)

builderscon2日目レポートです。 今日も豪華なスピーカーが勢揃いで、最高の1日でした。

builderscon tokyo 2018 end day

※ 画像はaphyrさんのスライドからです

Security, privacy, performance of the upcoming transport protocols

1本目は、kazuho氏による次世代のインターネットプロトコルのお話でした。

インターネット・プロトコルは変革期で、次々と新しいプロトコルが生まれています。 セキュリティという観点では、パブリックWi-Fiの普及やスノーデンの話をきっかけに、完全なネットワークで暗号化が必要となっています。 現在、あるいは近い将来にDNS over HTTPSやQUICなどの次世代のプロトコルが必要になっています。

この発 …

もっと読む…

Builderscon Tokyo 2018 に行ってきた (1/2)

Builderscon Tokyo 2018 1st Day

builderscon1日目に行ってきたので、忘れる前に参加レポートです。 buildersconは弊社からもスポンサーをしており、その招待チケットを頂いたのでbuildersconに行くことにしました。

buildersconは「知らなかった、を聞く」をテーマとした技術を愛する全てのギーク達のお祭りです。

buildersconの発表は最大5並列で行われ、ジャンルは組み込み系からWebフロントエンドまで様々です。 今年は(今年も?)ゲストスピーカーが豪華でNetflixやLyftのエンジニアなども招待されてました。 1日目の全体的な所感として、Kubernetesやマイクロサービスなどのモダンなインフラの話が熱い印象で、人が入り切らず途中で締 …

もっと読む…

オライリー・ジャパンから「Kafka」が発売されます

2018年8月3日に、オライリー・ジャパンから「Kafka: The Definitive Guide」の日本語訳が発売されます。 自分はこの本で、監訳という形で出版に携わらせてもらいました。

Kafak books

この本について

原書「Kafka: The Definitive Guide」は、Apache Kafkaの開発者たちによって執筆されてます。 本書はその和訳版です。

本書は、リアルタイムのストリーム処理基盤であるKafkaを使ったシステムの構築方法や、本番環境で運用するための手続きについて紹介しています。 本書ではKafkaのインストールから、Kafka APIを使ったアプリケーション、データパイプラインの構築方法、そしてKafka運用に必要なモニタリングやオペレーションをカバーしています。 またKafkaを使ったサービスのデザインパターンや、Kafkaの内部構造について …

もっと読む…
Page 1 of 24 >