Usual Software Engineer

よくあるソフトウェアエンジニアのブログ

リバースプロキシのテストを書く方法

6月30日です。今日で6月も終わりです。でっていう。 Nginx や OpenResty 、 Varnish などをリバースプロキシとして使用していることが多いと思いますが、 リバースプロキシ単体で設定が正しいかどうかをテストするのって難しそうなイメージがありませんか? …

fluentdの負荷分散のためにmulti processを有効にする

ログ -> fluentd -> fluentd -> ストレージ のような流れで fluentd を酷使していると、1コアしか使えない fluentd が悲鳴を上げて そこがボトルネックとなってスループットが上がらない問題にぶつかります。 そこで使えるのが fluent-plugin-multiprocess …

今更だけどdocker composeのベストプラクティス

複数のdocker imageとcontainerを使ってサクッと環境を整えたいときにdocker composeってとても便利ですよね。 単純な構成だと公式ドキュメントを読めばわりと簡単に思い通りになるのですが、 意外と慣れるまではどんな設定をしてどうファイルを配置するか迷…

エンジニアが気になる完全食BASE PASTAを食べてみた

エンジニアには怠惰な人が多いのかなんなのか、完全食に注目している人が多いように思います。 僕もその一人で、もちろん美味しいものが食べたい時もありますが 基本は面倒くさいのでこれ食べておけば万事オッケーですっていう完全食があればそれでいいやっ…

Spring BootでWebじゃないコマンドラインアプリケーションを作る

JavaでMVCなWebアプリケーションを作成する時にSpringはとても便利で定番かと思います。 中でもSpring Bootは従来のwarにかためてサーブレットコンテナのTomcatやJetty上で動かすだけでなく、 それだけで動作可能なjarを作ることも可能なため、近年よく使わ…

ThingsboardのKafka pluginを試してみた

普段IoTなクラウドプラットフォームを運営しているエンジニアをやっております。 たまには競合プロダクトも触らないとね、ということで今回はThingsboardを触ってみました。 ついでにデフォルトで組み込まれているKafka pluginも試してみました。 今回のサン…

Gradleでdependencies無しの独自pom.xmlを生成する

小ネタです。 GradleでJavaのプロジェクトを作成する時に、何らかの理由でpom.xmlを生成したい時があるかと思います。 僕の場合はDroolsのWorkbenchにjarをアップロードするためにそのjarに独自のpom.xmlを含めたかったのですが、それにはちょっとしたテクニ…

サーバーレスアーキテクチャでモニタリングシステムを実現する

モニタリングシステムはサーバーレスアーキテクチャで実現されるべきである。 みなさんは自社のサービスを外のネットワークからE2Eで死活やパフォーマンスを確認したい場合に、どのようにそれを行っていますか? モニタリングシステムと言えば今はZabbixが定…

2017年やること

思いつきで今年の目標的なことを書いてみます。毎年だいたい目標はもっているのですが、あまりブログなどで宣言しない方が良いと思ってる人間なので今回はただの気まぐれです。 宣言しないことの強さについて前にブログを書いたことがあったのですがたまには…

DroolsでPPAP

Droolsって知っていますか?おそらく知っている方はかなり少ないのではないかと勝手に思っています。 Droolsとは、JBossが開発しているOSSのビジネスロジック統合プラットフォームです。簡単にはルールエンジンとして使えます。 ルールエンジンとは、ある特…

nginxのリクエストを制限することができるngx_http_limit_req_moduleでハマった

nginxのリクエスト数を制限する、ngx_http_limit_req_moduleの動作を勝手に勘違いして勝手にハマったというお話です。 大したことではないのですがdockerでその動作を再現した例はこちらです。 github.com 何にハマったのかというと、”5r/sが5req per secで…

IoT業界に入って半年以上経って気づいたIoTとは何なのか

昨年からIoT業界でソフトウェアエンジニアとして働いています。 IoTって何なのでしょうか? 入ったばかりの僕はそれを聞かれた時、なんとなく皆がわかっている程度の あらゆるThing(モノ)がInternet(インターネット)に繋がるんだよ と言っていたのですが…

No XMLなSpring Web Applicationとspring-data-jpaのサンプル

久々にJavaのwebアプリケーション実装してみたら全然覚えていなくて リハビリがかなりつらかったです。悲しみ。 特にブログ書くことはないのだけれど定番のXMLなしのSpringアプリケーションと spring-data-jpaを使ったWeb APIの実装をテンプレ的に残しておき…

PipelineDBのレプリケーションをセットアップする

前回に引き続きPipelineDBネタ。 冗長化や負荷分散のための第一歩、レプリケーションです。 PostgreSQLはversion9.4以降標準でレプリケーションの機能を持っていて PipelineDBでも同じようにStreaming Replicationがサポートされています。 公式ドキュメント…

PipelineDBにFluentdからログデータを流して集計する

