kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

危機感にかられて今更Dockerを学び直す人の記録(概要編)

そもそもDockerって何なの?

コンテナ型仮想化サービス

仮想化サービスとは?

サーバ上に仮想的なサーバを作り出す技術

ホスト型、ハイパーバイザ型、コンテナ型がある

ホスト型

汎用的なOS上に専用のアプリを入れて、仮想化を実現

ハイパーバイザ型

仮想化専用のOSを入れて、その上で仮想化を実現

コンテナ型

独立した環境をOS上に作る技術

他の仮想化技術と違って、別のOSを仮想環境で動かしたり、ハードウェアのエミュレーションをしているわけではない

  • Dockerエンジン

コンテナ型についてもう少し詳しく

コンテナ: 1つのLinuxOS上でリソースを分離、独立させた実行環境のこと

  • linuxに元々ある機能で実現している
    • namespace: プロセス毎のリソースの分離・独立(ファイルツリーなど
    • Cgruops: CPUやメモリ、DiskIOのリソース制限
  • カーネルはホストと共有
  • コンテナは、リソースへのアクセスが制限された、特殊なプロセスとディレクトリの集まり

コンテナ型の利点

  • 開発環境においては、ホスト型より軽量なため扱いが楽
    • 起動が早い、リソースを食わない、ファイルサイズが小さい
  • 最近は、Dockerをそのまま本番環境で動かす仕組みが普及してきたので、本番/開発環境の違いによる問題も解決されるようになった

Dockerとは

Dockerは、アプリケーションの開発、出荷、および実行のためのオープンなプラットフォームです。 Dockerを使用すると、アプリケーションをインフラストラクチャから分離して、迅速にソフトウェアを提供できます。 Dockerを使用すると、アプリケーションを管理するのと同じ方法でインフラストラクチャを管理できます。 Dockerのコードを迅速に出荷、テスト、デプロイするための方法論を活用することで、コードを記述して本番環境で実行するまでの遅延を大幅に短縮することができます。

Docker overview | Docker Documentation

Dockerは、元々コンテナ型仮想化サービスの名称だったが、最近ビジネスが周りだしたので、開発・デプロイ・実行までのエコシステム全体をDockerと言い出した

旧来のコンテナ型仮想化サービスは、Docker エンジン と呼んでいるらしい

Dockerのエコシステム(一部)

  • Docker Hub 等のリポジトリから Docker image(後述) を持ってくる
  • Dockerエンジンは、Docker image を元にコンテナを作成する
  • コンテナの変更を commit すると、新しい Docker image が作られる
  • 新しい Docker image が、リポジトリに push される

Docker image

  • コンテナの元。コンテナを構築するのに必要な情報が格納されている
  • 実態は tar ファイル
  • Docker エンジンはこれを元に、コンテナを起動する
  • イメージレイヤというものの集合体
  • 上記のcommit をすると、イメージレイヤが1毎重ねられる
  • 今までの変更記録が積み重ねられているというイメージっぽい

dockerfile と docker build

元々は、上記のように commit を積み重ねて環境を作る仕組みだった

しかしそれでは、変更箇所を追うことが困難だったので、単純なテキスト形式の設定ファイル(dockerfile)を元に、イメージが作られる機能(docker build)が追加された

参考

デジタルマーケターとWeb担当者のためのGoogle&Yahoo!タグマネージャーの教科書 読書メモ

Chapter1 タグ & タグマネージメント概論

タグ: 外部のサービスを呼び出すためのコード

インターネットのトリプルメディア

  • owned media : 自社メディア
  • paid media : 広告
  • earned media : ソーシャルメディア
    • earn: 稼ぐ、儲ける
    • 信頼や評判を稼ぐメディア

ターゲティング: ユーザの行動によってコンテンツを変える手法

マーケティング

  • 再訪を促すために外部のサイトに広告を露出する機能
  • それの為に必要なタグ → リマーケティングタグ

動的リマーケティング(データフィード広告)

  • 離脱前の深度や購入しようとした商品によって、表示を切り替える広告
  • サービスの情報を事前に広告ネットワークに提供(フィードしておく)ので「データフィード広告」

DMP(Data Management Platform)

  • 行動履歴から、ユーザを分類
  • セグメントに応じて広告を表示する
  • オーディエンス拡張
    • 購買したユーザに行動履歴が似ているユーザに広告を表示する

タグの複雑化によって起きる課題

  • 効果的な広告のために複数のタグをサイトに埋める必要がある
    • 行動分析用、広告表示用、レコメンド用...
    • 変更・追加の度にHTMLの修正が必要
      • サイトによっては開発者に依頼する必要がある
      • 開発者が外注や他部署だとたいへん
    • 複数ページにタグを埋めると、漏れが発生したりする
      • テスト書けよ or 共通化しろよと思う
    • javascriptエラー発生時の影響
      • これって、タグマネジャーだと解決するものなの?

そこでタグマネージメントですよ

  • ワンタグ → 外部のjavascriptコードを呼び出すためのjavascript
  • コンテナ方式
    • 1つのコンテナから、複数のタグを呼び出す
    • ページ毎に異なるタグを呼ぶのはできない
  • クライアント方式
    • タグマネージャーサーバから、必要なタグをページや条件毎に出力
    • ページ毎の変数、ユーザのアクションなど
    • エラー検知(GTMのエラー検知方法を知らない
    • タグのバージョン管理
    • 動作検証

タグマネージメントの未来

ここまでの感想

  • タグマネージャーって突き詰めると、広告やアクセス解析者といったマーケティングの人とエンジニアが乖離したために生まれた「妥協の産物」のような気もしないでもない
  • けど、エンジニアからの分離って進歩と捉えても良いことだよね
  • 「タグマネージャーを使って、手でタグを埋める時代」は早晩終わりそうな気もする
  • あと、オープンなwebと広告文化の相性の悪さが気になってしょうがない
    • webの未来を決める人と、広告文化はケンカの歴史とも思える
  • どうなっていくんでしょうね

Chapter2 「Googleタグマネージャ」の導入と活用

TODO.

Chapter3 「Yahoo! タグマネージャ」の導入と活用

YTMを使う予定がないので割愛

Chapter4 タグマネジメントツールの導入と活用

TODO.

Chapter5 タグマネージメントにおいて便利なツールとノウハウ

だいたい知っていた

ビーコン: タグによって送信されるHTTPリクエス

requestb.in

https://requestb.in/requestb.in

エンドポイントを作成して、どのようなリクエストが来ているかチェックするサービス APIのテストや動作確認に使う用途らしい

WASP.inspector

chrome.google.com

ページが、どんな外部jsを呼び出しているか一覧できるChrome機能拡張

Appendix タグを支える技術

基礎的なHTTP、HTML、css、jsの解説

週報 2017/11/20週 読書感想会の結果をまとめた週

期間

2017/11/20(月) 〜 2017/11/26(日)

今週やったこと

インプット

なし

アウトプット

developer.feedforce.jp

同人活動

kakuyomu.jp

  • 文章は苦手だと思っていたけど、こういう形式ならばサクサク書けることに気がついた

  • 冬コミでコピー本追加
  • なるべく低コストで作成することを目指してみる

KPT

Keep

  • 読書感想会のことアウトプットできてよかった
    • 引き続き、12月も実施したい

Problem

キャリアに関する不安が取れない

自分に足りないと思っていることを各個撃破するしかない

  • Docker, 英語力

Try

  • GTM本おぼえがきアウトプット
  • 仕事でチームを再編成しているので、その時やったこと、心がけたことを記録しておく
  • Dockerについて、最低1つアウトプットする

週報 2017/11/12週 主にHMC5の準備

今週やったこと

インプット

デジタルマーケターとWeb担当者のためのGoogle&Yahoo!タグマネージャーの教科書

デジタルマーケターとWeb担当者のためのGoogle&Yahoo!タグマネージャーの教科書

  • 職場のチームの勉強会資料
  • 1章まで読んでまとめた

Rails Developers Meetup

  • 参加

テスト駆動開発

テスト駆動開発

  • 社内読書感想会実施

アウトプット

HMC5 -踊るニンジャ学会- - MOGRA 秋葉原

  • ご好評いただけて本当によかった

KPT

Keep

  • 仕事以外の自分の興味のインプット/アウトプットだいじ
    • そういう所から仕事へのヒントも生まれる
  • 社内読書感想良かった
    • 普通に読むより多くの知見が得られる

Problem

  • インプットした結果のアウトプットが滞っている
    • サクサクやる方法を手に入れたい

Try

  • アウトプット

週報 2017/11/05週 さっそく1回飛ばしました

今週やったこと

インプット

テスト駆動開発

テスト駆動開発

  • 引き続き読書中。来週社内で読書感想会をやる予定

その幸運は偶然ではないんです!

その幸運は偶然ではないんです!

  • だいたい読んだ。なんというか「こういう考え方もあるよ!」くらいの割と軽い本だった

アウトプット

第一回FFLTでCSVについて話してきた

LT資料

KPT

Keep

  • LT良かった。刺激を受ける

Problem

  • 運動不足。精神的に影響を受けるので定期的に運動したい

Try

  • 週1で筋トレに行く
  • TDD本の感想blogにまとめる

第一回FFLTでCSVについて話してきた

FFLT って何よ

エンジニアの情報発信や交流を深めるために、feedforce Lightning Talks (FFLT) を開催します!:tada:

弊社内のエンジニア同士でLT大会して、情報発信力をつけたり、他チームの知見を取り入れたり、交流したりしようぜ! という会でした

参加した感想

主催メンバーの やったことに価値がある。結果は大事だが、そもそも打席に立ってバットを振らないとヒットもホームランも出ない と言う言葉に大変感銘を受けました

最近「ブランド・ハップンスタンス理論」の本を読んでいまして、 それは キャリアの機転の8割は計画したものでは無く、運や偶然に左右されるもの と捉えて、その運や偶然を拾うために、とにかく色んな偶然が起こるように色んなチャレンジをしてみようぜ! という思想なのですが、とにかく「打席に立たないとヒットもホームランも出ないよね」という主催メンバーの話も似た話だなぁと感じました

その幸運は偶然ではないんです!

その幸運は偶然ではないんです!

↑タイトルがインチキ啓発本っぽいのがアレですが、まあまあ面白かったです

はっぴょう資料

CSVRFCみんな読んでね! というお話をしました

頂いた感想

パンチカードについては、CSVと別に以下のお話をしました

  • ascii の 0x7F は、パンチカードで「この列は間違えたので、全部穴を明けて消した」を意味する文字コード

TRY

CSVのパースは OCaml だと効率良く出来そう。というお話を頂いたので、少し見てみることにします

参考資料

CSVRFC

CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家

最後のおまけで話した、CSV の liberal_parsingオプションと、不具合について

ruby 2.4.0 CSV の liberal_parsing オプションについて調査してみた - Qiita

LTで少し話した、rubyのCSVLibraryと、splitした場合の速度比較について

いじょうです

そんな感じでした! FFLT立ち上げ、実行メンバーの皆さん本当にありがとうございました!

次回は何を話そうかな...

2017/10/23週 週報はじめてみます

週報仲間 を読んで、プライベートの週報って面白いなと思って真似してみた

今週やったこと

インプット

主に読書

喧嘩両成敗の誕生 (講談社選書メチエ)

喧嘩両成敗の誕生 (講談社選書メチエ)

  • 趣味。室町時代のバイオレンス感が知りたくて読み始めた

テスト駆動開発

テスト駆動開発

  • 仕事。TLで何度も再販される話を見たので、TDDを理解し直そうと思い購入

その幸運は偶然ではないんです!

その幸運は偶然ではないんです!

  • 仕事。自分のキャリアの今後について、どうしたもんかヒントが欲しくて購入

アウトプット

雑な読書メモをモーメントにアウトプットしてみた

KPT

Keep

どうせTwitter滞在時間が長いなら、インプット/アウトプットを全てTwitter上でやってみたら、なかなか良かった

TDD本。自分の中のTDDの認識にずれがあったのが修正出来てよかった。余裕があったら写経もしたい

計画的偶発性理論というキャリアの築き方が自分の人生観と近かった。より深掘りしたい

副業。時間が上手く使えるようになった

  • 1回に何時間も掛けるのではなく、気楽に1Hでもやれたら良いと思ったらできるようになった
  • 心理的ハードルを下げるのだいじ

休日にしっかり昼寝をしたら精神的な回復量が大きかった

  • なるべく時間を確保するようにしてみる

Problem

ニンジャ学会活動で、参加メンバーの把握漏れが発生

Try

TDD本の感想をまとめる

  • 社内で読んだ人も多そうなので、読書感想会をやりたい

ニンジャ学会活動をgithubでissue化してTODO管理する

今後の予定