websocket in golang memo

February 18, 2016

use gorilla websocket see https://github.com/gorilla/websocket#gorilla-websocket-compared-with-other-packages

session cookie memo

February 12, 2016

development nginx -> redis(cache) -> webapp production loadbalancer -> nginx -> redis(cache) -> webapp

docker memo

February 11, 2016

usually i’m confused which docker command to use… docker : command for docker container docker build -f /path/to/Dockerfile : build docker image via Dockerfile docker-machine : command for host machine of docker docker-compose : set up containers via docker-compose.yml # build image via Dockerfile > docker build -t mysql:5.6 . (--no-cache=true when dont want to use existing cache) # list existing images > docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5. ... Read more

12factorapp

February 4, 2016

12 factor app コードベース コードベースとアプリケーションは常に1対1、デプロイは環境(開発、ステージング、本番等)毎に複数存在 共通のコードはライブラリ化する 依存関係 依存関係の明示と分離 ex. package.json, gem システム固有の暗黙的なツール(curlなど)を前提にせず、必要な場合はvendor appとして内包する 設定 デプロイ毎に異なる設定をコード内に格納するのでなく、環境変数に格納する ソースをgithub等、ossとして公開状態で管理するのであればcredentialは絶対コード内に格納してはいけない credential, db接続情報、変動があるものは環境変数で読み込む形でコード化する バックエンドサービス DB, Storage, SMTP等デタッチアタッチ可能なリソースとして扱う すべてURLで扱う ビルド、リリース、ラン それぞれのステージを厳密に分離 ビルド->リリース->ラン ビルド: コードを実行可能な形にする、依存関係の整理、コンパイルなど リリース: ビルドとデプロイに関する設定の整理、サーバーで実行できる状態かつロールバック機能を担保する ex.fabric, capistrano ラン: サーバー上でアプリを起動する、実行中のコードを変更することはしてはいけない プロセス ステートレス、シェアードナッシングなプロセスとしてアプリを実行する 状態はDBなどのサービスに持たせる memchacheやredisでのキャッシュ管理 ポートバインディング Webアプリをポートにバインドすることでhttpサービスとして公開する 1 container 1 service 並行性 プロセスモデル採用によるスケールアウトの実現 スレッドではなく、プロセスを用いてスケールアウトする 各プロセスが内部でスレッドやasync/eventedを用いて多重化するのはok 廃棄容易性 高速な起動とグレースフルシャットダウンの両立により堅牢性を高める 起動時間を最小化することによりリリースやスケールアウト時のアジリティを高める プロセス終了時の後処理をきちんとする、新しいリクエストを受けるのをやめ、現在進行している処理は正常に完了させる 冪等性を担保した設計 リクエストの接続が失われても裏で再接続できるような設計 開発本番一致 開発/本番環境のギャップを小さく保つ 時間のギャップ: リリース対象のコードは数時間・数分後にはデプロイ可能な状態とする 人材のギャップ: リリース対象コードを書いた開発者がデプロイ、リリース後の挙動を見守る ツールのギャップ: 開発/本番環境をできるだけ一致させる(利用スタックの統一) ログ ログをイベントストリームとして扱う アプリはstdoutにログを吐くだけ 実行中のアプリの挙動を可視化、アーカイブ化できるようなログルーターの利用(ex. ... Read more

memo

February 2, 2016

done with docker ecosystem create each container via Dockerfile set every containers up and connect with port via docker-compose.yml think about hashicorp tools Vagrant or Packer alternate with Dockerfile Terraform alternate with docker-compose

jan 2016 kpt

January 30, 2016

keep coding every day start with tiny example RTFM aka “read the xxxx manual”, read api doc problem not enough time! otemachi building is like a maze.. don’t waste time. try building “real” micro service stay streaking with github have the courage to follow your heart and intuition. they somehow already know what you truly want to become.

agile0

April 2, 2015

agile samurai memo 0 大きなタスクを小さくする 振り返り ベロシティの計測(タスクがどれくらいで実現できたか)できてない タスク、要望、チケット管理したほうがよいと思った 要求内容変わるので履歴を残したい 検索性を高める 情報を1つの箇所にまとめる 社内redmine、改造できないかた自分でホストしたほうがよいのでは redmineとpivotaltrackerの違い? redmineとtrello比較

dotfiles

February 6, 2015

vimなど、色々設定行い、設定をdotfilesレポジトリに移動した

sic

February 3, 2015

週末から風邪、体調よくない 喉痛い

test2

January 30, 2015

testの話 悩んでいる ※雪or雨の日はこどもを保育園送るだけで疲れてしまう 体力ない