Kubesmas tree

https://github.com/kanko-dori/?q=kubesmas

Azure

C++

CSS

Kubernetes

React

もうすぐクリスマス! みんなでクリスマス!

Takamichi Omori

推しアイデア

KuberentesのPod数がイルミネーションのきれいさに対応! みんなで接続してクリスマスを彩ろう✨

作った背景

もうすぐクリスマス! コロナ下で集まれないなか、みんなでクリスマスを楽しみたい! そんな思いから生まれました🍾

推し技術

Kubernetes (Azure Kubernetes Service) / HTTPS support / Redis / React / Redux / WebSocket / ESP32 / WS2812B / CI・CD (Azure DevOps) / LIFF / LINE Bot / Go / TypeScript / C++ / yaml

プロジェクト詳細

Kubesmas Tree

Kubesmas Tree はみんなでクリスマスを彩るシステム。

LINE Bot から Kubesmas Tree を起動しましょう。

Kubesmas Tree はバックエンドのシステムと WebSocket を用いて接続します。 次に見たいイルミネーションに投票すると、みんなの投票結果に応じてクリスマスツリーのイルミネーションのパターンが変わります。

また、接続の数に応じて Kubernetes で Pod が生成されます。 このPodの数がクリスマスツリーのLEDの数に対応します。

フロントエンド

TypeScript + React / Redux で構築された View を CSSアニメーションでかっこよく演出します。

バックエンド

複数台のアプリケーションが協調して動作しています。

  • WebSocket サーバー
  • Pod を増減させる worker
  • 投票結果を管理する worker

クリスマスツリー

ESP32 を用いてバックエンドからイルミネーションのパターンとPodの数を取得します。 その情報を用いて WS2812B(LED) を制御し、きれいなイルミネーションを演出します。

インフラストラクチャ

フロントエンド・バックエンドのすべてのアプリケーションは Kubernetes 上で動作しています。 Kubernetes は、オルターブースさんに提供していただいた Azure 内の Azure Kubernetes Service で動作しています。

今回のアプリケーション はすべて Dockernize されており、Azure DevOps を用いてビルド・デプロイされます。

Takamichi Omori

@onsd