2018ラスベガス2日目

今日はワークショップ、セッション等に出た。

カンファレンス飯、1mmも期待してなかったのだが正直おいしかった。普通にホテルビュッフェだった。AWSありがたい。

今日のよかったこと

晩ごはんは、同僚の知り合いとごはんに行ったんだけど軽くつまむつもりが大変なことになり、これがアメリカか…となった。

明日も早いので寝よう

2018ラスベガス1日目

re:Invent 2018参加のためにラスベガスに来ている。アメリカ本土はRubyConfのマイアミ以来だと思う。

いくつかよかったことがあったのでメモしておく。

  • まずは無事に着いて入国できたこと。これが一番
  • 普段のシャンプーを持ってきたこと。泡立ちとか匂いとかわりと癒しですね
  • まずはおいしい肉を食べて食生活をスタートしたこと

Outback Steakhouseなら日本にもあるじゃんとか言われそうだけど、おいしかったから良し。

気圧調整付きの耳栓が機内でも平地でも使えて便利でありがたいのだが、ずっと装着していると耳の穴が痛痒いのが問題だなぁと思う。

さてもっかい寝よう

AWS CDKによるdeployの前に、cdk diffやsynthのレビューを行うのが運用上よいのではないかという話

前置き

CDKについて

AWS CDK使っていますか? 知っている人は適当に読み飛ばしてください。知らない人は全部読んでいってください。

これですこれ。 github.com

Welcome — AWS Cloud Development Kit

aws.amazon.com

CloudFormationでJSON書くのはなかなかしんどく、いい感じにJSON出力してくれるものが出ないかなぁと思ってはいましたが公式で出てきて、わっしょーいという感じです。しかも、TypeScript、JavaScript そして Javaで記述可能ですし、.NET と Python も近々公開されるとか。

AWS CDKの使い方については、公式リポジトリの /examples/cdk-examples-typescript 以下が参考になりますね。既存リソースの import もできますね。

aws-cdk/examples/cdk-examples-typescript at master · awslabs/aws-cdk · GitHub

CDKでの開発について

AWS CDKは、まだ正式リリースではないのですが、stagingの構築等で使っている方も結構いそうな気がします。 意図しない変更が本番に反映されるのは嫌なので、インフラの人とか開発チーム内でレビューするのが良さそうです。

ちょうど、CDKには cdk synthというコマンドがありCloudFormationのJSONを出力してくれます。

こうしたサンプルを食わせると

import cdk = require('@aws-cdk/cdk');
import s3 = require('@aws-cdk/aws-s3');

class MyStack extends cdk.Stack {
    constructor(parent: cdk.App, id: string, props?: cdk.StackProps) {
        super(parent, id, props);

        new s3.Bucket(this, 'MyFirstBucket', {
            versioned: true
        });
    }
}

class MyApp extends cdk.App {
    constructor() {
        super();
        new MyStack(this, 'hello-cdk');
    }
}

new MyApp().run();

こうしてJSONを出力します。

cdk synth
Resources:
  MyFirstBucketxxxxx:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled
  CDKMetadata:
    Type: AWS::CDK::Metadata
    Properties:
      Modules: "@aws-cdk/aws-codepipeline-api=0.15.2,@aws-cdk/aws-events=0.15.2,@aws-c\
        dk/aws-iam=0.15.2,@aws-cdk/aws-kms=0.15.2,@aws-cdk/aws-s3=0.15.2,@aws-c\
        dk/aws-s3-notifications=0.15.2,@aws-cdk/cdk=0.15.2,@aws-cdk/cx-api=0.15\
        .2,hello-cdk=0.1.0"

diffとして出すこともできます。 蛇足ですがdiffの仕組みがどうなってるのか、複数人でCDKで開発したときにどうなるのか。Terraformのようにstateファイルがないのに、はて…。となっています。調べてわかったら記事を書くかもしれません。

cdk diff
[~] 🛠 Updating MyFirstBucketxxxxx (type: AWS::S3::Bucket)
 └─ [-] .BucketEncryption:
     └─ Old value: {"ServerSideEncryptionConfiguration":[{"ServerSideEncryptionByDefault":{"SSEAlgorithm":"aws:kms"}}]}
[~] 🛠 Updating CDKMetadata (type: AWS::CDK::Metadata)
 └─ [~] .Modules:
     ├─ [-] Old value: @aws-cdk/aws-codepipeline-api=0.15.2,@aws-cdk/aws-events=0.15.2,@aws-cdk/aws-iam=0.15.2,@aws-cdk/
