Usual Software Engineer

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

2018年やること

2017年は気まぐれで一年の目標エントリ書いたけど、なんか自分の中で今年も書かなきゃいけない空気になってしまったので、気張らずほんのり書いておこう。 個人でwebサービスを公開する 今年はちゃんとやる。できれば上半期で 毎月ブログを書く 引き続き 毎…

2017年終わり

2017年も終わりなので振り返ってみる。 innossh.hatenablog.com さて結果は 月1回ブログを書く 達成。無理やり書いたエントリもありつつ、わりと良いペースだったと思う。来年も続けたい。 英語を話す機会を増やす 達成。英会話教室に通い始めて、前よりはマ…

Ansibleモジュールのchangedの判断基準

Ansible で playbook を実行する際に、事前に check mode で一度変更点を確認することがよくあると思います。 具体的には check mode の出力結果で、 playbook 内のどの task が changed になり、どの task が changed にならないかを見ることで、今回の実行…

Amazon Echo(Alexa)とIRKitをIFTTTで連携してホームオートメーション

なかなかハマったので軽くまとめておきます。 一年ほど前に Amazon Echo と Google Home のこんなエントリを書きましたが innossh.hatenablog.com とうとう日本にも Amazon Echo が発売されましたね!テンション上がってさっそくゲットしました。 ひとまずテ…

Ansible TowerのOSS、AWXでAnsibleの実行管理をする

AWX をご存知でしょうか。 Ansible Tower の OSS 版として公開された、 Web インターフェイスと REST-API を持った Ansible の実行管理ができるプロダクトです。 今まで Ansible を使う時、実行者がそれぞれのマシンで実行したり、それを避けて Jenkins など…

Ansibleでデプロイする時に使える小ネタ

Ansible ってとても良いツールですよね。3年以上前に初めて触った時は Chef や Puppet から開放されると思うと感動するくらいでした。今でもお気に入りなプロダクトの一つです。 というわけで今回は小ネタで、 Ansible でアプリケーションのデプロイ用 playb…

header と Nginx と ELB

ブログのネタが見つからずに9月も終わりかけているので苦し紛れで前回のエントリと似たような内容ですw innossh.hatenablog.com 前回のエントリのおまけで書いたように、 AWS の ELB ではレスポンスヘッダが意図せず書き換えられることがあります。 そのこ…

Nginx/OpenRestyあるある言いたい

Nginx を使う時に、設定に対して動作が意図したとおりにならないことがよくあります。 おそらく初見殺しで何度もハマる人が多いのでここであるあるをまとめておこうと思います。 OpenResty の話も混ざっていますがほぼ同じと考えて良いです。 ではさっそく、…

IntelliJ IDEAでWildflyアプリケーションを動かす

小ネタです。 Java の Web アプリケーションを開発している場合、 IntelliJ IDEA 上で Tomcat や Jetty を動かして Web アプリケーションの動作確認を行うことがあると思います。 今回は Wildfly で同じことをやってみます。 Wildfly はおなじみだけど馴染み…

テストコードについて最近思ったこと

毎月1エントリごときでつらさを感じてるブロガーだけれど文章書くのは嫌いではないので ポエムみたいなエントリをはさみつつ精神を落ち着かせようと思う。 テストコードは実はビジネスサイドにとってこそ重要なものである、という話。 これはうちの会社のCTO…

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

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し直してみてもうまくいかなくて 何もいじってないのになんでだよおおおってなることありませんか?あります。はい。 役立つことは少なそ…

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

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

ここ一年の振り返り

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