はてなブログから移転しました(はてなブログで最後のエントリ)

長らく http://blog.stormcat.io で運営していたはてなブログですが、2017年6月26日を持ちまして移転したことをお知らせします。 (旧)http://blog.stormcat.io (http://stormcat.hatenablog.com) (新)https://blog.stormcat.io 移行の経緯については新ブ…

Protocol BuffersのIDL(.protoファイル)をvendoringするツールを書いた

.protoファイルの管理方法に思いを馳せていたので書いた。 github.com 動機 FRESH!はMicroservicesアーキテクチャでやっているが、今まさにAPI v2というのが動いていて構成の刷新に動いている。技術的なトピックとしては iOS/AndroidからAPIへの通信をフルgR…

TLS/SSLサーバ証明書をDockerイメージで管理してみないか?

TLS/SSLサーバ証明書あるじゃないですか。アレ、Dockerイメージで管理して運用してみる方法もありじゃないか?という雑エントリです。 Data Volume Container Dockerコンテナにファイルやディレクトリを供給する方法は色々あって docker build のときにイメ…

第155回天皇賞(春)の写真を撮ってきた

この間、そうだ Go、京都。に行ったエントリ で書いたとおり、天皇賞のついでに京都に行ったわけですがそこで撮った写真を雑に貼ってみる。 どうやって撮ったか 以前の残材エントリで書いたが、カメラはCanonのEOS 7D Mark IIを利用してる。 Canon デジタル…

microservices間でデータ変更をReactiveに伝搬させる

microservices構成なものを運用していると、更新頻度が少ないデータなのに別のmicroservicesに都度リクエストをするということがよくあると思う。 例えば、Userのドメインを扱うサービスがいた場合、他のサービスはUserのデータを取得するためにUserサービス…

そうだ Go、京都。に参加してきた #golangkyoto

Go

4/29に京都の株式会社はてなさんで開催されたそうだ Go、京都。に参加してきた。 go-kyoto.connpass.com この為に上洛した、というわけではなく翌日に開催された春の天皇賞のついでの意味合いが強い。 雑多な感想 関西圏の勉強会に初めて参加したので、雰囲…

AlpineコンテナでNode.jsからgRPCを利用する場合、libc6-compatが必要

