Kekeの日記

エンジニア、読書なんでも

Telepresence概論

Telepresence 動機 マイクロサービスになればなるほど、テストが難しくなってくるので、ローカルの開発環境を整えるの難しく、その問題を抱えるのは必然かなと思います。 今回はその時に使えるToolであるTelepresenceを使っていこうと思います。 Telepresenc…

継続的デリバリーのためのGoCD on Kubernetes

動機 GoCDって「Go」が一般性の高い言葉が故に、躓いたときに調べるのが面倒だなと思って避けてきました。 しかし、技術選定をする上で、一度は触っておかければならないと思ったので調査してみます。 いくつかの図は、本サイトから引用させていただいていま…

SkaffoldとDraftを比較してみる

動機 私は新卒としてとある会社のエンジニアになったわけですが、同期に「Skaffoldってどうなの?チームで導入する価値ある?」のような質問を受けました。 私の意見としては、必要がない、と答えました。というのも、 *入社した会社が導入していないこと * …

3人で決済プラットフォームを2日で作り上げたSRE的戦略の話

アーキテクチャの略図 動機 個人的に最もSRE的なバリューを作ることができて、チームとしての生産性も最も高かったのが、決済プラットフォームの開発でした。 「制約の中では自由である」のが社会的な自由であり、その中で幸福の契機を探しているのが私たち…

Chaos Engineeringの8つの罠

動機 2019年4月から新卒入社してSREとして働いている私は、今期の目標の一つに「Chaos Engineeringの本質的理解とOSS貢献」があります。 今回はフィードで流れてきた「Chaos Engineering Traps」という記事が素晴らしく良かったので日本語訳して、価値提供を…

EmbulkのPluginをRubyで作成する"いろは"

本記事 本記事は、EmbulkのInputとOutputに対応するPluginをRubyで作成する手順を解説します。 対象としてはDialogflowです。私はGoogle HomeとLine Botを使って家計簿を管理しているのですが、訳あってDialogflowのプロジェクトを移行しないといけなくなり…

Chaos EngineeringのためのChaosKubeを使ってPodを壊してみる

動機 カオスだった平成最後の日に。 日本では未だ、マイクロサービス化が海外と比べて対応が遅いと言われていて、Chaos Engineeringが採用されるのも遅い傾向があります。 SREとして新卒入社したので、自分の知識の枠を広げるためにChaos Engineeringについ…

Kubernetes Downward APIを使ってDogStatsDにカスタムメトリクスを送れるようになる!

