Chatwork Creator's Note

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

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

読者になる

未来のChatworkについて(2020年版)

メリークリスマス♩id:cw-kasugaです。
この記事は、Chatwork Advent Calendar 2020 - Qiita の25日目の記事です。

Advent Calendarも最終日ですが、前回記事を書いたのが3年前だったことに驚愕してます。 今年からは対外的にもCTOという職責も任命頂いており、プロダクト周りの責任者として社外の人と積極的に交流したいと考えていたのですが・・・ コロナ禍という事もあり、自宅に引き篭もった一年でした(涙) その分、在宅環境が充実しました!在宅環境に関しては、弊社の制度絡めて別の機会に話してみたいと思います。

creators-note.chatwork.com

今回はChatwork社が前回の投稿からどんな施策をしてみたのか?今後どんな事にチャレンジしていこうとしているのか?それを実現する為にどんな組織になっていきたいか そんな理想に対して現状どんな課題があるのか?といった点について記事にしたいと思います。

  • tl;dr
  • 2017からの振り返り
    • リリース済み機能の継続的改善チームの結成
    • セキュリティチームの結成
    • DevHRチームの結成
    • 新卒採用(サマーインターンの開始)
  • Chatwork社の現状プロダクト課題
    • 継続的なUXの磨き込みが出来ていない
    • スケールしていく組織に紐づいたアーキテクチャへの転換
    • 強い実行力を支える生産指標の追求
  • 最後に
  • 余談

tl;dr

  • Chatwork社自体も、この3年で上場やらCTO交代と色々と動きがありました。
  • 2021年は、プロダクト成長スピードを加速させる為に、プロダクトマネジメント組織機能も包括する組織になります。
  • 専門性を高めてこれからのChatworkの更なるスケールを支える次世代アーキテクチャを構築したいエンジニアも、雑食で色々と触りながら、少数精鋭でスピーディーに今の本番環境を改善していきたいエンジニアも絶賛募集中!
続きを読む

Tools supporting kubernetes cluster in Chatwork (2020 version)

Hello, this is Sakamoto from the SRE Department. I run at least one full marathon every year, but unfortunately, I couldn't make it in 2020. I managed to run under 90 minutes (89 minutes) in the half-marathon held just in February, and I was aiming to run under 3 hours and 10 minutes this year but, unfortunately, there was nothing I could do.

I was not particularly interested in participating in track events as I did not run as part of my club activities, so I only had a goal of running a total distance for the year, and as of mid-December as I write this, my goal is 2591km. Last year's goal was 2724km, so I'm hoping to improve on that.

And without further ado, we've been using Kubernetes at Chatwork since 2016, at that time the EKS was not in existence, we were the early adopters of Kubernetes, so we used a tool named kube-aws to host and run Kubernetes on EC2, but we migrated to EKS this year.

aws.amazon.com

I'd like to introduce the tools that support Kubernetes for Chatwork (2020 version). The tools are not the command-based tools, such as kubectl and helm, but rather tools that run as applications in Kubernetes and support the application of services.

These tools are not included by default in EKS, some are included by default in GKE and AKE.

  • List of tools
  • Tools
    • dns-autoscaler(cluster-proportional-autoscaler)
    • node-local-dns
    • metrics-server
    • cluster-autoscaler
    • aws-alb-ingress-controller
    • aws-node-termination-handler
    • aws-ebs-csi-driver
    • node-problem-detector, draino
    • cert-manager
    • external-dns
    • reloader
    • datadog-agent
    • aws-secret-operator
    • kube-schedule-scaler
    • Flux、ArgoCD
  • Summary
続きを読む

ChatworkのKubernetesを支えるツールたち(2020年版)

こんにちは。SRE部坂本です。毎年最低1回はフルマラソンに出ていますが、2020年はあえなく参加できずに終わりました。 2月にギリギリ行われたハーフマラソンではなんとか90分切り(89分台)を達成し、今年は3時間10分以内を目指してただけに残念ですが、仕方ありません。

特に部活等で走っていたわけでもなく、トラックの大会に参加するのはやや抵抗があり、年間の走行距離ぐらいしか目標がなく、これを書いている12月中旬で2591kmとなっています。昨年が2724kmだったので、なんとか更新したいなーというのが今の気持ちです。

さて、Chatworkでは2016年からKubernetesを導入しております。EKSもない時代ですので、kube-awsというツールを利用してEC2にホスティングして運用していましたが、今年EKSに移行しました。

aws.amazon.com

そんなChatworkのKubernetesを支えるツールたち(2020年版)を紹介したいと思います。ツールは、kubectlやhelmといった、コマンドではなく、Kubernetesにアプリケーションとして動かし、サービスのアプリケーションを支えるツールたちです。

これらのツールはEKSではデフォルトで入らないもので、GKEやAKEだとデフォルトで入っているものも含みます。

  • ツールの一覧
  • ツールたち
    • dns-autoscaler(cluster-proportional-autoscaler)
    • node-local-dns
    • metrics-server
    • cluster-autoscaler
    • aws-alb-ingress-controller
    • aws-node-termination-handler
    • aws-ebs-csi-driver
    • node-problem-detector, draino
    • cert-manager
    • external-dns
    • reloader
    • datadog-agent
    • aws-secret-operator
    • kube-schedule-scaler
    • Flux、ArgoCD
  • まとめ
  • 最後に
