PHPカンファレンス福岡2016 小規模な受託開発の会社で、開発・ステージング環境用途として dockerを利用した際の経験談&まとめです。
Dockerを使ってみたい案件があり、デプロイ方法について色々検討している今日この頃。 新しいツールということもあって、 軽くググってみただけでもKubernetesとかMesosとかあるいはもっと別な方法が色々と出てくるし、 逆にいえば「これが決定版!」とはまだどれも言えそうにはない雰囲気。 サードパーティ製のツールはどれもそれなりに利点はありそうだけど、 一方で学習コストが高くついて辛い感じもあり、 また個人的にはDocker Compose使って作業してたんでそれを流用できないというのも気が進まないポイントであった。 実際のとこそこまで機能はいらないし、いっそConsulのイベント機能で無理やり…とか考えたりもした。 そんな感じで正直なところ迷走していたのだが、 公式ツールであるところのSwarmが去年末の段階で1.0.0をリリースしていたらしいということに今更になって気づく。 (な
ちなみに、一方のさくらインターネット東京支社では開発チームが常駐しているフロアが高層ビルの28階にありまして、幅広いデスクと最新型の高機能チェアが各自に割り当てられています。 専用席なので席のカスタマイズは自由自在。高層階なのでリフレッシュルームと呼ばれる休憩スペースからの展望も抜群。お願いすればPCや備品も調達されてくるのでエンジニアが開発業務に集中しやすい環境です。 ・・・。 べ、べべべ、別に東京支社から追い出されたわけではないデスヨ・・・? しかし、さくらガレージには 『キッチン』 という秘密兵器があります! なんと、さくらガレージでは、さくらインターネットのエンジニアがランチ(別名:給食)を毎日自炊しているのです! さて、本日のランチは・・・! ・・・。 SUKIYAKI。 すき焼き!アットホーム感がハンパない!すき焼きを自分達で煮て食べています! 何という贅沢なことでしょう!?
SlackのAPIを叩くコードをさがしていたら、PHPでかかれたSlackのCLIクライアントをみつけたので何となく試した。結論からいえばたのしいけれど日本語等は通らず残念。 github.com 手順 ncurses 拡張が必要なので、OSXで作るのは面倒だった。新しくVMを立ち上げるのも面倒なので、Dockerでphp:5-apacheを素手で立ち上げて、裏からbashをexecして試す事にした。 $ docker run php:5-apache # another shell $ docker exec -ti XXXXXXX bash # in docker process $ apt-get update $ apt-get install php5-dev libncursesw5-dev php-pear $ /usr/bin/pecl install ncurses $
“Systems Performance: Enterprise and the Cloud” をずっと読んでいる.この本はNetflixのBrendan Gregg氏がJoyent時代に書いた本である.その名の通りLinux(とSolaris)のシステムのパフォーマンスの本である(とにかく一つ一つが丁寧かつ深く解説されておりページをめくるごとに学びしかないのでパフォーマンスに関わるひとは今すぐ読むと良い). この本で一貫して現れてくる,通底するのが,known-knowns,known-unknownsそしてunknown-unknownsという概念である.元ネタはDonald Rumsfeld 氏の会見でのコメントだが(cf. There are known knowns),複雑なシステムのパフォーマンスの重要な原則を集約している.良い概念なので簡単に紹介する. それぞれをパフォーマン
以前Linuxのカーネルスレッドがループして暴走したときに、カーネルスレッドの扱いを調べていた時期があって、それの簡単な動きを再現するべくカーネルモジュールを作りました。まずは、自力で試したい人は以下を見ずに試すと良いでしょう。 まずはカーネルスレッドをループさせる カーネルスレッドは、所謂ps上で[kthread_dayo]みたいな感じで見えるプロセスの事です。厳密にはユーザランドのプロセスも定期的にカーネル側の処理が走るときは[]付けになったりするのですが、簡単には上記のような状態とします。これをユーザランドのプログラミングで作ることは難しいのですが、カーネルモジュールを使えばすごく簡単につくれます。 まずは以下のようにカーネルスレッドをループさせるコードを書きます。 #include <linux/module.h> #include <linux/sched.h> #include
moznion.hatenadiary.com 別にDocker使ったっていいんだけど、こっちでもできますよ、ってことで、Dockerもシェルスクリプトも使わない方法の説明。元記事を読んでわかるのは: 1. makeを使ってる 2. GOOS/GOARCHを設定してクロスコンパイルしている(gox等を使っていない) 3. Dockerであげた同一イメージ上で全てのクロスコンパイル結果を吐いている ということなので、であれば別にローカルの環境でクロスコンパイルしても何の差もなさそう。別の環境をたててクロスコンパイルしたい場合もあるが、それは例えば cgoを使っている os.User 関連のコードをコンパイルするとか、そういう時だしその場合はそれぞれのプラットフォームごとに別のホスト上でコンパイルする必要がある。それをする必要がないなら go 1.5 以降であればもうGOOS/GOARCHを設
Docker、MacOS X対応の軽量な仮想化ツール「HyperKit」をオープンソースで公開。Docker for Macの仮想化機能を取り出したもの Dockerは、MacのOS Xに組み込まれている「Hypervisor Framework」に対応した軽量な仮想化ツール「HyperKit」などをオープンソースで公開しました。 DockerはMacで仮想マシンを立ち上げ、そこで軽量なLinuxを起動することで、Macで手軽にDocker環境を構築できるソフトウェア「Docker for Mac」を3月に公開しています。 このDocker for Macの仮想化機能は、MacのOS Xに組み込まれているHypervisor Frameworkを用いています。 今回オープンソースとして公開された「HyperKit」は、このDocker for Macの仮想化機能部分を取り出したもの。オープ
まず以下の様なシェルスクリプトを用意する. #!/bin/bash # ここで依存しているパッケージを go get する # 例えば以下の様な感じ # go get -v gopkg.in/yaml.v2 # go get -v gopkg.in/redis.v3 for GOOS in darwin linux; do for GOARCH in 386 amd64; do export GOOS export GOARCH go build -v -o bin/tool-$GOOS-$GOARCH main.go done done darwin と linux について,それぞれ i386 と amd64 アーキテクチャ向けのバイナリを作るようなスクリプト.main.go はビルド対象のファイル.成果物はカレントディレクトリの bin 以下に生成されるので,あらかじめ mkdir
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く