あふん

ぷろぐらむとか

クラスメソッド株式会社を退職して Quipper Limited に入社します

TL;DR

from: クラスメソッド株式会社
to: Quipper Limited

Quipper でも SRE としてやっていきます。

何をやっていたのか

EC とかに使う API を提供するためのプラットフォームである prismatix というプロダクトを開発していました。

クラスメソッドと言えば AWS のコンサルをやっている会社というイメージが強いかと思いますが、こういうプロダクトも持っていたりします。

プロダクトの中は Amazon ECS を使ったマイクロサービス環境になっており、アプリケーションは Java と Spring Boot を使って開発をしていました。

私は、入社当初はバックエンドエンジニアとして、今年の春くらいからは SRE として働いていました。

クラスメソッドという会社について

リモートワーク

クラスメソッドという会社はリモートワークがとても盛んな会社です。私のいた部署でもフルリモートで働いている人が結構いたりしました。 地方で働いている方で、途中家事や子供がらみのタスクをこなしつつ働いている方もいらっしゃったりでとても柔軟な働き方ができる会社でした。

そんなこと言ってる私は出社しないとパフォーマンスが出ないので、基本出社していたのですが、やっぱり用事があるときに (通販の受け取りとかのしょうもないことでも) 柔軟にリモートで働ける制度があるのはありがたくもありました。

反面フルリモートで働いている方が多いのでコミュニケーション絡みの問題はやはりあって、そこら辺は試行錯誤しつつやっている、という感じでした。

ブログ

私はそんなに書いてなかったのと、普通に自分のブログに投稿していた。

なぜ辞めるのか

簡単に言えばやりたいことが実現できないからと感じたからです。ビジネスと自分のやりたいことがうまく噛み合っていないなというのは感じていて、自分の今後のキャリアのことも考えた上で今回は転職という選択をしました。

次にやること

10月から Quipper Limited に入社して SRE として働いていきます。

Quipper ではこれから絶賛マイクロサービス化を推し進めていくぞというフェーズで、私もその中で SRE としてどんどん開発がスケールしていけるような仕組みづくりをしていきたいです。

おわりに

クラスメソッドでは色々な方々に助けられましたし、お世話になりました。関わってくださった皆様本当にありがとうございました。

Quipper の皆さま、これからよろしくお願いします。試用期間があるので正式に雇用されたらまたブログでも書こうと思います。

干し芋

www.amazon.jp

新しい GitHub Actions で Go の lint と test と goreleaser によるリリースを行う

github.blog

今話題の新しい GitHub Actions が私の手元でも使えるようになっていたので、今まで CircleCI で動かしてた workflow を GitHub Actions に移行してみたりしました。 多分テンプレート的に使い続けることになると思うのでブログ化。

新しい GitHub Actions そのものについては下のブログがまとまっていておすすめです。

www.kaizenprogrammer.com

lint と test を実行する workflow

name: Go
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go:
        - 1.12.9
    name: Go ${{ matrix.go }} build
    steps:
    - uses: actions/checkout@master
    - name: Setup Go
      uses: actions/setup-go@v1
      with:
        version: ${{ matrix.go }}
    - name: Run go mod download
      run: go mod download
    - name: Install golangci-lint
      run: |
        curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.17.1
        # https://github.com/golangci/golangci-lint/issues/250
        sudo mv ./bin/golangci-lint $GOPATH/bin/
    - name: Run golangci-lint
      run: >
        golangci-lint run \
          --tests \
          --enable-all \
          --disable gochecknoglobals \
          --disable gochecknoinits
    - name: Run tests
      run: go test -race -v ./...

goreleaser を実行する workflow

name: Release
on:
  push:
    branches:
      - "!*"
    tags:
      - "v*"
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go:
        - 1.12.9
    name: GoReleaser
    steps:
    - uses: actions/checkout@master
    - name: Setup Go
      uses: actions/setup-go@v1
      with:
        version: ${{ matrix.go }}
    - name: Run go mod download
      run: go mod download
    - name: Run GoReleaser
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: curl -sL https://git.io/goreleaser | bash

だいたいの使い方とかは CircleCI の頃と同じ感じで書けるんですけど、トリガーとする event ごとに (ただの push なのか, tag の push なのかなど) workflow を記載する YAML ファイルが別れることになるので数千行ある闇の .circleci/config.yml みたいにはなりづらそうなのはいいかもって思いました。

あとはこの部分。

- name: Run GoReleaser
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

これだけの記述で GitHub の token をいい感じに取得することができるので、今まで token 発行して CircleCI に登録して〜 みたいな作業から解放されるのはめっちゃいいですね。

全体的に GitHub Actions、よさそうという印象でした。積極的に他の CI サービスから移行することはないかもしれませんが新しく作ったリポジトリとかは今後 GitHub Actions に寄せていきたい。

Kubernetes Meetup Tokyo 21 で 『Argo CD 実践ガイド』というタイトルで LT をしました #k8sjp

イベントページ

k8sjp.connpass.com

登壇スライド

登壇してきました。

Argo プロジェクトの概要に関する発表は PFN の @dtaniwaki さんが 『Argoプロジェクト最新動向』 というタイトルで発表しているのでそちらのスライドもご覧ください。

スライドの中でお話しした Argo CD の SyncWaves などの動作デモは動画が公開されているのでこちらも見るとイメージしやすいかもしれません。