リアルタイムログ解析としてEFKなどが定番のようになっていますが 実運用でなかなかEasticsearch導入に気がひけたりKibanaで細かい分析とビジュアライズができなかったり、 一方で本格的に分析のシステムを構築するならHadoopやCassandraなどでクラスタ組ん…

IntelliJ IDEAでRailsプロジェクトを開く

ブログ全然書いていなかったので軽めのエントリでも書いておきます。 IntelliJ IDEAは便利なIDEですが、Java以外の言語のソースコードもちょっと読みたいねとか そんな時にあんまり優しくないことがあります。 RubyMine買えとかPhpStorm買えとかあるかと思い…

シリコンバレーに憧れて一人旅してみた【本編】

準備編はこちら シリコンバレーに憧れて一人旅してみた【準備編】 - Usual Software Engineerinnossh.hatenablog.com いよいよ出発 成田空港を出発し、サンフランシスコ国際空港に到着するまでだいたい9時間ぐらいです。 たまたま隣になったアメリカ人の女性…

何もいじってないのに急にVagrantのprovisionのchef-solo実行がエラーになった

久々にvagrant provisionしてみたらエラーでうまくプロヴィジョニングできず えいやーでvagrant destroyしてvagrant upし直してみてもうまくいかなくて 何もいじってないのになんでだよおおおってなることありませんか?あります。はい。 役立つことは少なそ…

シリコンバレーに憧れて一人旅してみた【準備編】

エンジニアならだれでも憧れるシリコンバレー。 といっても実際は、ネットで情報が手に入るから日本にいても一流エンジニアになれるよね、 というか日本の方が住みやすいから日本でいいじゃん、 みたいな意見の方が多く耳にすると思います。 そんな中僕はど…

ここ一年の振り返り

先月、僕が開発のマネージャーを努めていたサービスがクローズになりました。 こんなに無力さを感じたことがあったでしょうか。 ただ、得られたことや感じたことは大きいので 最後の振り返りとして書き留めようと思います。 立ち上げ 思い切った新規開発でリ…

ぼくのかんがえたさいきょうのえんじにあそしき

最近、エンジニアにとって最高の企業とはどんなものなのか、もんもんと考えている。 エンジニア歴4年のぺーぺーではあるが、今までの知見と知識と経験を寄せ集めて どういったエンジニア組織が良いのかまとめたみた。 これは将来起業を志す自分に対してのメ…

Vagrantで構築したvm上でRailsアプリケーションをセットアップする時のbundle installがエラーな話

最近Rails触ってます。 と言ってもコーディングではなく環境構築周りですが。 Rubyの知識が浅いためかハマってしまったので、タイトルの件でメモ書きしておきます。 既存のプロジェクトがChefを使ってプロビジョニングを行っていたので、 少し時代に遅れてる…

AWSのEC2インスタンスにHHVMをインストールする

最近業務の開発環境・サーバ環境が安定定着してきて あまり新しいミドルウェアに触れたり新しい環境を構築することが少し減ったので それなら、と思いずっとなかなか触れていなかったAWSのEC2をいじってみることにしました。 ついでにPHPも完璧でないJavaer?…

How Google Worksを読んで思った組織デザインのこと

How Google Worksを冬休みに読みました。 たくさんエンジニア企業らしい良い部分が詰まっていて なかなか気持ちが高ぶりました。 そうだよねー、そうなったらいいよねー、と同意する部分が多かったですが 中には新しい発想が得られた内容もあったので一つピ…

iOSアプリのバンドルのバージョン設定まとめ

iTunes Connectが新しくなり、XcodeでArchive, Distriburionを実行して 生成したバイナリをitunes Connect上にアップロードする形になりました。 もともとiOSアプリのバージョンについての認識が甘く アップロード時にエラーが出て時間のかかるビルドを何度…

エンジニアリーダー論(仮)

珍しく技術の知識エントリじゃなく、自分の近況のエントリを書いてみます。 現在ベンチャー企業で技術責任者として奮闘しています。 プロジェクトは2つ動いていて、両方の技術の根幹を担っているわけですが、 そのうち1つのプロジェクトではプロジェクトマネ…

シンプルなPythonのDBマイグレーションツールsimple-db-migrateとは

Webサービスを継続的に開発運用していくうえで データベースのデータ構造の更新は避けられませんね。 複数人で開発する時に必須と言っても良いソースコードのバージョン管理ですが ソースコードのみならず、データベースのバージョン管理をすることで すでに…

Ansibleのplaybookのサンプルを作ってみた

作ったのは結構前なんだけどブログに書き残してなかったので掲載。 2014/07/12 最近業務ではアジャイル開発のスクラムマスター風なポジションで コードも書いてはいるもののほとんど環境構築おじさんになりつつあります。 インフラ屋ではないのですが、Ansib…

社内ドキュメントの重要性

社内ドキュメントって重要ですよね。 基本的に会社内でのみ必要な会社の知識って、脳みそのメモリの無駄遣いだし 外に書き出しておくことで属人性も減らせてハッピーだなと思っています。 自分はひたすら書き残すようにしているのですが なかなか積極的に自…