タグ

ブックマーク / deeeet.com (6)

  • Kubernetes YAMLの壁

    Kubernetes に入門しようする人を躊躇させる原因のひとつは間違いなくYAMLによる設定ファイルだろう.Kubernetesにアプリケーションをデプロイするとき,例えそれがシンプルなサーバーアプリケーションであっても,多くのYAMLファイルを手で記述する必要がある.初心者を慄かせるその大量のYAMLはよくwall of YAMLYAMLの壁)などと揶揄される. 初心者でなくてもKubernetesYAMLは煩わしい.YAML自体は単なるKubernetes APIへのリクエストボディであり慣れてしまえば実はそんなに難しくない.しかし記述する内容のほとんどがBoilerplateであり何度も書いていると飽き飽きする(実際にはほとんどがコピペだが).あるアプリケーションの開発環境と番環境のYAMLファイルをいかに効率的に管理するかについて決定的な方法もない. そもそもKuberne

  • PagerDutyのOn-callを一時的に自分にアサインするdutymeというツールを書いた

    PagerDutyのOn-callを一時的に自分にアサインするdutymeというツールを書いた 現在のチームではインシデント管理にPagerDutyを使っている.On-callはPrimaryとSecondaryの2人体勢でそれを1週間ごとにローテーションで回している.On-Callにアサインされている場合は夜中であれ日中であれPrimaryにアラートが飛ぶ(Primaryが反応できなければSecondaryにエスカレートされる).そしてアラートを受けたら何かしらの対応を行う. これはうまく回っているが問題もある.業務中(日中)はPrimaryやSecondaryに関係なくチームメンバーはどんどんデプロイしたりProduction環境で作業をしたりする.そしてオペレーションやデプロイ対象のコンポーネントによってはアラートが発生してしまうことがある.つまり作業者に関係なくアラートがPrima

  • Dockerの諸問題とRocket登場の経緯

    2014年の後半あたりからDockerDocker Inc.への批判を多く見かけるようになった(もちろんもともと懸念や嫌悪を表明するひとはいた).それを象徴する出来事としてCoreOSチームによる新しいコンテナのRuntimeであるRocketのリリースと,オープンなアプリケーションコンテナの仕様の策定を目指したApp Containerプロジェクトの開始があった. CoreOS is building a container runtime, Rocket 批判は,セキュリティであったり,ドキュメントされていない謎の仕様やバグだったり,コミュニティの運営だったり,と多方面にわたる.これらは具体的にどういうことなのか?なぜRocketが必要なのか?は具体的に整理されていないと思う.これらは,今後コンテナ技術を使っていく上で,オーケストレーションとかと同じくらい重要な部分だと思うので,ここ

  • 高速にGo言語のCLIツールをつくるcli-initというツールをつくった

    高速にGo言語のCLIツールをつくるcli-initというツールをつくった tcnkms/cli-initGitHub cli-initを使えば,Go言語コマンドラインツール作成時のお決まりパターンをテンプレートとして自動生成し,コア機能の記述に集中することができる. デモ 以下は簡単な動作例. 上のデモでは,addとlist,deleteというサブコマンドをもつtodoアプリケーションを生成している.生成結果は,tcnksm/sample-cli-initにある. 背景 Go言語で作られたコマンドラインツールを見ていると,codegangsta/cliというパッケージがよく使われている. これは,コマンドラインツールのインターフェースを定義するためのライブラリで,これを使えば,サブコマンドをもつコマンドラインツールを簡単につくることができる(Usageを自動で生成してくれたり,bash

  • Dockerとtmuxを連携するdmuxというツールをつくった | SOTA

    Docker + tmux = dmux ! dmuxを使うと現在起動中のtmuxのwindowにおいて,新しくpaneをつくりそこでDockerコンテナを起動することができる.使い捨て,かつ高速に起動するクリーンな環境でコマンドを試したり,ツールを入れて使ってみたりなどといったことができる.また,プロセスと途中で止めて,後にそれを再開することもできる. デモ 以下は簡単な動作例. 上のデモでは,以下のことが可能であることを示している. dmux initにより新しいpaneでコンテナを起動し,そこにアタッチする dmux stopでプロセスを停止してpaneを削除する dmux startで停止したプロセスを再開して再びコンテナにアタッチする(for文が途中から再開している) dmux deleteでコンテナとpaneを削除する なぜつくったか Dockerのv0.12.0で追加されたp

    Dockerとtmuxを連携するdmuxというツールをつくった | SOTA
  • Macのターミナルでビールが降る

    Macのターミナルでビールが降る 辛いことがあったときに,どうぞ. $ ruby -e 'C=`stty size`.scan(/\d+/)[1].to_i;S="\xf0\x9f\x8d\xba";a={};puts "\033[2J";loop{a[rand(C)]=0;a.each{|x,o|;a[x]+=1;print "\033[#{o};#{x}H \033[#{a[x]};#{x}H#{S} \033[0;0H"};$stdout.flush;sleep 0.01}' Gifzo 参考 Macのターミナルで顔が降る Let it Snow in the Terminal of Mac OS X with This Command

  • 1