Node.jsでgRPCを利用するアプリケーションを書いてるのだが、Alpine LinuxベースのDockerコンテナで運用する場合、ld-linux-x86-64.so.2 が無くて死ぬという備忘。 Error: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (n…

gRPCとServer-Sent Eventsでサーバプッシュできるplasmaを公開しました

この度OpenFRESHプロジェクト(生放送動画配信プラットフォーム FRESH!のオープンソースプロジェクト)は、plasmaというプロダクトを公開しました。 plasmaとは plasmaとは何ぞやという話ですが、gRPC streamとServer Sent Event(SSE)を用いた汎用的なServer…

会津大学に入学しました

会津大学に入学しました 鶴ヶ城もあるし、マジおすすめ 会津大学に入学しました - 人権真骨頂

2017 CircleCI Meetup Tokyo #2 が開催されました #circleci #circleci_meetup

昨日3/10、弊社にて2度目のCircleCI Meetupが開催されました。 cyberagent.connpass.com CircleCI 2.0について CircleCI社よりDeveloperのKim氏にご登壇頂き、現在クローズドベータ公開中であるCircleCI2.0について発表していただきました。 1.0問題 ビルド…

CI環境におけるaws-cliのインストール結構つらいよね問題

つらい、というのはあくまでCircleCIとかでインストールするときの話。 github.com 動機 今Docker RegistryをAmazon ECRに移行していってるんですが、今までCI上でやっていたdocker build/docker tag/docker pushのプロセスをECRでも同様にやるために、ecr g…

JJUG ナイト・セミナー Kotlin(ことりん)でSpark Frameworkの話をしてきました #jjug #kotlin

JJUG ナイト・セミナー Kotlin(ことりん)でSpark FrameworkをKotlinで書いて気持ち(・∀・)イイ!!的な話をしてきました。 【東京】JJUG ナイト・セミナー 「Kotlin(ことりん)」 2/20(月)開催 - 日本Javaユーザーグループ/Japan Java User Group | Doorkeepe…

2/20 JJUG ナイト・セミナー 「Kotlin(ことりん)」に登壇します #jjug

イベントページが公開されたのでこちらでも告知なのですが、来る2/20(けっこうすぐやんけ!)にJJUGナイトセミナーのKotlin(ことりん)回に登壇するようです。 jjug.doorkeeper.jp タイトルはまだ未定なんですけど、内容的にはSpark Frameworkとか他の諸々…

ノイズキャンセリングヘッドホン MDR-1000Xを買った

買った。まだ初日なのだが著しいQOLの向上を感じたので書かざるを得なかった。 ソニー SONY ワイヤレスノイズキャンセリングヘッドホン ハイレゾ対応 Bluetooth/LDAC/NFC対応 マイク付き/ハンズフリー通話可能 DSEE HX搭載 ブラック MDR-1000X B出版社/メー…

GoogleにおけるRelease Engineeringとは

SRE(Site Reliability Engineering)が叫ばれて久しいですが、Googleがこの度Site Reliability Engineeringに関する書籍をWeb上で無料で公開したので早速かいつまんで読んでみた。きっとそのうち日本語化されてオライリーのebook上に並ぶのでしょう。 とりあ…

go getで取得したcliツールのバイナリを持った軽量なDockerイメージをつくる

諸事情で欲しかった。 動機 gooseというGoで書かれたcliのDBマイグレーションツールを使っているのだが、こいつのバイナリだけを持っているDockerイメージが欲しい GoにもAlpine Linuxベースの軽量なイメージがある。しかしそれでも240MBくらいある ベースイ…

昼COMP生活を始めた

タイトルの通り、昼COMP生活をはじめました。 その前にCOMPって何やねんって方はこちらを参照されるとよろしい。 www.comp.jp 所謂、日本版ソイレントと言われているやつでヒトが生きるために必要な栄養素を一食で賄うことができるといわれている完全食であ…

最近のHTTP/2のproductionでの対応状況を雑に調べた

HTTP/2のプロダクションにおける採用状況を調べてみたかったので、有名どころのServiceを色々と巡回して対応状況を確認してみた。 調べ方は色々あるが、Chrome拡張のHTTP/2 and SPDY indicatorを使えばいい。青いイナズマ表記になればOK。 chrome.google.com…

docker-composeをサポートしたCodefreshというCIサービスを使ってみた

CodefreshというDockerを使えるCIサービスがあるので雑に触ってみたというエントリです。 codefresh.io プラン プランについては各自確認してほしいんですが、基本的にPublicなリポジトリを扱い並列ビルドが要らなければ無料で使うことができます。 Open Sou…

Kotlinで書いたサーバアプリケーションのDockerイメージ構築パターン

Kotlinで書いたAPIサーバをDockerコンテナで運用する場合、どのような方式が実用的かを考えてみた。パターンと言っても今のとこ今回の一種くらい。 サンプルアプリ 今回書いたサンプルはこちら。 github.com 以前書いたSpark Framework with Kotlinの延長線…

2016年雑に振り返り

年末なので雑に2016年を振り返りましょう。 会社のアレコレ 生放送動画プラットフォームをリリースして、今も引き続き奮闘してる。途中悲しみのドメイン変更が2度あったり、事業移管で子会社出向を初めて経験したりがあったが11月に無事サイバーエージェント…

GreenWallでサクッとサービスの死活状態を可視化する

GitHubのGoのTrendを眺めてたらGreenWallという死活監視ツールを見つけたので使ってみた。 github.com GreenWallはGoで書かれた簡易的な死活監視ツールで、HTTP/HTTPSとICMP、TLSに対応してます。ヘルスチェックの実装自体はpluggableになってるので、今後色…

ウマナリティクス#2で競馬の予想の仕方について喋ってきました

ウマナリティクス#2という「競馬×データサイエンス」というイベントで喋ってきました。ちなみにデータサイエンスはまったくの素人なんですが、お声がけいただいた@data_sciesotistさんありがとうございました。 umanalytics.connpass.com 発表スライドをこち…

2016年、今年買って良かったものをまとめてみた

この記事は今年買ってよかったもの Advent Calendar 2016の21目の記事です。 www.adventar.org ちなみに昨年の記事はこちら。 blog.stormcat.io iPhone7 www.apple.com まずはやはりiPhone7。基本的にS付きを買っていたので7はスルーのパータンだけど、まさ…

asanaのBoard Layoutでカンバンとスプリントの運用を始めてみた

表題の通り、asanaのBoard Layoutでカンバンとスプリントの運用を始めてみました。 動機 JIRAに疲れてしまった JIRAは社内で用意してもらってるオンプレだが、ネットワーク的に閉じられてしまうため他のサードパーティーのサービスとの連携がつらい といった…

Slackでtimesを駆使してコミュニケーションをドライブさせるのと、霊圧重要よねっていう話

この記事はSlack Advent Calendar 2016の19日目の記事です。 というわけでプロジェクトでやってるSlackを使ったtimesの運用について雑に紹介します。 チームtimes チームでのtimesというのを今年の夏くらいから始めてます。ここで言うチームとは、プロジェク…

Spark Framework with Kotlin

この記事はKotlin Advent Calendar 2016の12日目の記事です。 qiita.com さて、今年は一部のmicroservicesをKotlinで実装してリリースしたりしたので個人的にはKotlinを実戦投入した記念すべき年とも言えます このmicroservicesはSpringBootで実装されていま…

最近のTerraformのディレクトリ構成こうなった

Terraformの運用を初めてなんだかんだで1年半くらいたったんですが、プロジェクトによって環境も運用も違うので開発環境や本番環境の構成をどのように管理しているかというのは結構バラける気がしてます。1年半経過して行き着いた形を雑にシェアするだけのエ…

dind(Docker in Docker)で複数のdocker-composeを管理する

この記事はDocker Advent Calendar 2016の8日目の記事です。 qiita.com 動機 microservices運用してるし、検証用プロジェクトとか遊び用プロジェクトとかあるし、複数docker-composeをローカルで運用するのしんどい。 dind(ディーインディー) dindとは何ぞ…

vscode-glideというglideのvscode extensionがあった

この記事はVisual Studio Code Advent Calendar 2016の7日目の記事です。にわかvscoderなのでたいした内容じゃないのであしからず。 qiita.com わたしとVisual Studio Code 以前はGoをIntelliJ IDEAのgo-lang-idea-pluginで書いてたけど、vscodeはなかなか軽…

秘技!無停止ドメイン移行芸

この記事はCyberAgent Developers Advent Calendar 2016の5日目の記事です。 www.adventar.org 4日目はyodareさんの産まれたてのAbemaTVは、ユーザにどう受け入れられていたか?:Twitterデータを用いた分析でした。 ちなみに弊社のAdvent Calendarは3年連続…

たった10年前の某IT企業でのこと

年末だからなのかはわからないですが、何か最近闇エントリが氾濫している気がするので自分も書いてみる。10年前にプログラマとしてのキャリアをスタートさせたわけですが、当時入社した独立系の中小SIer企業(D社とよぶことにする)についての話し。 ※あらか…

stackimpactでGoアプリケーションのメトリクスを可視化する

stackimpact というサービスはご存知でしょうか。 このサービスは何かと言うと、Goアプリケーションのメトリクスを可視化するためのサービスです。競合はNewRelicあたりでしょうかね(最近NewRelicでもGoが正式にサポートされましたが)。 とりあえず使って…

エンジニア立ち居振舞い(動画サービス開発者編)

お題「エンジニア立ち居振舞い」 TLを眺めていたらこんなのが流れてきたので乗ってみます。 blog.hatena.ne.jp メトリクス・パフォーマンスの監視 mackerel EC2やRDSといったAWSリソースの監視や、サービスの外形監視等にmackerelを利用しています。もちろん…

AWS Case StudyにてFRESH!のユースケースが公開されました

AWSは膨大な規模で利用されているので、各社のケーススタディが先人の知恵として公開されています。 自分の担当しているFRESH!でも日頃からAWSをフルに活用させてもらっています。 abemafresh.tv というわけでこの度、FRESH!のAWSの利用事例がAWSのCase Stud…

整備済製品のMac Proを買った

先日、Appleのイベントで新型Mac Proの発表は予想通りなかったので、整備済製品の3.5GHz 6コア Intel Xeon E5を買いました。 動機 普段、自宅も会社もMBP Retina 15inchのメモリ16GB使いだが、当方の普段の使い方ではメモリ16GBは心もとなくなってきた 新型M…

.ioドメイン障害でDocker運用環境に結構影響が出ている件

現在、.ioドメインの名前解決に問題が起きています。詳しくは以下の記事を見て頂けると一目瞭然です。 qiita.com .ioドメインは近年結構(開発系クラスタにとっては)人気で、ちなみにこのブログも.ioドメインを利用しているため、閲覧が難しい状況でした。 …

CircleCIでyarnを使う

世間はnpm互換のパッケージマネージャであるyarnで盛り上がっているようです。 github.com ヘーシャではCircleCIでnpmなプロジェクトをいっぱいビルドしているので早速雑に試してみた。 github.com circle.yml とりあえずcircle.ymlはこんな感じ machine: no…

KotlinとSpring Bootとか諸々を使ってMicroservicesを作ってみた

最近バックグラウンドで稼働する決済系のMicroservicesをKotlinで作ってめでたく運用開始したので、どんな感じでやったかを雑に共有。 Kotlin選択の理由 自分はScalaが好きなんですけど、周りに書ける人いないし、そんなに時間もないし、で素のJavaもダルい…

台風の中GitHub Japanを雑に訪問してきました

元同僚のP氏が現在GitHub Japan社にいるのですが、よくSwarmでチェックインしているのを見てSwarmヤクザを自認する自分としては、これは一度チェックインせねば気が済まないということで訪問してきました。 エントランス ちなみにGitHub Japan社は芝大門にあ…

Go1.7系でVisual Studio Code(vscode-go)の補完がぶっ壊れる件の修正方法

ちょっとの間Kotlinを書いていたら、その間にGo1.7.1まで行ってて昨日重い腰を上げてアップデートしました。それは良いとして、当方GolangはVisual Studio Codeで書いているんですが、アップデートの弊害かコード補完が効かなくなりました。 github.com 問題…

gRPCとgrpc-gatewayでWebオペレーションの形を再考してみた

先月、GoogleがgRPCのバージョン1.0を発表しました。 osdn.jp gRPCとはGoogleが公開しているHTTP2ベースのRPCフレームワークで、Protocol Buffersでサービスインタフェースやリクエストやレスポンスのデータ構造を定義します。特定の言語に依存しないメリッ…

Logbackでlogstash形式のログを出力し、fluentdでElasticsearchに転送する

今ちょっとしたmicroservicesをKotlin + Spring Bootで書いているんですが、ログをJSONで出力してfluentdからElasticsearchに送信するにはどうするのがスマートなのかと思いを馳せていました。 Java系のロガーといえばlogbackがかなり有名で広く利用されてい…

Dockerホストのパフォーマンスを引き出すTCPカーネルパラメータチューニング

もう半年くらいフルDockerでmicroservicesなサービスを運用してるんですが、イマイチパフォーマンスを出し切れていないなという面がありまして、今回DockerホストのTCPカーネルパラメータを抜本的に見直しました。 そしたら劇的に症状が改善して、インスタン…

Kibanaのグラフ作成をYoutubeの動画で学習する

サーバのログをElasticsearchに送信し、Kibanaでログを閲覧したり可視化するっていうのはもはや当たり前になった感がありますね。 www.elastic.co Visualizeを使いこなしてこそKibanaの本領発揮なわけですが、KibanaではArea ChartやLine Chart、Pie Chart等…

okhttpでSocks Proxy経由のHTTPリクエストをする

備忘録的小ネタ。 動機 ネットワーク的に制限されている社内基盤のAPIを利用するプログラムを書いているが、オフィスのネットワークからじゃ直接アクセスできないので通信が許可されているサーバからじゃないとHTTPでアクセスできないのでタルい Mock使って…

DockerfileをLintするにはhadolintが良さそう

DockerfileもLintしたいなぁという欲がずっとあって調べてみたらこんなのを見つけた。 github.com Haskellで書かれたDockerfileのLintツールのようです。 インストール Macならhomebrewでできます。 $ brew install hadolint Lintしてみる サンプルとして提…

Switcher StudioでiPadとiPhoneでスイッチングしながら動画配信する

Switcher Studioという動画配信アプリをご存知でしょうか?ちょっと利用してみたんですが、自分のような動画配信の素人でもそれっぽい配信ができることがわかったので紹介します。 Switcher Studioとは switcherstudio.com Switcher StudioとはiOS専用の動画…

個人的な老害エンジニア行動指針を策定した

自分は今33歳なので、Webの世界においては完全に老害と言われてもおかしくない世代にさしかかっています。自分は老害には決してならないと強い意思を持っていたとしても、どうやら脳科学的には避けられないものだと聞いたことがあります。 というわけで、意…

Dockerで開発環境のMySQLと同じデータを手軽にローカル環境でも利用する

Microservicesを運用していると、サービス毎にDBを持つことになってどうしても扱うDBやスキーマが多くなってしまいます。 開発環境のMySQL(AWSならRDS)に直接接続するならまだしも、DBはローカルにもって好き勝手に使ったり、汚したりスクラップしたりした…