aws-kms=0.15.2,@aws-cdk/aws-s3=0.15.2,@aws-cdk/aws-s3-notifications=0.15.2,@aws-cdk/cdk=0.15.2,@aws-cdk/cx-api=0.15.2
     └─ [+] New value: @aws-cdk/aws-codepipeline-api=0.15.2,@aws-cdk/aws-events=0.15.2,@aws-cdk/aws-iam=0.15.2,@aws-cdk/
aws-kms=0.15.2,@aws-cdk/aws-s3=0.15.2,@aws-cdk/aws-s3-notifications=0.15.2,@aws-cdk/cdk=0.15.2,@aws-cdk/cx-api=0.15.2,he
llo-cdk=0.1.0

本題

前置き長かったですね。cdk synthコマンドでのCloudFormationのJSONや、cdk diffコマンドの出力結果をプルリクエストに添えたら便利だと思いませんか。適当なラッパースクリプトを叩いたらcdk synth, cdk diffを行い、その結果をプルリクエストに簡単にくっつけられる。そんな仕組みを作ったらInfra as Codeが加速し、DevとOpsとの境目はもっとゆるふわになるのではないか。そう思って、記事を思いつきで書いてみました。

  • インフラエンジニアとしては、既存リソースへの影響範囲を変更前に知ることができる
  • アプリケーションエンジニアとしては、コードやJSON、diffでインフラエンジニアと対話する手段を得ることができる
  • しかもこれについてのコードレビューや会話をGitHub上で行うことができる。

ということで早く正式リリースされてほしいですね。現段階では、ドキュメントに書いてある内容が間違っていることもあるのでコントリビューションチャンス!という気がします。

「エンジニアのためのマネジメントキャリアパス」を読んだ感想

www.oreilly.co.jp

上記の本を読んだ。

感想

キャリアをスタートし、誰かにマネジメントされるところから経営幹部に至るまでを丁寧に解説していた良書だと感じた。これまでエンジニアとして働き、上司にマネジメントされるなかで感じていた腹落ちできていないことについても考えを整理するのに必要なだけのインプットをもらうことができた。

特に強く印象に残ったところ

良い悪いに関わらず上司からのフィードバックはきちんとメモしておいて、自己評価を書く際に活用しましょう

これは忘れがちでなかなか実践できない。slackの分報やプライベートメッセージにメモしておくのが良いと思われる。これをうまく実践できると評価面談のための資料を作るときに役立つ。

学習や成長に役立つプロジェクトを見定め、それを担当させてくれる上司は最高

わかる。それな。後輩とかがどんなプロジェクトを受け持つかというのも、この上司視点で見るととても示唆がある。その上司と担当させた理由について個別に話すのも良い体験になる。マネジメントのための素振りだと僕は思っている。

優秀なテックリードになるためのコツ、実際のプログラミングの作業からあっさり一歩引き、技術面での貢献とチーム全体のニーズへの対応のバランスを取る努力を惜しまない

テックリードの果たすべきプロジェクトプランナーとしての役割は、作業をデリバリ可能な単位に大まかに分割するというもの

なるほどねと思った。この本のおかげで、テックリが何をするのかをわかってきた気がしてありがたい。

ブリリアントジャーク(brilliant jerk)「エンジニアとしては格別に優秀だが、実に嫌なやつ」

ここでは多くを語らないけど、みんな読んでおくと良いと思った。まさにこの通りじゃん、という経験があり、いやはやひどかったですねと思わざるを得なかった。

最後に。割とこういう状況見たことがあるけども、本書では辛辣な感じに書いてあった。

くるりとハンバートハンバート見てきた

 

 

 

こういうライブがあり、くるりハンバートハンバートも好きだし、元アイドルネッサンス原田珠々華さんも出るので見てきた。

 

ハンバートハンバートはライブ見ると楽しいだろうなという想像どおりでよかった。想像以上にほんわかした気持ちになれた。くるりの曲を2曲ほどやってたのもよかったな。すごいぞ、あの夫婦。

 

くるりは、東京、ブレーメン、ソングライン、東京OPなどときて、アンコールでロックンロールだった。松本さんとか、しげるのギターソロ良すぎた。前回行ったときは、ハイネケン(後にソングラインという曲になった)のギターソロに悶絶したことを覚えている。

 

アンコールでハンバートハンバートとコラボしないかなと少し期待したのだが、さすがにそれはなかった。

うっかりチケット取った割には大満足だった。