するめごはんのIT日記

主にITネタを書いていくのさ

GCPUG Tokyo June 2018に参加した

ごきげんよう

f:id:surumegohan:20180618222956p:plain

6月26日のスマートスピーカーを遊びたおす会」の登壇が迫っておりますが、
それはそれとして本日は「GCPUG Tokyo June 2018」が開催されたので参加してきました。

スライド資料はこちらに公開されてます。
ありがてぇ、ありがてぇ。。

How to utilize GKE for QA environment - Speaker Deck

GCPUG Tokyo June 2018 - connpass

参加目的

参加目的は大きく2つ

1. 元QAエンジニアとしてメルカリ社のSETに関心がかなりあったから

新卒入社したでかいSIer企業でミッションクリティカルなシステムの品質を任された経験と、前職でQAエンジニアとしてE2E試験をSeleniumとかAppiumとかゴリゴリしてたり、レビューに参加しまくってたりしてた経験があり、メルカリ社のSET(Software Engineer in Test)に当時から強い関心がかなりありました。

データベースエンジニアからQAエンジニアとして転向して仕事してた際に、
「Web系企業のソフトウェア品質の最近の流れはどうなのよ」
と調べたところ、メルカリ社のSETチームについて知り
「メルカリさんは本気で品質に取り組んでる!」
と強く認識したのは今でも覚えています。

特にこれらの記事

tech.mercari.com

そんなメルカリ社のSETの方が、メルカリ社の取り組みについて話されるとあれば行くしかない。

2. Google Cloud Platformについてあまりにも無知だから

AWSについては、最近Alexaと関わっているのと、業務経験からある程度の知識はありましたが、GCP(Google Cloud Platform)については、もうほんとに無知なので、
「どげんかせんといかんなぁ」
と思いつつも、後回しにしてしまってた状況だった時に、
「今回のイベントでGCPのユーザグループの人が話すなら、得るものが必ずあるはず!」
と、きっかけとして良いと感じたところがあったからです。

セッション内容

最初、そもそも「gcpug」とは。
というお話から始まったのが個人的には嬉しかったです。
トーシローなので。。。

ユーザグループのサイトはこちら
https://gcpug.jp/

セッション1:メルカリにおける開発/QA環境の変遷について

■会場のSETの認識があんまりなかった

まず会場で
「SETというロールをご存知の方、挙手お願いします」
から始まりましたが、10人くらいしかいなかったのがビックリしました。

もっと認知されていると勝手に思ってましたがそうでもない模様。

■メルカリさんのQA環境の組織的な話

メルカリさんでも最初はマニュアルテストをやってたっぽくて、そこからQAエンジニアやエンジニアのローカル環境やQA環境を整えて、UIテストを自動化していったという地道なところからやはり始まっておりました。

メルカリ社に入社すると「ローカル環境」がすぐに作れるようになっているらしく、PR(プルリク)を他メンバーにレビューしてもらっている。

QA環境は共通のDBは仕方がないけれど、APIとかAdminとかは独立して動く環境が整っていて、かつ、可能な限り本番と同等の環境が用意されている。
そして、各個人でのテストの実施によるログが混じりある状況は避けているとのことでした。

なので組織的にソフトウェア品質に向き合っていて、個人単位でやるところは個人単位、けれどもレビューはチーム連携をしている。

ソフトウェア品質について、品質チームに丸任せではなくて、メルカリという組織で品質を担保しているんだなと強く感じました。
正直、羨ましいし、ソフトウェア品質に関わるならそういう環境で働きたい。

■技術的な話

CircleCIを使ってビルド中にデプロイ。
単に使うだけではなくて、地道にコマンドを組み合わせてテスト環境を整えている印象でした。

で、CTOが
「HTTPヘッダをみればいいんじゃね?」
みたいな助言なさったみたいで、それをもとにHTTPヘッダの特定ヘッダを確認して、特定のプロキシに選別するような仕組みを構築したらしいです。

ただ、オレオレのyamlテンプレート問題とかの課題が残っていたので、
「マイクロサービスのデプロイはSpinnakerにすればいいんじゃなかろうか」
ということでSpinnakerに徐々に寄せていったらしい。

そこらへんはメルカリさんのブログでも書かれています。

tech.mercari.com

で、
CircleCIからGCRにDockerのイメージをプッシュするだけにしましたー
これでシンプルになったぜー
けど、そもそもSpinnaker自体の課題が結構あるから、これから対応していきたいー

って考えてたら
「kustomizeに置き換えればいいんじゃね?」
と最近思うようになったらしいです。

■所感

僕「ほーん、なるほどね。完全に理解した。」

嘘です。

ぶっちゃけ、名前もしらない技術でてきました・・・
なので、ふわっとした記事しか今は書けない・・

ただ、組織的に品質に向き合っている姿勢と
「生産性を意識しながら、品質をいかに担保していくか」
を技術面でがっつりやってるところが、すごかった。

ステージング環境があるのは当たり前で、いかに効率よく試験していくかを技術的にも組織的にも向き合ってて、CTOが絡みつつも常に改善していってるのが本当にすごかったです。

人海戦術でマニュアルテストをごりごりやって、Excelで管理してる組織じゃない。
QAやSETのチームが技術で品質向上に主体的に向き合ってるのが実にエンジニアリングでした。

セッション2:最近、GCPに追加されたものたちの概要

GCPの流れ

GCPはいろいろなアップデートが日々されているけれど、今回はそれらの中で比較的(インパクトが?)大きいモノをお話しますという流れ。

これも公開されているスライドをみてくださいという感じですが、会場で流れた話をここに記載しておきます。

最近、Node.jsに正式に?対応したらしいけれど、App Engineでお馴染みの機能が使えるわけではないことにまずは注意していただきたい。
App Engineはそもそも自由に外に通信することができず、RPCで飛ばしていた。
そしてGCPはgRPCというモノを使っているらしい。

どうやら今まではPythonは2にしか対応してなかったらしく、いよいよPython 3に対応することになったことが大きいとのこと。
PHPも7.2に対応になったご様子。
それはたしかに大きな話。

■Cloud Composer

そして、Apache AirflowのフルマネージドサービスとしてCloud Composerってのがでてきたらしい。
画面上でポチポチなさっているデモ発表だったけれど、なんかすごい遅かった。
あんなものなのだろうか?

Google Could Memorystore

こちらはRedisのフルマネージドサービスのベータ版。

RedisなのでBasicプランだと中身ふっとぶぜー
Standardだとお金かかるけど、レプリケーションとかするからデータふっとぶことはないらしい。

ただ、Redisそのものに認証機能がないのもあるため、Compute Engineの同じネットワークからしかアクセスできない・・・
これ、かなりしんどいと思う。。。

■所感

僕「ほーん、なるほどね。完全にr

こちらも嘘です。

なんとなく言ってることはわかるんだけど、本当になんとなくしかわからなかった。

「こんなことができるのかー」
くらいになりました。。。

ぶっちゃけ置いてけぼりに近かった。

参加してみて

メルカリさん、本気でエンジニアリングしてる。
という印象がとても残った。

そして、GCPに無知すぎるので、危機感が半端ない。

わからんもんはわからん。
これから覚えていけばいい。

なので、こちらのGCPのノウハウ集をブックマークしてSlackワークスペースにも参加しました!

github.com

ぼちぼちチェックしていきます