Dockerで開発、ステージ、本番へのリリースから運用までを一通り行った結果、どのようなことに注意して開発すべきか、どのような構成をとるべきか、どうやって本番リリースするのかについてまとめます。Laravel, Lumenを使っていたため、PHPで開発を行っている方たちにとっても、本番導入を検討するにあたって良い目安になるかと思います。
![Dockerを本番で使ってみて分かったこと](https://cdn-ak-scissors.b.st-hatena.com/image/square/bf7003495e5063dad17a35b0611ef7e9e36140a1/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F8cc6ebf7a6314d07b63064d7c65395d3%2Fslide_0.jpg%3F8120562)
おはようございます、ImageFlux開発責任者のharukasanです。3日前の4月14日、ピクシブではPawooが急にリリースされることになりまして、ここ数日はずっとPawooサーバにログインしていました。このPawooサーバ、既にピクシブの監視体制に入っており、アラート受信後インフラエンジニアが障害対応できる仕組みを整えています。案の定、リリース直後の15、16日は週末にもかかわらずアラートを受け取ることになり、サーバにはりつくことになったわけです。どんなシステムであろうとアラートを受け取ったら対応する、それが我らインフラエンジニアです。 pawoo.netの構成 さて、それではまずPawooの構成を見ていきましょう。digすればわかりますがpawoo.netはAWS上に構成されています。数百台以上の物理サーバを常時運用しているピクシブであっても、さすがにこんなにはやく物理サーバは用
GitBucket を使うと Git リポジトリを、ownCloud を使うと DropBox クローンを利用することが出来ます。「各々を構築する」ことは当然可能ですが、Docker コンテナを利用すると構築の手間を大幅に省けます。コンテナを利用することは一長一短ですが、「構築の手間が省ける」以外にも「最新バージョンのコンテナが提供されたら、古いコンテナは廃棄して新しいコンテナに差し替えるだけで OK」といったメリットもあります (その場合、データをコンテナの外部へ保存するようにしておく必要があります)。 しかし、BitBucket と ownCloud を同じサーバで提供しようとする場合、「GitBucket 用のコンテナは TCP/80 で、ownCloud 用のコンテナは TCP/8080 で…」といった具合にポート番号を分けて運用する、といった工夫が必要になってしまいます。これはフ
はじめに エンジニアやっていると色んなサービスを作りたくなると思うのですが、Herokuのフリープランが使えなくなってしまった影響で無料でのサービス運営は難しくなってきています。 もちろん、Google App Engineなど無料で運用できるものもあるのですが、サービスにロックインされてしまうのが多くちょうど良い物が見つかりませんでした。 ということである程度安く色々やろうとすると、1台のサーバでいい感じに複数サービスを立ち上げるという昔ながらの構成になるのですが、Dockerを使うことで環境セットアップなどサーバ管理の手間を最小限にしていこう、というのがこの記事の趣旨となります。 方針 要件 安い サービスにロックインされない スケーラブル(もしサービスのアクセス量が増えたとしてスケールさせられる) インフラ管理が容易 セキュリティとかなるべく気にしたくない 以上のことを踏まえた結果C
いろいろどっかにGitlabCIについての知見をまとめてたはずなんだけど、なくしてしまったので書くのに時間がかかってしまった。 とりあえずどんな感じなのか雑に眺めたい方もいることなので、雑にまとめた。 Gitlab CI 3行まとめ Gitlab CIはGitLabで使える。CircleCIみたいなもん。最初にちょっとセットアップすれば、Jenkinsより簡単・便利。カバレッジとか成功時にデプロイとか出来る。 GitLab RunnerというCIで使うコンテナを動かすサーバーの構築が必要になるが、必要な作業は大体これだけ。あとはアプリケーション側で設定する。 GitLab使ってたら使っていいと思う(特にアンチJenkins) GitLab CIについて Ruby + Go, Dockerを使っている 8.2位からGitLabの機能に統合された。 .gitlab-ci.ymlにcircle.
DockerのPros/Consとか今更感ある。他の仮想化技術との比較記事はよく目にするが、開発にどのようなメリット・デメリットがあるのかあまり周知されていないようなので自分なりの感想を書いておく。 Pros 同一性 複数人で開発する際に、環境の差が生まれない。 カプセル化 アプリケーション込みの環境をコンテナというカプセルに隠蔽することができる。 コンテナという単位に対するテストが可能に。 コンテナを捨てる・再生成するのが容易。 ポータビリティ(一貫性とも) 開発に使ったコンテナをCIでテストできる。 CIでテストしたコンテナをサーバーにデプロイできる。 デプロイしたコンテナをスケールできる。 Prosで防げる消耗 おれの環境では動いた。 はい。 複数の開発者で同一の環境で開発できるので防げる。 ローカルで通ったテストがCIでコケる。 開発と同一の環境でテストできるので防げる。 bund
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く