22 Jan 2020, 14:44

Sock Shopを使ったマイクロサービス体験のハンズオン

あけましておめでとうございます。@mosuke5です。
マイクロサービスの実際の体験や研修を探したことがありますでしょうか。 残念ながら、実際に手を動かしなら学ぶトレーニングや研修は多く存在しませんが、 マイクロサービスのデモアプリケーションとしてSock Shopが有名で、これはトレーニングに最適です。

日本語でもたくさんのSock Shopの紹介やインストール記事がでています。しかし、自分もそうだったのですが、なんとなく起動して動かして、終わりとなっているものがおおく、どんな観点でこのSock Shopをいじっていけばいいかの情報が足りないと感じました。 機会があり、Sock Shopをさわるタイミングがあったので、実際にどんなデータ構造になっているのか、マイクロサービスゆえの課題など、Sock Shopから少しでも多くの学びが得られるようにこの記事を書きます。

21 Nov 2019, 11:32

Datadog APMとトレーシングの仕組みについて

こんにちは。@mosuke5です。
みなさん普段の監視はどのように行っていますか?Datadog使っていますか?

最近Datadogを触る機会が多いのですが、Datadogはobservabilityの3本柱ということで、メトリックとトレース(APM)とログ、この3つを統合した監視サービスであることを強くおしだしています。 3つの分野のそれぞれに対応したOSSやサービスは多いですが、統合されてシームレスに連携できる点はDatadogの非常に強いポイントと感じます。 さて、そんななかでDatadog APM (Application Perfomance Monitoring) が強力だったので紹介したいのと、その仕組みを探っていきましょう。

26 May 2019, 17:30

[基礎] ElasticSerachなどの外部コンポーネントがあるときのテスト

お久しぶりです。@mosuke5です。
新しい会社に入って1ヶ月ほど経ちましたが生きています。 今回は、ElasticSearchを題材にしますが外部コンポーネントを利用しているアプリケーションのテストについてです。 すごく初歩的なところですが、いくつか考えなければいけないポイントもあったのでまとめました。

はじめに

今回の題材は非常にシンプルな検索機能をもったアプリケーションです。 構成はアプリケーションはRailsで、検索エンジンを担うのがElastiCsearchという前提です。

アプリケーションがもつmethodは3つで以下としています。

  1. GET ‘/’ => ‘Hello'を返す
  2. GET ‘/search’ => GETパラメータ’q'のキーワードで検索した結果をjsonで返す
  3. POST ‘/update’ => 所定のjsonファイルをPOSTするとbulkでinsertされ、その結果をjsonで返す

20 Dec 2018, 21:46

SlideShare APIをGoogleAppsScriptから利用する方法

どうも、SlideShareの記事の管理をスプレッドシートでやりたいというちょっとした自分のニーズがあって、 SlideShare APIってあるのか?そしてGoogleAppsScriptもほとんどやったことがない、自分でしたが試してみたのでメモっておきます。

02 May 2018, 23:14

Docker Compose上でのRailsアプリケーションの開発フロー

早いものGWも終わり一週間が経ってしまいました。
長期の連休になるとだいたい自分は趣味のアプリケーション開発をよくすすめています(ふだんからやりたいけどなかなかできない)。今年のGWも趣味アプリケーションの開発をしてました。

いま作っているアプリケーションは自分の英語学習用のサービスなのですが(サービスについては別途どこかでご紹介したい)、新しい技術を実際に試す場としても利用しています。自分はいつも趣味アプリケーションで新しいことを試してみて、よかったらそれを職場にもっていくことが多いです。

アプリケーションはRailsで書いているのですが、Railsの他にMySQLやNginx、ElasticSearch、Kibanaなど関連するコンポーネントが多いです。 そのため、Docker Composeを利用して動かすことにしています。Dockerは以前から使っていたのですが、実際にアプリケーションのせてとして開発・運用してみると、いろいろ問題があり試行錯誤することになりました。

GWはその部分と主に格闘していて、最終的にそこそこ良い開発フローを整えることができました。今日はそのご紹介です。
※もちろん、現時点でのやり方であり、改善しているので現状と異なることも多いと思います。

26 Jul 2016, 21:59

PHPでHTTPヘッダー、x-forwarded-forを受け取る方法

こんにちは@mosuke5です。
もともとApach+PHPで動作していたシステムに、リバースプロキシ(Nginx)を前段に挟むことになりました。理由は、もともと社内ネットワークでのみ利用するシステムだったのですが、インターネットの外からも利用することになり、インターネットからの入り口にリバースプロキシを導入したからです。
つまり、Nginx->Apache->PHPという構成になりました。
リバースプロキシを導入した際によく問題となることだが、Apacheからみるとすべてリバースプロキシから通信がきているようにみえます。 接続元のIPアドレスがすべてリバースプロキシのもの変わってしまいます。

そこで、HTTPヘッダーに接続元のIPアドレス追加しアプリ側(PHP)で受け取る方法とその際の注意点を書きます。

28 Mar 2016, 18:16

HerokuをRailsアプリのステージング環境として使う
趣味で作っているアプリ(Rails)があるのだが、はじめHerokuで運用しようと検討していたが、 データ量が多いためすぐにHobbyプランで

16 Mar 2016, 17:54

実装案を使って、DBのViewの使いどころを検討する
ある実装についてどのように実装するか悩んだ。 その悩んだ過程や実装案をメモする。似たようなケースの実装案として参考になればと思う。 状況 ある申請

06 Mar 2016, 14:05

【錦織圭も分析】ATP TennisのデータスクレイパーGem作った
背景 このブログは基本的に技術ブログとしてやっているので、 テニスの話題ははじめてだが、テニスがすごく好きだ。 特に、プロの試合の観戦はとても好き

19 Jul 2015, 13:58

DockerとWebSocketを使って、vimの設定をブラウザで即体感できるサービスを作った
※ブログのドメイン変更によりはてブが消えてしまいましたが、450はてぶくらいついてました。こちらが当時の痕跡 2014年の秋から`@mogul