Folioscope

Archive for 2019

  • JVMのヒープサイズとコンテナ時代のチューニング

    最近JVMのヒープ領域とパラメータ、そしてコンテナの関係について調べてました。 案外まとまった情報が少なかったので簡単にまとめました。 Javaのヒープサイズを設定 まずはJavaのヒープサイズについて簡単なおさらいです。 本番環境でJavaアプリケーションを運用する上で、JVMのヒープサイズを決定するのは非常に大事なポイントです。 ヒープ領域の最大サイズを大きくすればガベージコレクション (GC) の回数は減らすことができますが、 必要以上に大きくしすぎると無駄にリソースを消費したり、OOM …

  • 複数Podでコマンドを実行できるツールを作った

    Kubernetesの複数コンテナ上で、並列のコマンドを実行できるツール bow を作りました。 英語で bow は船首を意味します。 ueokande/bow github.com なぜ作ったの? kubectl exec コマンドは、Kubernetes上のアプリケーションのデバッグや、障害調査に役立てることができます。 しかし水平スケールが柔軟にできるKubernetesでは、特定のコンテナでコマンドを実行するというのはあまり適切ではありません。 規模によってはコンテナの数が数個か …

  • Kubernetesのログビューアを作った

    KubernetesのログビューアLogbookを作りました。 Kubernetesやその周辺ツールは船に関する名前から由来されることが多いです。 英語で logbook は航海日誌のことを指します。 航海日誌のようにログをパラパラとログを閲覧できる、そんなツールを作りました。 ueokande/logbook Another log viewer for Kubernetes github.com なぜ作ったの? Webサービスにおいてログは大変重要なものです。 Kubernetesでも …

  • 英和辞書をポップアップするVimプラグインを作った

    ついこの間、Vimにpopupが実装されたという話題と、Mouse Dictionaryがタイムラインに流れてきました。 自分もVimのPopupを使って英単語の意味を調べるプラグインを作ってみました。 GitHubレポジトリはこちらです。 ueokande/popupdict.vim 読力、活力、元気 github.com 使い方 dein.vimやvim-plugのパッケージマネージャーでインストールできるはずです。 " vim-plugPlug …

  • TSyringe - JavaScript/TypeScript向けの軽量DIコンテナ

    Vim VixenではClean Architecture風の設計をしており、扱うモデルやレイヤー毎にクラスを作成します。 現在はクラス数が100を超えて、クラスにインスタンスをいちいち渡したり、インスタンスの作成と管理が面倒になってきました。 そこでVim VixenではDependency Injection (DI)コンテナを導入することにしました。 いろいろ探してみると、すでにJavaScript/TypeScript用のDIコンテナがいくつか存在するようです。 その中で(巨人の肩に乗る …

  • TypeScriptに移行して気づいた10の事実

    ついにVim VixenをTypeScriptに移行しました。 今まで強がりでECMAScriptで書いてたのですが、静的型付き言語の便利さに負けてついに移行しました。 その時に新しい発見がいくつかあったので簡単にまとめます。 エコシステムが十分に育っている TypeScriptに移行するのなら、トランスパイラ本体だけではなく周辺ライブラリのサポートも必要です。 たとえばVim VixenではWebpackでのビルドやLinterのチェックをしてます。 また使ってるライブラリの型定義もほしいで …

  • いろいろできるぞexecuteScript()

    WebExtensionsのtabs.executeScript()メソッドは、Background ScriptからContent Script上にJavaScriptを注入できます。 たまたま調べる機会があって挙動が面白かったので簡単に記事にまとめました。 基本動作 executeScript()はContent Script上で任意のスクリプトを実行して最後に評価した値を返します。 executeScript()はPromiseを返す非同期関数で、評価した値はthenの引数から取得できま …

  • 3年間働いたサイボウズを退職しません

    今年も花粉と共に退職エントリが舞う季節になりました。 せっかくなので退職しませんエントリを書きました。 この3月でサイボウズに勤めててから丸3年が経ちます。 学生の頃はWebエンジニアといえば、技術を片手に渡り鳥のように転々するかなと思ってました。 しかし実際サイボウズに入ってみると、意外と居心地が良かったので、この4月からも引き続きサイボウズで働きます! サイボウズとのきっかけ 入社以前からサイボウズLiveは知っていて、母校(奈良高専)もサイボウズOfficeを導入してました。 そのためサイ …

  • Envoy ProxyのためのEDSサーバーを作る

    いよいよEnvoyの肝であるxDSサーバーを使いたいと思います。 まず手始めにエンドポイントを設定できるEndpoint Discovery Service (EDS) を提供するサービスを実装します。 xDSおさらい EnvoyではgRPCまたはREST API経由で動的に設定変更できます。 これはEnvoyにリクエストを送るのではなく、EnvoyがAPIを提供するサーバーに繋ぎにいきます。 APIには、エンドポイントの設定を提供する Endpoint Discovery Service …

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

    Envoy Proxyに入門してポチポチ勉強を進めてます。 Envoy Proxyは動的な設定とxDS APIが魅力的ですが、手始めに静的な設定ファイルで動かしてみましょう。 この記事ではHTTPロードバランサーをEnvoyで構築します。 完成図は以下の図になります。 HTTPロードバランサーの後ろには、目的の異なる2つのクラスタがあります。 今回はNGINXとApache httpdを使っています。 それぞれのクラスタはnginx.localとhttpd.localというホスト名(バーチャ …

Page 1 of 2 >