Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

SRE部が発足して1年半が経過しました

こんにちわ。SRE部のcw-tomitaです。

Qに一度実施しているSRE部の合宿を今回は鹿児島で開催していて、鹿児島でこの記事を書いています。 合宿を通して、内向きには定期的にやってきたこと、やっていくことを振り返れているとは思うのですが、外に向けてはまとまった形で共有する機会がなかったので、少しまとめてみよう!と思い立ち、この記事を書くことにしました。

SRE部について

こちらが部が発足した時に私が書いた記事になります。早いもので、この記事を書いて1年半もの年月が経過しました。

SRE部が発足しました - Chatwork Creator's Note

この時から、部のミッション/立ち位置は大きく変わっていないのですが、大きな変化として、今年の2月に2名(cw-niinuma, cw-vikas)のメンバーが入社し、7名体制になりました。 cw-niinuma は鹿児島からのリモート勤務、cw-vikasはインドから来日しての入社と、人数だけでなく、多様性、インターナショナリティが増しました。現在、SRE部は東京オフィス3名、大阪オフィス2名、リモート勤務(愛知、鹿児島)2名と、地理的な配置はバラバラ、また、cw-vikasに関しては、絶賛日本語トレーニング中につき、英語でのコミュニケーションが必要となるなど、端からみると失敗しそうな条件が揃っているかもしれませんが、コーポレートミッションである「働くをもっと楽しく、創造的に」を体現すべく、個々人が技術を磨きながら、在るべきコミュニケーションのあり方を常に模索し、しっかりとしたアウトプットを出すべく日々奮闘しています。

合宿について

普段は、毎朝の朝会、Chatworkを通してのテキストのやり取り、必要に応じてのビデオ会議やペアオペレーションで、仕事を進める上で大きな問題は出ることなく回せています。が、部署としての仕事の進め方や、これからのやってきアイテムの確認、期の振り返りなど、少しハイコンテキストな会話をするにあったては、物理的に同じ場所に集まって意見を出し合う方がディスカッションが盛り上がりやすいですし、人間同士なので実際に顔を突き合わせてワイワイやることの価値ってのもなんだかんだと存在すると感じています。また、日々の仕事に追われているとどうしても短期的な視点になりがちなので、定期的に強制的に視界を変えて、全体最適をしたアウトプットを意識できるようにするという意味もこめて、SRE部ではQに1度、物理的に一箇所に集まって合宿をやっています。また、これがあるおかげで、日々の仕事が問題なく回せているという面も多分にあると思います。

ただ、これまで全5回は全て東京での開催で、↓のような変化球を入れたりもしたけど、

AWS DevDay Challengeに参加してきました(チーム関東) - Chatwork Creator's Note

東京で合宿をやるという行為自体に少しマンネリ感がでてきてしまっていました。そんな中で、2月にcw-niinumaという鹿児島在住メンバーが加入し、ふとした会話の中で鹿児島合宿行けるんじゃね!となり、LCCとか使えば全然いける、むしろ東京に全員集合するより安くつくやん!ってなって、今回は全メンバー鹿児島に大集合しました。(他にもお手頃価格で行けるオススメの地域あったら是非、教えてください!) 写真は一時、火山と言われていたHBaseを取り扱っているものとして表敬訪問した桜島。2年半動いていたHBase clusterのversion upを終え、旧clusterをshutdownするオペーレションを行なった直後に訪れたので、感慨ひとしおでした。綺麗だった。。桜島、HBase共に噴火しなくて良かったですw

f:id:cw-tomita:20190624185016j:plain



部としてこれまでにやってきたこと / やっていること

先に、部が発足したての時の記事を紹介しましたが、この時は何の実績もなく、概念を紹介しただけでしたが、1年半が経過して色々と実績もできたので、今回は実際にやったこと、今取り組み中なことをいくつか紹介したいと思います。

AWSのコスト最適化

