2017-03-18 Productivity Engineering − Forkwell Meetup #4
https://forkwell.connpass.com/event/51332/
いつものごとくですが、雑なmemo。
~~~~~~~~~~~~~~~
■クックパッドにおけるモバイルアプリ開発の工夫 クックパッド @ichiko_revjune
リリース間隔 2週間から1ヶ月
関わるエンジニア 10名程度
リリース間隔の最初にキックオフを実施
朝会をSlack上に移動
(会社がフルフレックスになったこともある)
観察に得られる情報がなくなる(順調か、疲労はなど)
■Effective Retrospective アトラクタ @ryuzee
Retrospective = ふりかえり
有名なのはKPT
目的
・もっとうまくできるように
・強制的に仕事を停止する
忙しいときほど止まれないが止まらないと事故が起こる
強制的にとまって冷静に考える時間を作る
ふりかえりにおける大前提=心理的安全性
立場の上下関係、人事評価の恐怖があると本当の問題にたどり着かない
まずはその場を安全にすること
「あなたvsわたし」を「問題vsわたしたち」にする
「アジャイルレトロスペクティブス」
1)場を設定する
会議の冒頭に全員に口を開いてもらうと主体的参加度が上がる傾向
進め方を説明
2)データを収集する
意見だけを元にすると解決策が危うくなる
3)アイデアを出す
4)何をすべきかを決定する
誰がいつまでにやるのかをはっきりする
「拳から5本指」
5)終了する
記録を残す
失敗例と対策
KPTばかりではなく、やり方を変える(タイムライン)
KPTは断片になりがちなので、ときには全体をみる
場所を変える
いい話を若干大げさに褒め称える
早めの時間にやる
■自己言及的なチームをつくる GMOペパボ @june29
自分たちに自覚的である、会話している
自分たちの問題を解決できるのは自分たちの行動だけ
自力で前進できると意識することも重要
いちばん難しいのは無関心
「加点方式」でチームを捉える 信頼貯金をためる
「減点方式」チームはトラブルを隠す
自分たちの日々を自分たちでデザインする
言葉を尽くす、行動で示す
チームにとっての良さを言葉にする
褒める
率先して行動する
個の価値観の押しつけはチームの価値観を壊す
Google Spreadsheet as Cron(はてな)
「思考停止するな」
■最速で価値を提供する ネクスト @masamichi
狩野モデル
魅力的品質
性能品質
当たり前品質
ISO/IEC25010
品質の仕様化
言語化されない品質は作られない
「品質は誰かにとっての価値である」(Weinberg)
トレードオフではなくANDの発想(ビジョナリー・カンパニー)
■ペアプログラミングの使いどころ タワーズ・クエスト @t_wada
ペアプログラミングのやりかた(大事なこと)
喋る
(考えを声に出す、時にはホワイトボードなどに書く)
喜ぶ、
交代する(例:テストを書く人と実装の人をわける)
でかいディスプレイお勧め
いつ、誰とやるか
チームに新しいメンバーが入ってきたとき
不具合修正
新機能作成
日or週に一回決まった時間に
なぜやるか?
稼働率よりスループット
ペアプロは常にレビューを回すプロセス
書き終えた後の指摘より書いている最中の指摘のほうが受け入れやすい
スキル伝授にペアプロ最速
コードを書く瞬間の思考にアドバイスを貰えるから
FAQ
コストが倍になるのでは?
エラーを超初期に直せる。将来の時間が省かれた形でやってくる
現実として、コストは1倍と2倍のあいだ
開発環境がバラバラ
「お前のこのみとチームの成功とで大事なのはどっちだ?」(Kent Beck)
揮発性が高い
(2人の間だけで、チームの共有にならない)
→モブプログラミングというやり方
上級者にメリットあるの?
「教えることが一番の学び」教えることで知識が整理される(きのこ80)
プレッシャーが強いから苦手
心理的安全性が一番大事
個人を尊重する
全員ができるものではない
ソロプロはOSS活動に費やす
「食わず嫌いはもったいない」(塹壕からのScrumとXP)
質疑応答
経営層への説得方法は?
→「許可を求めるな、謝罪せよ」
リファクタリングも
また、短時間だけ導入するのもあり
不具合修正はペアプロで、とかも説得しやすい
(不具合修正はチーム成長のチャンス)
2017-03-08 社内Meetupを主催した。
先週水曜日、社内Meetupを主催した。
今までうちの会社ではほとんど勉強会的なことはやっていなくて
前職では毎週勉強会みたいな会社にいた身としては
全く無いのもどうなのかなぁ・・・とずっともやもやとした思いを抱いていた。
そんな折、2月に社長も含めて社内のエンジニア集めて飲む機会があったのが
その飲み会自体、そもそも社長が
「エンジニアはコミュニケーション取れてるのか?飲んでるのか?」
という話がきっかけだったと聞いている。
で、その飲み会の中で、数名で勉強会的なことやりたいね、ということになり
今回の運びとなった。
第1回は、ちょうど Japan AWS Users Groupの祭典、JAWS DAYSが直前だったので
AWS総復習と題して、自分が喋ることにした。
スライドはこちら。
www.slideshare.net
内容は総復習っってことで、かなり上っ面部分だけになっているのと
かなり喋りでカバーしてるので、雑な作りになっているのはご容赦を。
で、実際にやってみて、こういう場は定期的にやったほうがいいな、と改めて実感した。
特にうちの会社は、今エンジニアが複数部署にわかれていて
建物も別のところにいたりするので(たいして離れた場所ではないが)
部署が違うと向こうが何してるのかわからない、みたいなことで、知識の分断が発生していて
その交流を促す意味でも、こういう場は必要だなと。
また、だからこそ「勉強会」ではなく「Meetup」というタイトルに意味を込めてて
誰かが先生になって教える、ではなく、全員が対等にコミュニケーションする場を提供したい、という思いでであった。
参加者には好評だったので、今後も2回、3回・・・と続けていきたいと思っている。
まだ、社内Meetupという位置づけだが、ゆくゆくは社外の人を呼べるような場に育てていきたい。
2017-03-11 JAWS DAYS 2017
http://jawsdays2017.jaws-ug.jp/
AWS User Group Japan の年に一度の大イベント。
昨年に続き今年も参加しました。
やはりこの熱気はすごい。
スライド見るだけではなく、現地で感じることが大事だと思う。
■赤ドクロ Presents 『AWSで開発するならこれやっときゃいいよ的な話』
EFSの話でてたけど、東京リージョンまだきてないんだよね・・・AWSさん、お願いします。
The Twelve Factor App の話。
https://12factor.net/ja/
本来はクラウドとは関係ないが、クラウドではより重要になってくるプラクティス。
DevOps はCultureが大事で、続いてPractice, Tool。
■AWS SECURITY DEATH \m/ ~セキュ鮫様からのお告げ~ by Security-JAWS
Security Groupはステートフルなので戻り通信の設定は不要
Network ACLはステートレスなのでin/out両方設定が必要
Shield(DDos対策)
CloudFrontでオプションを有効化すれば使える
CloudFront, ELB/ALB、Route53に有効
コスト:Basicは無料 Advancedは 300$/月
※DDosに該当する通信の転送量はかからない
AWS WAF
CloudFront, ELB, ALBに仕込める
デメリット
正規表現でルール書けない、細かいカスタマイズが難しい
POST通信の中身がみれない(遮断はできる)
設計段階でのセキュリティ考慮が大事
AWS Config 構成管理
ELBはALBのみ対応。Classic ELBは非対応
監査・コンプライアンス、トラブルシュート用途に
コストはお安め
AWS Config Rules
構成管理設設定をチェックするツール
AWSが用意するマネージドルールとLambdaで定義するカスタムルールがある
EC2 Systems Manager
→OSの中の情報をマネージメントコンソールで確認
■コミュニティで拓く、パラレルキャリアへの道
5社で働くってすごい。。。
関係者への「期待値コントロール」大事
■知らない間に使われていませんか? ~AWSの利用監査対策~
CloudWatch Logs
CloudTrail→CloudWatch Logs連携
AWS CIS・・・不正操作の代表的なものを挙げている
「オオカミ少年」にならないよう、バランスが必要
カスタム通知
CloudTrail→CloudWatch Logs→Lambda→SNS
Lambdaでメール本文を日本語化してSNSでメール送信してる
ログの集約、検索、レポート
「sumologic」を利用(AWSのパートナーになっている)
無料枠あり
CloudTrail、S3、ELB、Inspector等と連携
Deep Securityのログも見れる
Bastion監査も似たような仕組みで実施
(誰がSSH接続したか、失敗形跡など)
■武闘派CIO3人が、ホンネで語るITの現実
去年も長谷川さんのトークセッション聞いたけどほんと面白い。
AmazonGoすごい。
「学び方を学ぶ」
「忍者の草飛び」
…最初は低い草を飛ぶ、草が成長してだんだん高くなるやつ
なんか忍者ハットリくんだか、藤子不二雄系の漫画で見た記憶ある
「客を捕まえてから新規事業提案」が鉄則
CIOはゴールキーパー的役割
同じ過ちを3回した場合と自分ごとにしない人には叱る
■AWSデータベースアップデート 2017
Redis
オリジナルではなく、Amazonが改修いれたものを使っている
海外ではRedisに永続データを入れるケースが増えている
Aurora
r3.xlarge以上になると、MySQLとのパフォーマンス差が顕著に
PostgreSQL Aurora
Performance Insight
クエリパフォーマンスをマネージメントコンソールで見れる
他のエンジンにも展開予定あり
オンラインDDLが爆速(NULL許可でカラム追加の場合)
今後のアップデート
Online Point in Time Restore
Database cloning
コピーしてもボリュームコスト2倍にならない。差分分のみ増える
Aurora Auditing
MySQLのAuditプラグインよりパフォーマンス劣化が小さい
Index構築も速い
空間Indexも速い
DMS
fan in(複数DBを1つに)、fan out(1つのDBを複数DBに)も可能
オンプレ→AWSだけでなく、AWS→オンプレもできる
評価レポート・・・移行のしやすさを評価したもの
Athena
S3のファイルをSQLで直接検索
LTSV,CSV,JSON等対応。gz圧縮対応
裏はPrestoで動いている
Amazon QuickSight
S3、RDSにつないでグラフ生成。13種類
今後のリリース予定
Amazon Glue・・・マネージドなETL
2017-03-02 GitLab Meetup Tokyo
こちらも参加してきました。
GitLabってぶっちゃけどのくらい使われてるのかな・・・と思ってたんですが
イベント参加者100名超えているところをみると
実はかなり使われてるっぽく、ちょっと勇気づけられた。
LT発表してたけど、結構有名な大手メーカーで使ってるってのがまた意外だった。
もっと日本語情報が充実してくると嬉しい。
以下、参加時のmemo
~~~~~
■@tnir 「GitレポジトリからCI/CD・コンテナ化を含めた開発統合プラットフォームとしてのGitLabと今後の展開」
セルフホスティングの他の製品
GitBucket
Gogs
GitHost.io てのもある
インストールはomubus-gitlabが一番楽
次回開催決定 4/11(火)@リクルート
■@catatsuy 「GitLabの実践的な運用」
複数台構成はきほんできない
RedisやDBは別にできる
強めのサーバおすすめ(メモリ食う)
Redisはふっとんでも問題あるデータではない。キャッシュやセッションデータのみ
mysqlはおすすめではない・・・そもそもRailsとmysqlがつらい
バックアップはDBでかくなりがちなので、バックアップ別にしたほうがよい
バージョンアップ時は最低DBだけバックアップをとっておこう
■@hiroponz 「GitLabコミュニティへのコントリビュート(仮)」
近い将来多言語化するかも?
■GitLab LT
@jeffi7 「わりと大きい会社でGitLabをホスティングしてみた話」
わりとというか、かなり大手ですよね。すごい。
専門部署があるところは強いよなぁと思ったり。
(片手間でメンテするのはきつい…)
2017-02-28 第46回 脆弱性診断ええんやで
security-testing.doorkeeper.jp
前回に引き続き参加。
今回はOWASP TOP10の2番目、「認証とセッション管理の不備」
今回は本題よりも余談でちょいちょい出ていた、ほんまかいな!?的なネタが面白かった。
(いや、本題もためになったんですけどね)
プリペアードステートメントのPREPAREに外部由来の変数まるっと渡して(当然インジェクションできる)それで「プリペアードステートメント使ってるから安全」なんて言い張る輩なんているのか…根本的にエンジニアに向いてないよな、その人…
— 林 正紀 (のりぃ) (@m_norii) 2017年2月28日
Cookieの有効期限20年!?
— 林 正紀 (のりぃ) (@m_norii) 2017年2月28日
eval() に外部由来変数そのまま渡すとか、狂気の沙汰すぎる…
— 林 正紀 (のりぃ) (@m_norii) 2017年2月28日
今日の脆弱性の勉強会、本題よりアンチパターン集のほうが趣がありすぎる…
— 林 正紀 (のりぃ) (@m_norii) 2017年2月28日
その他、以下はセミナー中に取ったメモ。
あまり体系的にまとめてないけど。
~~~~~
検索キーワード
Let’s know owasp
工程別活用可能な資料
OWASPの歩き方
■認証とセッション管理の不備
ASVS要件
https://jpcertcc.github.io/OWASPdocuments/ASVS/OWASPApplicationSecurityVerificationStandard3.0.pdf
無線LANが普及した結果、一般ユーザは無線LAN接続に抵抗なくなった
→キャリアや有名企業になりすましたアクセスポイントをしかけて通信を盗める
→ネットワークの盗聴、セッションIDの奪取はリスクが高まっている
※有線LAN前提ではネットワーク盗聴はその敷地内に侵入する必要があるので
リスクは高くなかった
・セッションの寿命はできるだけ短く。ブラウザ閉じたら終了が望ましい
・オレオレセッションID生成はダメ、絶対。
md5ハッシュは元文字列が辞書由来の単語であれば、Googleなどで検索できてしまう
セキュリティ業界の常識として、暗号化/復号方式は公開されなければいけない
(オレオレ暗号化は遠くない先に破られる)
※狙われなければ破られないけど…
・ログイン成功したらでセッションIDを再生成する
→攻撃者はログイン前のセッションIDを把握できる(している)ので
■LT
サイバー攻撃の被害にあった場合
・被害が明確なら、拡大防止のためサーバ隔離(クラウドなら停止)
・「情報セキュリティ事故対応ガイドブック」(IPA)
・相談可能な組織
・ラック(緊急対応サービス「サイバー119」)
・三井物産セキュアディレクション
・アクティブディフェンス研究所
・オレンジセキュアサービス(トラブルレスキュー)
2017-02-22 TechLION vol.29
TechLION vol.29
http://techlion.jp/vol29
伊藤直也さんと柄沢聡太郎さん。
この2人のトークが面白くないわけがない、ってことで、早々にエントリーしてたくらい楽しみだったイベント。
期待を裏切らずすごい楽しかった。
いろいろ知見はあったんだけど
後半マネジメントのパートは特に自分の立場と重ねて聞くと、学びが多々あった。
採用時に大事にしていることは、その人が事業に共感できること。 #techlion
— 林 正紀 (のりぃ) (@m_norii) 2017年2月22日
エンジニアであっても、技術はすっげぇできます、でも御社のサービスには興味ありません、では流石に厳しいと。
これは自分が過去の採用面接で取ってきた人と重ね合わせても全く同じ印象。
メルカリはメルカリやってない人は取らないっていってたな。
あと、最後のQ&Aで、評価についての質問がでたところのくだり。
定量的な評価は無理。大事なことは納得感。 #techlion
— 林 正紀 (のりぃ) (@m_norii) 2017年2月22日
いかに事前に期待値を伝えるか。 #techlion
— 林 正紀 (のりぃ) (@m_norii) 2017年2月22日
定量的な評価をすることがはたして幸せになるのか。 #techlion
— 林 正紀 (のりぃ) (@m_norii) 2017年2月22日
うちの会社もちょうど評価シーズンなので、
その手のイベントをやっているけど
正直なかなか難しいと思っている。
僕の意見も、定量的な評価に寄せすぎるのは危険だと思っていて
定量をクリアするのが目的になってしまう人が少なからずいるから。
ただ、政治的な理由で、どうしてもそういったものを付けなければいけないことはあるので
それはもう「必要悪」と割り切って、あとは定性的な部分を 1on1 でしっかり伝える、しかないんじゃないかなと思っている。
そういえば、最近読んだこの本も面白かった。
開発現場がアジャイルなら、評価もアジャイルに、てのはわかりやすい話だなと思った。
自分も6社いままで渡り歩いてきて、満足できる評価制度に出会ったことがない。
もしかしたら、この本にあるようなドラスティックな方針転換がそろそろ必要なのかもしれない。
2017-02-03 第2回 セキュリティ共有勉強会
https://intra-security.connpass.com/event/47638/
#intra_security
参加してきました。
いつもどおり、雑多なmemo。
@a_okusan:添付ファイルと暗号化とその意味
メールの添付はやめてクラウド使おうという話。
ただ、世の中には無意味にクラウドアレルギーな人がいるんすよなぁ。。。
そこをどう説得するかが大事な気がする。
@5470v8:CSIRTでなくても回る仕組みづくり(仮題)
とても良い発表だったのだが、
残念ながらご本人の意向であまりこういうところには書かないでほしいようなので。
資料は修正した後に公開する、といっていたような記憶があるので、それに期待。
q09029 : 社会人による衛生開発の実情と情報リスクの共有
なんかすごいことしてる人がいるんだな、とちょっと面食らった。
アマチュア無線は暗号化しちゃいけないだね。
@1samuraiboy:セキュリティ投資の必要性を経営層に納得してもらった方法
セキュリティ意識を高めた3つの方法
現状を認識してもらう
事例共有・・・やっぱこれが鉄板だよな。うん。
経営陣に通じる言葉で話す。
ビジネス的にどうなるか?を話す。
経営陣が知りたいこと
うちのセキュリティ対策は大丈夫か。
@usiusi360:脆弱性スキャナVulsを使ってDevSecOpsを実践!
脆弱性チェックの自動化。。。確かに人力はつらい
「見えないことはコントロールできない」
Vuls特徴
非破壊で安全にスキャン
日本語レポート、すげぇ大事。
いいな。使ってみたい。
OSC Tokyo 3/10(金)に発表あるとのこと。行きたいけど平日か。。。
仕掛けとしては、yum等のchange logをみてるんだ。なので、負荷はあまり無いとのこと
(sudo権限必要)
・・・てことは、手動でソースから入れたやつとかは厳しそう。
メールは1通1通くるらしい、たくさんくるとあれだな。。。
エージェントモードのメリット
→SSHが不要なこと。SSH直接できないサーバをスキャンするとか。
LT
(1)インフラ屋がPostfixのTLS化で困った話
https://speakerdeck.com/hirofumihida/trouble-with-enabling-tls-on-postfix
(2)メールフィルタの話
https://docs.google.com/presentation/d/1-UHs3ch6lTv9-Lv8WIhS5-ryyIWnDV7q5Zlb5IxB9Ng/edit#slide=id.p
サンドボックスのパターンのものを入れた
質疑応答で聞いたんだけど、やっぱそれでもぬけるケースも多いんだなぁ。