GKEにPrometheusを導入する

GKEにはPrometheusを導入するドキュメントが無いんですよね・・・ IstioやSpinnakerのドキュメントはあるのに、もっと需要がありそうなPrometheusのドキュメントが無いのはつらいです。 そんなわけで、自分が導入したときの手順を記録しておきます。 環境 GK…

GKEでPersitentVolumeを使う

KubernetesでPersitentVolumeを使う方法はドキュメントに書いてありますが、使う環境によって永続ディスクが異なるためにスムーズにいかないことがあります。 そのため、今回はGKEでPersitentVolumeを使う方法を紹介します。 環境 GKE 1.9.7-gke.0 永続ディ…

KubernetesでBlue-Green Deploymentしてみる

今回はサービスを本番で運用していくときに欲しくなるBlue-Green DeploymentをKubernetesでやってみます。 TL;DR Serviceのselectorを更新するやり方だと10分程度BlueとGreenがまざる Istioを使用すれば瞬時に100%のトラフィックを切り分けられるのでBlue-Gr…

Kubernetesに負荷をかけオートスケールを観察する

本番環境でKubernetesを使うためには、Kubernetesがどのように動作するか把握していないと安心して運用することができません。 まずはサービスを運用する上で重要になる、高負荷時の動きを確認してみたいと思います。 KubernetesにはHPAとCluster Autoscaler…

Webpackでビルドするときにflowtypeで型をチェックする

flowを導入して型のチェックがされるようになっても、開発者がエディタで設定していなかったり、 エディタによっては開いていないソースはチェックの対象になっていなかったりします。 これではせっかく導入したflowが活かせません。 そこでWebpackでビルド…

QNAPにTwonky Serverをインストールする

QNAPが公式に提供しているDLNAサーバーはいろいろと貧弱なので、評判の高いTwonky Serverを使えるようにします。 環境 QNAP: TS-431P OS: QTS 4.3.4 Twonky Serverのダウンロード まずは以下のリンクからダウンロードページに移動します。 http://download.t…

JUnit5をmainから実行する

こんにちは。akaimoです。 今回はJUnit5をmain関数内で使用する方法です。 環境 Java9 JUnit5.1.0-M1 Kotlin1.2 ソース これでmainからJUnitを動かせます。詳しい解説は後ほど。 import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder i…

react-reduxにflowtypeを導入しPropsに型を付ける

flowtypeを導入したとき、reactとreduxをつなぐ部分の情報が少なかったのでまとめます。 flowtypeの導入前 比較として導入前のソースを載せておきます。 import React, {PropTypes, Component} from 'react' import {connect} from 'react-redux' import * a…

Travis CIでfastlaneを使用する

こんにちは。akaimoです。 Travis CIを利用しているiOSプロジェクトにfastlaneを導入して、xcodebuildを直接実行する環境から開放されたので、 備忘録としてやったことを残しておきます。 github.com 前提 CI上でfastlaneを使用 複数人で開発 fastlaneのイン…

ScrollViewとStackViewを組み合わせる

iOS

akaimoです。 そろそろiOS8のサポートが終わってきたと思うので、TableViewの変わりにStackViewを使う方法を書きます。 使いにくいScrollView スクロールが必要な複雑な画面の場合、同じ要素が1つも存在しないのにTableViewを使うことがありました。 ScrollV…

VimにRustの環境を構築する

RustのIntroductionをやってみる途中で、補完とかが効かないとツライなと思ったので VimにRustの環境を作ってみた。 前提 OSはMacです(たぶんLinuxでも動くと思います) rustupでRustをインストールしていることを前提とします。 できるようになること コー…

mackerelでhubotを監視する

raspberry piでhubotを運用していると、いつの間にかhubotが突然死していることがあります。 botが動いてくれないと色々と困るので、先日導入したmackerelで監視して、死亡したらslackにアラートが飛ぶようにします。 観測用のスクリプトを作成 mackerelでカ…

Raspberry PI 2にLet's Encryptとnginxでhttps環境を構築

Let's Encryptを使ってhttps環境を構築してみたいと思います。 最新のnginxをインストール せっかくなので、最新のnginxをインストールしてhttp2にも対応させたいと思います。 基本的には以下の記事を見ればできます。 qiita.com 私の環境では、nginxの設定…

Raspberry PI 2にMackerelを導入して監視してみる

サーバーを監視するツールにMackerelというものがあるらしく、 勉強がてら家で持て余してるRaspberry PI 2に導入してみます。 今回はインストールして、最低限の監視ができるところまでやります。 インストール Raspberry PI 2で動かすためにはARM版のバイナ…

さくらVPSにdocker-composeでテスト環境を作る

OSは標準のCentOS6.7を使いました。 毎度おきまりの自分用メモに近くなっています。 OSのインストール 契約しただけではOSすら入っていないのでインストールします。 公式のGUIをぽちぽちしていくだけです。 セキュリティの初期設定 http://qiita.com/yu_010…

Dockerについての理解を深める 〜その1〜

Dockerは進化が速いので情報が古くなっている場合があります。 いけてる人たちは使っているDockerについて、複数回にわけて理解を深めていきます。 今回はDockerを扱うツールが入ったDocker Toolboxとdocker-machineについて解説していきます。 動作環境 201…

【Swift】複数のジェスチャを認識させる方法

UIScrollViewなどにgestureをaddしても通常は認識されません。 理由は簡単で、すでにgestureが登録されているからです。 ドラッグしたらスクロールしますよね? それです。 解決方法 解決するのは簡単です。 複数のジェスチャを認識するようにすればよいだけ…

Swiftで文字数制限をつけた話

iOS側で作品を作ってサーバーに投げるアプリを開発していたときに、 SNSシェア用に作品を一つの画像にしなければいけなくなった。 その時に、「作品のタイトルが長すぎると画像に収まらない」とサーバーサイドで問題が発生した。 この問題を解決するために、…