Chatworkのようなサブスクリプション形式のビジネスモデルの場合、システム原価は、このビジネスが永続的のものあるか、スケールしうるものであるかどうかを現す極めて重要な指標となります。CEO兼CTOである正喜さんが我々をしっかりと見張る 会社の透明性を高めるために作成されたダッシュボードとにらめっこしながら、大小様々な施策をうってきました。コスト削減はReliabiltyに繋がるわけではないのですが、Reliabilityを損なわずに安い原価で同じクオリティのサービスを提供できることは、Reliabiltyをあげるのと同等の価値があるという考えのもと、SRE部主導で様々な施策を行なって来ました。 いくつか例をあげると

  • cloudfront化 + トラフィックコミットによる割引
  • S3のIntelligent-Tiering tierへの切り替え
  • spot instanceの利用開始
    • 一部しか導入できてないので、後で紹介するk8sへの環境統一が完了したら再度挑戦したいな〜と思っています
  • DynamoDBのAuto scaling対応
  • 固定台数で動いていたコンポーネントへのASG適用
  • roleが分けられていたサーバの統合

等々を行いました。 そして、今、最後(?)の大玉に着手しており、これは無事に完了したらまた共有したいなと思っています。

PHP7対応

去年の夏頃に対応が完了しました。既に、他社の事例がいくつか出ていてやや後発だったので、記事での紹介や発表資料などは存在していないのですが、他事例で発表されているように大きくリソース利用効率が向上し、大幅なEC2の台数減に繋がりました。PHP7ほんと凄い。

kubernetesの運用+諸々の改善

2016年の年末からkubernetesの本番活用を行なっており、様々な運用改善を行なってきました。一部、以下にまとまってますが、書かれてないことがたくさんあったり & また、後で紹介するkubernetesへの環境統合と合わせて、引き続き改善施策を継続中です。

Kubernetes on AWS at Chatwork - Speaker Deck

「Kubernetes(k8s)導入とその後」を聞きにCTO Meetupというイベントに来ました | ヤマムギ

HBase周りのオペレーション / version up

version upはごくごく最近行いました!これに関しては後続記事が出てくるので詳細は省きますが、一般的に行われるrolling upgradeではなく、Kafkaを使ったイベントソーシングなCQRSであることを活かした面白い事例だと思いますので、記事をお楽しみに!

(7/10:追記) 記事公開しました! creators-note.chatwork.com

また、HBase on EC2 のみだけでなく、2017年の中頃からHBase on EMRも動いていて、そちらの構築・運用も行いました。この辺りの使い分けや運用でのあれこれも機会があったら共有したいなと思っています。

モニタリング強化

コストに関して削れるところは削りつつ、サービスの性質上、安定稼働も極めて重要な要素なので、monitoring/alert に対しては (他社の具体的な数字はあまり知らないですが ) 比較的厚めにコストを使っていると思っていて、NewRelic、Datadog、ログの集約 + エラー検知等々、様々なmonitoringとalertingを行いつつ、モニタリングに関しても、アプリケーションの進化に追随して、日々改善を続けています。また、ここに関してはサーバサイド開発部のメンバーと一緒にやってる所もたくさんあって、"DevOps"が出来始めているのかな〜という気がしていて、開発組織として強くなっていってる感覚が凄くあります。

障害対応

過去の対応一覧を眺めましたが、様々な思いがこみ上げ、短い言葉でまとめきれないので、機会があったら別記事や登壇等で紹介したいと思います...
エンタープライズプランのお客様向けに掲げている99.9%の月間のSLAに関しては、2017年11月に発生した障害での違反を最後に、それ以降は守ることが出来ています!

kubernetesへの環境統合

現在、kubernetesで動いているアプリケーションと、EC2を直接provisioningして動かしているアプリケーションと2系統存在しているので、これをkubernetesに統一すべく、絶賛奮闘中です。別ネタでの登壇資料ですが、ざっくりしたイメージは↓の通り。

Envoy externals and ideas (builderscon 2018) - Speaker Deck

ただ単にPHPアプリケーションをkubernetesに移しました〜っていうだけではない、最新のkubernetesエコシステムに乗っかった、オシャレなものになりそうな予感なので、完成したら是非いろんな所で共有したいな〜と思っています。凄く楽しみな案件です。

まとめ

少し長くなりましたが、SRE部のこれまでの振り返りと、今やってることの紹介でした。この後、いくつか具体的な取り組みに関する記事が続く予定ですので、そちらもお楽しみに! Chatworkでは、このように多岐に渡る施策をどんどんやれる雑食エンジニアも、雑食じゃないエンジニアも両方絶賛大募集中です!!

corp.chatwork.com