clairvyの日記

思ったこと,調べたことを書きます

Chef 実践入門,Chef 活用ガイド を読んだよ(途中)

感想

順序

実践入門は,入門なので使いながら覚えていく,みたいな感じで,Vagrant をからめて,
Chef-Solo メインで進む感じか.
活用ガイドは,用語,意図などから始めていく感じで,
丁度逆な方向性かと思った.

まだあまりよく触っていないなあ,という人だったら実践入門.
もう Chef は使っていて,もっと詳しく知りたいという人だったら,活用ガイドの方がいいかも.

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)

Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus)

Chef活用ガイド コードではじめる構成管理

Chef活用ガイド コードではじめる構成管理

「納品」をなくせばうまくいく を読んだよ

感想

目的とするところ

p.82 より抜粋

なぜそのソフトウェアが必要なのか,その事業で実現したいこと,そのために妨げになっている課題は何か

ここにタイトルの全てがつまっている気がする.
顧客企業と自社で,同じく事業の成長を望む意識でまとまって動けるかどうか.
一括請負との対比で,一括請負の場合は,自社(自分) の利益に留まってしまう.
ということかな.

顧客企業に上記価値を提供するためには,というところで,
「技術力」「素早い提供」などがある.と

大事なポイント

p.106 より抜粋

「操作がひと回りする」こと

私たちが顧客と最初に考えるのは「操作がひと回りする」ことです.
「ひと回りする」とは,サービス全体の流れの中で,ソフトウェアを利用するユーザが最初に使い始めて,ひと通りの操作から作り上げてしまう必要はなく,人力で対応する(運用でカバーする)部分があってもよいのですが,とにかく操作が「ひと回りする」ところまでを想定します.

これすごい同意できます.
局所的に言うと,最初にデプロイできるところまで作る話と近いでしょうか?
それを事業の単位で考えておく.ということですね.
モノを作るだけのエンジニアでは到達できない状態だと思います.
顧客側も考え方をシフトしないとできない話ですね.

技術力とは

顧客に価値を提供するためには,「選択を提示する」くらいの技術力が必要である.
チーム(会社)として仕事をする場合に,統一された技術 が必要です.

そもそも技術など情報発信が営業を兼ねている.

技術が自動的に向上する仕組みみたいなイメージでしょうか.

読んでいて気になったポイント

  • インターネットが対象領域,社内システムなどは難しい.というところだった.
    • → 受託開発では,という意味だろうか.社内の開発部が同様のことを意識してもいい気がします.まあ,そうすると「納品」との対比にならないか…
  • ドキュメントが無いというのも,社内でリスク分を担保しているんだろう.(開発方法の標準化などで,そもそもドキュメントの必要性を減らしたり,というのもあるかもしれない)
    • → 技術の統一というそのまま書いてありました.
  • 分担範囲とか.技術者は,どこまでやるのだろうか?
    • 思い付きの機能を却下する文脈で,事業に不適切かどうかを考えるかどうか,
    • 事業自体についても考え始めたらどうなるのか?
    • → 下にありますが,全部こなせるようになるのは,良い.ということかな?
  • エンジニアのキャリアとは
    • → 企画から考えて,ひと通りの工程をこなせる.一生成長できる.という仮定みたい.
  • エンジニアの評価とは
    • → 実績が自社のビジネスの結果に結びつく

その他

一括請負 <-> 納品のない受託 という構図だと思っています.
技術者と発注者が別の会社ではなくて同じ会社でもいいのかなと思ったりしましたが,
そこまで書くと発散するからあまり触れていないのかもと思いました.
リスクヘッジなどを考慮して,顧客が複数の方がいいんですかね.

(顧客) <-(仕事)-> (受託会社) <=(所属)= (個人) =(ワーク,コモンセンス)= (個人)

(受託会社) =(ギルド)= (他の会社 or のれんわけ)

「納品」をなくせばうまくいく ソフトウェア業界の“常識

「納品」をなくせばうまくいく ソフトウェア業界の“常識"を変えるビジネスモデル

デカめな技術的な仕組みという点では,こちらも読み返してみる.

テストから見えてくる グーグルのソフトウェア開発

テストから見えてくる グーグルのソフトウェア開発

オーケストレーションがわかっていない

まとめ

とりあえず,Serf を試してみようかな.シンプルそうだし.
そうか,Serf はイベントで何かするまでなのか.

mesos とか見てみる流れかな

調べたこと

Serf 試す

MacOSXにて


インストール
$ brew install caskroom/cask/brew-cask
$ brew cask install serf
$ rehash

ローカル起動
$ serf agent

起動確認
$ serf members