動機 最近、比較的モダンなモニタリングに関する本が出ていたので読みました。 入門 監視 ―モダンなモニタリングのためのデザインパターン作者: Mike Julian,松浦隼人出版社/メーカー: オライリージャパン発売日: 2019/01/17メディア: 単行本(ソフトカバー…

AppleScriptの概要と主要コマンド(随時更新)

動機 私はもとより自動化が興味の中心にいて、Gitなど繰り返しタスクを自動化しています。 その一連の過程で、開発者(=私)に対してフィードバックをするときに、AppleScriptを使って通知などを制御していました。 そのようなものづくりに関しての知見は、普…

一度確認しておきたいSemantic Versioning

Version Semantics 体系的に、Version Semanticsを学んで行こうと思います。 動機としては、今年から新卒としてエンジニア職につくので、チームで齟齬が生じないように事前に知識をつけるのが目的です。 セマンティックバージョニングは公式ドキュメントだと…

Visual Studio CodeでCode Syntax Highlight Extentionを作る

動機 現在新卒研修期間中です。 今日は休憩時間が多かったので、VSCodeのExtentionを作りたいと思って、簡単に作って、公開しました。一切、トークン化など知識がなかったので、無理かもと思っていましたが、正規表現さえ上達すれば簡単に作れました。 もと…

HTML、CSS設計方法!OOCSS、SMACSS、BEMについて

「良いHTML、CSS」の基本ルール CSSといえど、プログラミング言語であることは間違いなく、とりわけ「CSS」だからというものはありません。 どの言語においても「変更に耐えうるコード」が一つの鍵となってきます。 特にCSSは軟弱な言語であり、セレクタの書…

Fish shell packageを作成して、公開するまでのいろは!

Fisherとは FisherとはFish shellに関するパッケージマネージャーです。似たようなものでOh-my-fishがありますが、使い勝手はFisherの方が便利で簡単であるという印象です。 そんなわけで、よくfish shellを自分は書いて、コマンドなどを作成したりするので…

Lighthouse Botを設定する方法 with TravisCI

動機 私は以前、ポートフォリオサイトを作成しました。 Pocketに130ぐらいポケットしてもらった「Lighthouseを使ってVue.jsのサイトを爆速化する」というものでLighthouseを使ったフロントエンドのパフォーマンスチューニングを紹介しました。かなり反響があ…

Gulpでワークフローを効率化しよう!

動機 メモを整理していたときに、もっと簡潔に明文化したいと思って本記事を書き起こしました。 自動化の道具箱の一つでもあるので、ぜひ気になる人はご覧ください。 かなり入門的な記事になるので、これから入門される方のサポートができれば嬉しいです。

Browserifyの上級指定教科書『Browserify Handbook』を読みすすめる

動機 ハリーポッターの作品中には『幻の動物とその生息地』のようにホグワーツ指定の教科書があります。 Browerifyも同様に、Browserifyを学ぶにあたって必要な上級教科書『Browserify Handbook』があります。 上級といっても非常にシンプルにわかりやすく解…

Google AssistantとDialogflowで使えるLINE家計簿Botを作ってみる!

動機 アドラー心理学によれば、私たちは常に目的をもって行動しています。 そして、過去は一切関係ないと。これがアドラー心理学の目的論の主眼点であり、これが過去のフロイトとも大きく論点が異なるものです。 特に、私はお金の管理が面倒で、たまに後悔す…

DevToolのConsoleを使い倒すテクニック集

Consoleとは Windowインタフェースのプロパティですが、このインタフェースは特別に省略することが許されているので window.console.log("hoge"); or console.log("hoge") と、どっちの書き方でもブラウザでは出力することができます。

Web Storage vs Cookie! どのように違って、どのように使うの?

動機 半年前にWeb Storageというものフロントエンドに詳しい友達から知りました。 それ以来、Web Storageのことを思い浮かぶこともなかったのですが、ちょっと時間があるので調査していこうと思います。

影との戦いを制する力を手に入れる!CSSのbox-shadowプロパティを理解する

はじめに ここの節は余談なので飛ばしてもらっていいです。 ジブリ映画『ゲド戦記』の原作であるゲド戦記シリーズの第1巻『ゲド戦記 影との戦い』では、主人公のゲドの学童期が描かれます。 すでに奇才と認められていたにも関わらず、ゲドは他人より優れたい…

Digdagでワークフローを宣言的に書く!

本記事 私は、いくつか家内サービスを運用しています。 例えばCloud FunctionsとCloud SQLを使った「家計簿」を家族全員が使っていますし、自宅に「監視カメラ」をおいてLineBotで適宜確認できるようになっています。 無料枠を使い回しているのでデータ移行…

NATS on Kubernetesのいろは。メッセージセマンティックからPrometheus、Grafanaによるモニタリングまで

本記事 本記事はKubernetes 3 Advent Calendar 2018の14日目の記事です。 本日(2018/12/26)の投稿になっているのは、空きがあったため埋めるために参加したからなのであって、決して遅刻などではありません!笑 モチベーション 私は学部3年生だった去年の201…

Concourseで継続的デリバリー。そしてSpinnakerとの比較

本記事 本記事はConcourse Advent Calendarの23日目の記事になっています。 もうすぐ学部を卒業するので、積極的にアウトプットしようと思って、以下のAdvent Calendarも参加したので、もし興味がございましたらご覧ください。 Vue.js Advent Calendar 2018 …

Siderでコードレビューを自動化してプロジェクトのエントロピーを維持する

本記事 本記事では自動コードレビューができるSider(旧SideCI)を使ってみようかなとおもいます。 よくミスタイプとかして、それを修正するプルリクが必要になったりするとプロジェクトのエントロピーが圧倒的に増大するので防ぐためにも導入してみます。 イ…

Raspberry PiとImgurを使って無料で自宅監視カメラLINEボットを構築する

本記事 本記事では、実際にRaspberry Piのカメラモジュールを使って監視カメラサービスを構築してみようと思います。 完成形は以下のようにかまると呼びかけると家の画像を返信してくれるものです。すべて無料の制限内にします。 モチベーションとしてはカメ…

Argo CDによってGKEでGitOpsをする

はじめに 最近読んだ鎌倉時代の歌人、鴨長明の『方丈記』にも ゆく河の流れは絶えずして、しかももとの水にあらず。 とありますが、私たちのソフトウェアも然りです。 毎日更新され、デプロイされ、時に不可逆に破壊され。そして、ちぐはぐな形に落ち着くま…

CircleCIでSpinnakerのデプロイメントパイプラインをデプロイする

どうも、もうすぐ大学卒業の@timtimtim1026です。 もしコメントなどがございましたらDMなり、リプライしてください。 本記事はCircleCI Advent Calendarの14日目の記事になっています。 本記事 この記事では、CircleCIを使ってSpinnakerのデプロイメントパイ…

Terraformで運用しているLineBot家計簿をGCPで使う

はじめに 私は自分で作ったLineBotを使って家計簿をつけています。 クラウドにはGoogle Cloud Platform(GCP)の無料枠を使っていて、データベースにはCloud SQL(MySQL)を使っています。 自分でデータを集めているので、以前にもApache Supersetなどを用いてデ…

Lighthouseを使ってVue.jsで書いたポートフォリオサイトを爆速化する

本記事はVue.js Advent Calendar 2018の第3日目の記事です。 はじめに GCPの無料枠が終了したため、ポートフォリオサイトはクローズドしましたが、引き続き本記事はご覧いただけます。 私は以前、インターンシップなどの選考に備えて自分のポートフォリオサ…

Github Actionsが使えるようになったので使ってみる

本記事 本記事では、少し前にアナウンスされたGithub ActionsというCIツールのようなものを実際に触ってみて、現時点での使い勝手をまとめてみようと思います。 実際に使えるようになると以下のようなタブが追加されています。 初めて使ってみる Actionペー…