kubell Creator's Note

ビジネスチャット「Chatwork」のエンジニアのブログです。

ビジネスチャット「Chatwork」のエンジニアのブログです。

読者になる

SRE

E2E テストの自動化から可視化 - Playwright × Amplify Hosting -

いつも読んでいただき、ありがとうございます。 BPaaS プロダクトユニットの山本です。 本記事では、私たちが取り組んでいる BPaaS プロダクト開発において、E2E テストの自動化から結果の可視化までをどのように実装したのか、詳しく紹介します。

Mocking in Schema-Driven Development

kubell Advent Calendar 2024 の投稿です。 [^1] qiita.com この投稿では、スキーマ駆動開発と Mocking について書きます。 tl;dr 前提 BPaaS サービス REST を選択した背景 スキーマ駆動開発 課題と解決策 課題 1. 外部 API 依存テストにおける信頼性向上 …

ADOT を使用して Next.js を計測する

kubell Advent Calendar 2024 の投稿です。 [^4] qiita.com この投稿では、AWS Distro for OpenTelemetry (ADOT) [^2] を用いた Next.js の計測について書きます。

BPaaS が AWS Amplify Gen 2 を選択する理由

kubell Advent Calendar 2024 の投稿です。 [^6] qiita.com この投稿では、BPaaS プロダクト開発において AWS Amplify Gen 2 (Amplify) を選択した理由について書きます。 tl;dr 前提 BPaaS サービスとは スキルスタック チーム状況 Amplify を選定した理由 …

EKSのノードをGravitonに変えました

SRE部の坂本です。 ChatworkはほぼすべてのアプリケーションをEKSで動かしています。そのEKSのノードは90%以上をSPOTインスタンスで動かしているので、i系インスタンスで動かしている状態でも、規模(日中で150ノード程度)の割には比較的安価に動かせている状…

Kubernetesのアプリケーションログ収集(2)

(1)では、Chatworkのリクエスト数やログの量など、Chatworkのログの背景をお伝えしました。 このブログでは、それらに対応している構成や、その構成になる前の話を記載したいと思います。 再掲ですが、Chatworkでは下記のように各ノードのforwarderとしてflu…

Kubernetesのアプリケーションログ収集(1)

SRE部の坂本です。 みなさま、Kubernetes環境(EKS環境)におけるアプリケーションのログ収集ってどうされていますか? Chatworkでは下記のように各ノードのforwarderとしてfluent-bit、aggregatorとしてfluentdというfluent兄弟を両方使っており、やや珍しい…

EKSの権限管理の方法をConfig MapからAPIに移行する

Chatwork 坂本です。 EKSを運用していて、微妙だな、、と思うのがaws-authという名前のConfig Mapでの権限管理だと思います。 2023年12月についに脱Config Mapが可能な機能がAWSからリリースされ、APIで管理できるようになり、移行を進めつつ、いろいろと整…

2023年度版!Chatwork流Kubernetesの運用方法

こんにちは。SRE部の桝谷@hnchn87です。 この記事は、 Chatworkのカレンダー | Advent Calendar 2023 - Qiita の 9日目です。 2023年12月6日に行われた「耐障害性向上・パフォーマンス改善・運用負荷軽減をどう実現する? 事業を支えるSREのノウハウを共有」…

いろいろなAWSアカウントのArgo CDを統合した話(4)

いろいろなAWSアカウントのArgo CDを統合した話(2) いろいろなAWSアカウントのArgo CDを統合した話(3) で、AWSのクロスアカウントまわりの話と、ApplicationSetの話を記載しましたが、そのほか細々と対応しつつ、無事に移行目前まで来ました。 (4)では移行目…

いろいろなAWSアカウントのArgo CDを統合した話(3)

いろいろなAWSアカウントのArgo CDを統合した話(2)では主にAWSのクロスアカウントに関して記載しましたが、(3)ではApplicationSetへの対応に関して記載したいと思います。

いろいろなAWSアカウントのArgo CDを統合した話(2)

いろいろなAWSアカウントのArgo CDを統合した話(1) - kubell Creator's Note では統合することになった背景を簡単に記載しました。 (2),(3)では、統合の際に対応に時間がかかったところを記載していきたいと思います。 (2)では主にAWSのクロスアカウントに関…

いろいろなAWSアカウントのArgo CDを統合した話(1)

はじめに ChatworkではArgo CDを利用して、Kubernetes上のアプリケーションのデプロイを行っていますが、もともと複数のAWSアカウントに存在するEKSクラスタにそれぞれ個別にArgo CDを準備して、利用している状態でした。 いろいろと問題があり、2023年6月に…

EKSでNode Local DNS CacheとSecurity groups for podsを一緒に使う

Chatwork SRE部の坂本です。この記事はChatwork Advent Calendar 2022 15日目の記事です。 この記事ではEKSにおいて、Node Local DNS CacheとSecurity groups for podsを一緒に使う方法について記載したいと思います。