とりあえず,何かOS を起動してみた
$ docker run -i -t --rm --name centos6 -p 7946:7946 centos /bin/bash

繋げてみる
$ serf agent -name=agent-one
centos6$ serf agent -name=agent-two -join=XXX.XXX.XXX.XXX
$ serf members

「プログラムは技術だけでは動かない」を読んだよ

全体感

全体的には,
プログラミングとは問題を解決するための一部分でしかなく,
目的,課題を達成するには,それ以外に対しても行動を行う必要がある.
ということでしょうか.

自分の近くだと,

  • プログラミング(自分のできること) = 課題解決という状況に持っていこうとする人
    • 課題解決とのズレを修正できない
  • (上記と近いが) 課題解決がプロダクトを作るところまでで完了すると思っている人
    • テストとか運営とかを考えない.

なんかが多い感じを受けている.

そういう意味でも,プログラマという肩書きは,あまり自分の好みではなく,
プログラミングが得意分野という前提はあるにしろ,
エンジニアとか,技術者とかが,
課題を解決するために動く人みたいで,いいってことですかね.

細かいこと

作るプロセス(順番)を考える

プロダクトを作る,実現する.という話.

「見積を考える段階」でプロトタイプを作る

これなんすよね.自分も同じ考えで,見積りするためにプロトタイプが書けない
ようなものって,すごく怖い状態だと思っています.

作るまでが仕事と思ってると,思い付かない発想なのかな,
と思ったりします.

この本には,それ以外にも

  • 随時できたところから動作確認しよう
  • 目的を達成するために努力する
    • 敵に回すと怖い人こそ,本音のお付き合いを

みたいな話がでてきます.

何をするのか

事業とか,目的,問題を考える話.

製品開発・販売は,得意分野で勝負できて,売れれば楽しい

自分の仕事を能動的に選択できるチャンスが無い状態の人も居ます.
選択肢がある方は,幸いかもしれません.
自分の印象だと現状に受身になってしまって,
活動を自ら制限していらっしゃる方がいるようです.
より事業とか,その周りに関して積極的になれる人が増えると,
自分自身もより楽しい環境になったりしないかな?と思ったりします.

自分の近くだと,
事業にコミットしている人で技術的にバランスを取っている人が,
なかなか居ないように思います.
自らが事業をクリエイトしなくともよいのですが,
事業の種があれば,一緒に考えて,実際に実現する.
そんな動きがいいんじゃないかな,と思っています.

  • 「売れる製品」を作るための秘訣
  • 付加価値の高い仕事を得るには

とかが似たトピックでしょうか.

まとめ

アジャイルとかやってれば,当たり前なのかもしれないけど,
問題意識とか持ってもらう読み物という位置付けとしてはいいのかなー.
と思った次第.

あと,仕事の選択という意味では,
プログラマとして事業のことを考えないでソースコードだけ書く
みたいな仕事をやりたい人がいてもいいと思うけど,
事業方面にもコミットしていかないと,リスキーなんじゃないかな,
というのはあるかもしれない.

後輩に進める本とかにどうでしょか?

Redmine, Jenkins, Gitlab をローカルに置いてみる

実家帰ってとかでネットが遅いときに,
ローカルに,Redmine, Jenkins, Gitlab が欲しいときが,あるかもしれないし,
ないかもしれない.

とりあえず,以下を試す.

CoreOS をインストールした

ということで,引き続きMacOSX を tftpserver にして coreos をインストールしてみたけど,
ドキュメントそのままだった.

$ cd /tmp/tftpboot
$ cat <<EOL > pxelinux.cfg/default
default coreos
prompt 1
timeout 15

display boot.msg

label coreos
  menu default
  kernel coreos_production_pxe.vmlinuz
  append initrd=coreos_production_pxe_image.cpio.gz root=squashfs: state=tmpfs: sshkey="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAYQC2PxAKTLdczK9+RNsGGPsz0eC2pBlydBEcrbI7LSfiN7Bo5hQQVjki+Xpnp8EEYKpzu6eakL8MJj3E28wT/vNklT1KyMZrXnVhtsmOtBKKG/++odpaavdW2/AU0l7RZiE= coreos pxe demo"
EOL
$ curl -LO http://storage.core-os.net/coreos/amd64-generic/dev-channel/coreos_production_pxe.vmlinuz
$ curl -LO http://storage.core-os.net/coreos/amd64-generic/dev-channel/coreos_production_pxe_image.cpio.gz
$ ls
coreos_production_pxe.vmlinuz
coreos_production_pxe_image.cpio.gz
pxelinux.0
pxelinux.cfg/

上記の pubkey は適当なので,作る.

$ sudo dnsmasq
$ ssh core@192.168.100.100

とりあえずログインまで.