タグ

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

  • SREとしてMercariに入社した | SOTA

    1月16日よりMercariにてSRE/BSE(Backend System Engineer)として働いてる. これまではとある会社で社内向けのPaaSエンジニアとして働いてきた(ref. PaaSエンジニアになった).PaaSの目標である「アプリケーション開発者の効率を最大化」を突き詰めながら少人数のチームでいかにScalableなプラットフォームを構築するかに注力してきた.Cloud FoundryやDockerといったインフラの最前線とも言える技術やアーキテクチャに触れ,かつその中で自分の技術的な柱である自動化に取り組むことができたのは非常に刺激的で自分に大きなプラスになった. その一方でPaaSというプラットフォームはその性質上サービスそのものからは中立的になることが避けられない(だからこそScalabilityを実現できるのだが).よりサービスに近い部分,サービスの成長に直結す

    kazeburo
    kazeburo 2017/02/13
    こちらも刺激をもらってます。よろしくお願いします!!!
  • Golangのエラー処理とpkg/errors

    GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん

    kazeburo
    kazeburo 2016/04/25
  • Dockerを便利に使うためのaliasをつくった

    Dockerを便利に使うためのaliasをつくった tcnksm/docker-alias いろいろなひとのTipや,自分がやったやつの寄せ集めで作った.以下で使えるようになる. $ curl -fsSL https://raw.github.com/tcnksm/docker-alias/master/zshrc >> ~/.zshrc && source ~/.zshrc コンテナの起動 インタラクティブモードでコンテナを起動する. alias dki="docker run -i -t -P" $ dki base /bin/bash デーモンモードでコンテナを起動する. alias dkd="docker run -d -P" $ dkd base /bin/echo hello コンテナの情報 最後に起動したコンテナのIDを取得する. alias dl="docker ps -l

  • CoreOSクラスタにDockerコンテナをデプロイする | SOTA

    CoreOSクラスタにDockerコンテナをデプロイする Docker Meetup Tokyo #4 CoreOSの概要とDockerを実際に運用しようと思ったときにDockerが抱える問題をCoreOSがどのようにそれを解決するかについて発表した.デモではTerraformを使ってDigitalOcean上にCoreOSクラスタを立てて,デモアプリケーションコンテナを動的にスケールさせる様子を実演した(ソースは全てtcnksm/docker-meetup-4-demoにある). 雑感 簡単にMeetupの感想を書いておく. 今回はDockerそのものの発表よりも,オーケストレーションやサービスディスカバリーなどの周辺ツールやサービスの発表が多かった.ツール(もしくはDocker専用のOS)では,CoreOS,Kubernetes,RedHad Atomic host,サービスではAma

  • Dockerコンテナ接続パターン (2014年冬)

    記事はDocker Advent Calendar 2014の1日目の記事です. Dockerによるコンテナ化はリソース隔離として素晴らしい技術である.しかし,通常は1つのコンテナに全ての機能を詰め込むようなことはしない.マイクロサービス的にコンテナごとに役割を分け,それらを接続し,協調させ,全体として1つのサービスを作り上げるのが通常の使い方になっている. コンテナ同士の接続と言っても,シングルホスト内ではどうするのか,マルチホストになったときにどうするのかなど様々なパターンが考えられる.Dockerが注目された2014年だけでも,とても多くの手法や考え方が登場している. 僕の観測範囲で全てを追いきれているかは分からないが,現状見られるDockerコンテナの接続パターンを実例と共にまとめておく. なお今回利用するコードは全て以下のレポジトリをcloneして自分で試せるようになっている.

    kazeburo
    kazeburo 2015/01/09
  • DockerHubのAutomated Buildsをフックして最新のDockerコンテナをデプロイする

    DockerHubのAutomated Buildsをフックして最新のDockerコンテナをデプロイする DockerHubのAutomated Buildsは,GithubやBitbucketへのgit pushをフックしてレポジトリ内のDockerfileを元にDockerイメージをビルドする機能である. イメージを使う側からすれば,それがどのようなDockfileから作られているか可視化され,常に新しいイメージがあることが保証されるので安心感がある.イメージを提供する側からすればDockerfileを更新してgit pushすれば自動でビルドしてくれくれるので楽という利点がある.そのためDockerHubにイメージを上げる場合は,docker pushを使うことはほとんどなくてこのAutomated Buildsを使うのが普通である. このAutomated BuildsはWeb h

    kazeburo
    kazeburo 2015/01/09
  • CoreOSに入門した

    CoreOS is Linux for Massive Server Deployments · CoreOS CoreOS + Docker Meetup Tokyo #1に参加してCoreOSにめっちゃ感動したので,CoreOSに入門していろいろ触ってみた. まず,CoreOSの概要とそれを支える技術について説明する.次に実際にDigitalOcenan上にVagrantを使って実際にCoreOSクラスタを立てて,CoreOSで遊ぶ方法について書く. CoreOSとは何か CoreOSは,GoogleやFacebook,Twitterといった企業が実現している柔軟かつスケーラブル,耐障害性の高いインフラの構築を目的としたLinuxディストリビューションである.軽量かつ使い捨てを前提にしており,クラウドなアーキテクチャのベストプラクティスを取り入れている.CoreOSの特徴は大きく4つ挙

  • PaaSエンジニアになった

    今まではモバイルアプリ向けのAPIの開発に携わりつつ,CIやデプロイ自動化といったDeveloper Productivity的なことをメインとしていたが,PaaSチームにジョインした.後に自分がどういうことを考えて舵を取ったかを見返すために簡単に今思っていることを綴ってみる. PaaSという選択 “実践Heroku入門”の’はじめに’にしつこく書かれているようにPaaSの大きな目標は「アプリケーション開発者の効率を最大化」することにある.もともとDeveloper Productivity的なことが好きでいろいろやってきたが,その究極的な形がPaaSではないかと思う. PaaSといってもプライベートPaaSだが,素晴らしいアイディアがあり,それを簡単にリリースでき,かつスケールもできる,そういうプラットフォームを社内にもっているのは大きな強みになると思う.どうすれば開発者にとって使いやす

    kazeburo
    kazeburo 2014/11/14
  • Werckerの仕組み,独自のboxとstepのつくりかた

    Werckerの仕組み,独自のboxとstepのつくりかた WerckerはTravisCIやDrone.ioのようなCI-as-a-Serviceのひとつ.GitHubへのコードのPushをフックしてアプリケーションのテスト,ビルド,デプロイを行うことができる. Werckerは,TravisCIのように,レポジトリのルートにwercker.ymlを準備し,そこに記述された実行環境と実行コマンドをもとにテスト/ビルドを走らせる. Werckerには,その実行環境をbox,実行コマンド(の集合)をstepとして自作し,あらかじめWercker Directoryに登録しておくことで,様々なテストからそれらを呼び出して使うという仕組みがある.実際,Werkcerで標準とされているboxやstepも同様の仕組みで作成されている(wercker · GitHub). 今回,WerkcerでのGo

    kazeburo
    kazeburo 2014/10/16
  • boot2dockerでのVolume問題が解決しそう

    boot2dockerでのVolume問題が解決しそう (追記)Docker 1.3がリリースされた.boot2dockerはデフォルトでVirtualBox Guest Additionsをサポートし,boot2docker-cliはinitのときにホストのディレクトリをboot2docker-vm上にマウントするようになった(Docker 1.3: signed images, process injection, security options, Mac shared directories | Docker Blog). TL;DR OSXWindowsでboot2dockerを使う場合に特別な操作をしなくても-vオプション(Volume)が使えるようになる. 背景 OSXWindowsでboot2dockerを使うひとが最も不満に感じるのは-vオプション(Volume)が使

    kazeburo
    kazeburo 2014/10/08
    ついに!
  • "Microservices"を読んだ

    James Lewis氏とMartin Fowler氏による“Microservices”を読んだ.以前ざっと目を通したが,最近よく耳にするようになったのでちゃんと読んだ.以下はそのメモ. 概要 “Microservices” とはソフトウェアシステムの開発スタイルである 近年このスタイルでの開発を見てきて良い結果が出ている 初出は2012年の3月の“Micro services - Java, the Unix Way” Microserviceは一連の小さなサービスで1つのアプリケーションを開発する手法 それぞれのサービスは自身のプロセスで動いており,軽量な機構(e.g., HTTP API)を通じて情報をやりとりする これらのサービスは独立して自動デプロイされる 一枚岩として構築されるMonolithicスタイルのアプリケーションと比較すると分かりやすい 一般的なエンタープライズのア

    kazeburo
    kazeburo 2014/09/16
  • Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる

    Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる Packerは,Vagrantの作者であるMitchell Hashimoto氏によって開発が進められているVirtualBoxやVMWare,Amazon EC2などの仮想マシンのテンプレートの作成を行うツール.VagrantのVirtualBox用のBoxを作るveeweeに置き換わるツールとして知られている.最近のアップデートDockerのイメージのビルドをサポートした. TL;DR Packerを使えばDockerのイメージをDockerfileを使わずビルドすることができる つまり,Dockerfileの特有な記述を使わず,今まで慣れ親しんできたChefやPuppet,Ansibleのようなプロビジョニングツールを使ってDockerのイメージをビルドできる. 参考 Dockerイメージの

    kazeburo
    kazeburo 2014/09/06
  • DockerfileのONBUILD| SOTA

    DockerfileのONBUILD Docker 0.8においてONBUILDというDockerfile用のコマンドが導入された.0.8ではOSXdocker clientが脚光を浴びたが,このONBUILDはかなり強力な機能.リリースノートはこちら.ONBUILDの公式ドキュメントはこちら. ONBUILDを使うと,次のビルドで実行するコマンドをイメージに仕込むことができるようになる.つまり,ベースイメージにONBUILDによるコマンドを仕込み,別のDockerfileでそのベースイメージを読み込みビルドした際に,そのコマンドを実行させるということが可能になる.要するに,親DockerfileのDockerfileコマンドを子Dockerfileのビルド時に実行させることができる機能. これは,アプリケーション用のイメージを作るときや,ユーザ特有の設定を組み込んだデーモン用のイメージ

    kazeburo
    kazeburo 2014/07/25
  • DockerによるマルチホストのPaaS flynnの概要とそのアーキテクチャー

    “flynnの時代” “Docker meetup tokyo #3”で発表してきた.内容は,Dockerの応用の1つであるOSSでPaaSをつくるflynnというプロジェクトの概要とそのアーキテクチャーの紹介.このflynnというプロジェクトの中には,Dockerの面白い使い方がたくさん詰まってるため,今後Dockerを使う人が,その応用の際の参考になればという思いで紹介させてもらった. 今回の発表のために資料を集めまくり,理解できない部分は出来る限りコードも読んだ.発表スライドの補完にもなると思うので,そのメモ書き(一応体裁は整えた)を公開しておく. デモ 以下は,簡単なデモ. やっていることは以下. nodeのアプリケーションをデプロイ ルーティングの追加 スケール コマンドを含めた詳しい解説は以下で解説する. 前提知識 (Herokuの動作) まず,前提知識としてPaaS (ここで

  • logspoutでDockerコンテナのログの集約・ルーティング

    logspoutでDockerコンテナのログの集約・ルーティング progrium/logspout logspoutは,ホスト内で動かした全てのDockerコンテナの出力を集約して,好きなところに飛ばす(ルーティングする)ためのツール.開発者はDokkのJeff Lindsay. 以下の2つの特徴がある コンテナとして起動(ステートレス) HTTP APIによるルーティングの設定 ログを貯めて管理したり,検索するといったことはできない.コンテナのログをリアルタイムで好きなところに飛ばすだけ. これだけだが,Dockerのログの問題をいい感じに解決してくれそう. Dockerのログのしくみ まず,簡単にDockerのログのしくみを説明する. 現時点(2014年5月)でDockerはコンテナ内で吐き出されたstdout/stderrを取得することができる.コンテナのプロセスがstdoutとs

  • 1