EKSのバージョンライフサイクルに組織として対応する

先日行われた Chatwork Dev Day 2021 で、SRE部からは Immutable Clusterに対する定期Version Upgrade戦略 ということで、EKSのアップグレードへの対応について話しました。 www.youtube.com speakerdeck.com ChatworkではSREだけでなく開発チームも含めて、…

Kubernetes 導入における実践プラクティス(仮) The Beginning

こんにちわ。cw-tomita です。最近は「るろうに剣心 最終章 The Beginning」が公開されるのを心待ちにしつつ、これで健の剣心も見納めかという寂しさとが入り混じった複雑な気持ちで日々を過ごしています。 ということで、今回は、映画の公開9日前に開催され…

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その5 〜PHPアプリケーションをコンテナ化しよう〜

こんにちは!SRE部のcw-ozakiです。 PHP Conference 2020 Re:bornでPHPでKubernetesを動かすにはどうするべきかという話をしてきました。 speakerdeck.com ただ、25分という短い枠でしたのでKubernetes初心者に向けてということで、だいぶ端折ったのでその5…

What we did to stabilize DNS on Kubernetes cluster

This time, I would like to talk about how I fixed DNS errors on EKS (Chatwork's EKS is operated using a single multi-tenant cluster) Service becomes unstable when the number of pods exceeds a certain number Culprit of conntrack overflow wa…

EKSでDNSを安定させるために対応したこと

今回はEKSでDNSを安定させるために対応した話を書きたいと思います*1。 一定数のPod以上になるとサービスが不安定になる conntrack溢れの犯人はkube-dns(CoreDNS) conntrackのmaxを増やす kube-dnsのautoscale node-local-dnsも入れる node-local-dnsを入れ…

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 w…

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

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

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

こんにちわ。id:cw-tomitaです。 この記事は、Chatwork Advent Calendar 2020 - Qiita の21日目の記事です。 Advent Calendarシーズンももうすぐ終わりですが、入社して初めての年のAdvent Calendarでこんな記事を書いたな〜と、ふと思い出し、 creators-not…

pt-online-schema-changeを用いたスキーマ変更 on Amazon Aurora MySQL

こんにちわ。id:cw-tomitaです。 この記事は、Chatwork Advent Calendar 2020 - Qiita の3日目の記事です。 早速ですが、皆さんはauto incrementなRDBのtableのidにはどのような型を利用されていますか? Chatworkでは多くのテーブルでint型が指定されている…

Migrating our PHP Legend System from EC2 to Kubernetes, Part 4: Application Migration Tactics Matched to Kubernetes Cluster Update Strategy

Hello! I’m cw-ozaki, and I work in the SRE department. Continuing on from part three, I’d like to consider how to migrate applications to new clusters in line with the Kubernetes cluster update strategy in this installment. creators-note.c…

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その4 〜Kubernetesクラスタの更新戦略に合わせたアプリケーションの移行戦術〜

こんにちは!SRE部のcw-ozakiです。 creators-note.chatwork.com creators-note.chatwork.com creators-note.chatwork.com 今回はその3の続きで、Kubernetesクラスタの更新戦略に合わせてアプリケーションをどのようにして、クラスタを移行していくのか戦術…

Migrating our PHP Legend System from EC2 to Kubernetes, Part 3: Cluster Structuring in Chatwork and Update Strategies

Hello! I’m cw-ozaki from the SRE Group. This is a continuation of the Part 2 article. Assuming that migrating from EC2 to Kubernetes is fine, I will discuss how Chatwork’s Kubernetes clusters are structured and how the updates are strategi…

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その3 〜ChatworkにおけるKubernetesクラスタの構成と更新戦略〜

こんにちは!SRE部のcw-ozakiです。 creators-note.chatwork.com creators-note.chatwork.com 今回はその2の続きで、EC2からKubernetesに移行するのは良いとして、そもそもChatworkのKubernetesクラスタの構成と更新戦略をどうしているのかというベース部分…

Migrating our PHP Legend System from EC2 to Kubernetes, Part 2: The ideas behind our migration strategy

Hello! This is cw-ozaki from the SRE department. This post will be a continuation of Part 1, and I will explain the strategy with which we migrated our system to Kubernetes. creators-note.chatwork.com Our strategy for migrating to Kubernet…

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その2 〜移行戦略について考える〜

こんにちは!SRE部のcw-ozakiです。 creators-note.chatwork.com 今回はその1の続きとして実際にどのよう戦略を持ってKubernetesに移行したのかを解説します。

Migrating our PHP Legend System from EC2 to Kubernetes, Part 1

Why did Chatwork migrate from EC2 to Kubernetes? Issue 1: Deployment becomes unstable when the EC2 instance exceeds about 40 machines Issue 2: A rollback cannot be performed depending on the deployment status Kubernetes as a solution Kuber…