続きを読む

Rustでのモデル駆動設計について

こんにちはかとじゅんです。

この記事は、ドメイン駆動設計 Advent Calendar 2020の23日目の記事です1。DDDというよりRustの記事になってしまった…。

Rustの勉強を始めたのは2017年あたりと古いのですがなかなか身が入らず、本腰入れたのは今年の11月ぐらいでした(遅ッ。Scalaで実装してたライブラリをRustに書き換えたおかげでようやく開眼しました2

というわけで、今回は完全趣味の領域であるRustでドメインモデルをどう実装すればいいのかについて、僕の意見やアイデアなど雑にまとめてみたいと思います。まぁこれについてもいろんな観点がありますが、値オブジェクトやエンティティを実装するならという観点です。

※あ、Rustの所有権システムなどの言語仕様については細かく触れないので、各位適宜正しい情報源を参照してください。

f:id:j5ik2o:20201222164532p:plain


  1. RustのAdvent Calendarにもエントリしたかったが、遅かった

  2. NLLという借用チェッカーが使えるようになったのでだいぶコードが書きやすくなったようなので、タイミング的にちょうどよかったんじゃないかと思っています。

続きを読む

1年後のChatworkインフラの話 (2020年版)

こんにちわ。id:cw-tomitaです。
この記事は、Chatwork Advent Calendar 2020 - Qiita の21日目の記事です。

Advent Calendarシーズンももうすぐ終わりですが、入社して初めての年のAdvent Calendarでこんな記事を書いたな〜と、ふと思い出し、

creators-note.chatwork.com

この記事を書いてから3年という、何となくキリのいい数字を迎えたので、これまでの歩みを振り返りつつ、来年やろうとしていることの紹介しつつ、あわよくば、そういうのめっちゃ興味ある!って人にChatworkのことを知ってもらうきっかけとなることを期待して、当時の記事タイトル*1をオマージュ*2して、この記事を書いていきたいと思います。

  • tl;dr
  • 2017年末からの変化
  • 2021年に向けて
    • やってきアイテム達
      • EKSの定期version upgrade運用の洗練
      • PHPアプリケーションのKubernetes移行の完了
      • IaC(Infrastructure as Code)の強化
      • HBaseのリプレイス検討・推進
  • 2021年末の状態
  • まとめ

tl;dr

  • Chatwork自体も、そのインフラも、この3年でめちゃくちゃ色々と変化・進化しました
  • 2021年は、アーキテクチャ刷新プロジェクトは動きつつも、まだ、そっちの不確定要素が色々とあるので、既存システムに対しての改善・運用のアクションも止めずにやっていく必要がある
  • 専門性を高めてこれからのChatworkの更なるスケールを支える次世代アーキテクチャを構築したいエンジニアも、雑食で色々と触りながら、少数精鋭でスピーディーに今の本番環境を改善していきたいエンジニアも絶賛募集中!

*1:元記事のタイトルの"1年後" っていうのはちょっとアグレッシブすぎて、だいぶミスった感ありますが、そこはご容赦を💧

*2:去年くらいに会社名もプロダクト名も"Chatwork"に記載が統一されたので、そこは広報の人に怒られないように変えています

続きを読む

【Chatwork Advent Calendar 2020】Chatworkに鹿児島からリモートで働くエンジニアのルーティン

こんにちは。ウスターソースの便利さに目覚めた新沼 ( @cw-niinuma ) です。

この記事は Chatwork Advent Calendar 2020 の 18日目の記事です。 2018年に入社して以来ずっと鹿児島からリモートワークを続けているわけなのですが、そんな私の一日を少しだけ書いてみようと思いました。

f:id:cw-niinuma:20201217124100j:plain

今年はコロナ禍で世の中の働き方ががらっと変わった一年でしたが、私自身は何も変わらない生活を送っています。 それは弊社の在宅勤務しやすい体制が、非常に整っているからであると言えると思います。

続きを読む

どこからアクセシビリティ対応をすすめるか

こんにちは!モバイルアプリケーション開発部の Android エンジニア、いけちょ(@ikeda_shogouki)こと池田です。

最近、SLA の 3D プリンターを購入し、夜な夜なパーツを出力して遊んでいます。3D プリンター最高~!

さて、これは Chatwork Advent Calendar 2020 17 日目の記事です。

アクセシビリティ対応やってくぞい!

先日、Chatwork でどのようにアクセシビリティ改善を進めているかご紹介しました。

creators-note.chatwork.com

この記事を読んで、「よし!アクセシビリティ対応やってくぞい!」と思ったものの、どこからアクセシビリティ対応を進めたらよいか分からないという方もいるかもしれません。

そんなときは、Google が公式に公開している Accessibility Scanner というアプリで、アクセシビリティ対応が必要なところを洗い出すことができます。

続きを読む