Skip to content

Instantly share code, notes, and snippets.

@t-cool
Forked from voluntas/shiguredo_tech.rst
Created March 7, 2020 09:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t-cool/d94aa35223d709d93ef5fc2324726f6d to your computer and use it in GitHub Desktop.
Save t-cool/d94aa35223d709d93ef5fc2324726f6d to your computer and use it in GitHub Desktop.
時雨堂を支える技術

時雨堂を支える技術

日時

2019-09-26

時雨堂

バージョン

19.09.0

URL

https://shiguredo.jp/

言語

Erlang/OTP

バージョン

常に最新版 (64bit)

自社ミドルウェア製品を開発するのに使っています。 C 拡張である NIF は現在利用していません。

Python

バージョン

できるだけ最新版

ウェブアプリやテストツールを開発するのに使っています。

ウェブサイトの構築には Django を利用しています。 基本的には Nginx + uWSGI + Django という構成です。

pip と venv のシンプルな使い方で、テストランナーは py.test を利用しています。

JavaScript

自社製品の JavaScript SDK や自社サービスの開発、外のお手伝いにて利用しています。

Swift

バージョン

できるだけ最新版

自社製品の iOS SDK 開発のために利用しています。

Kotlin

バージョン

できるだけ最新版

自社製品の Android SDK 開発のために利用しています。

Lua

OpenResty の Lua または Erlang VM 上で動作する Lua を利用しています。Lua を単体で利用することはありません。

Erlang VM 上で動く Lua を実際に案件に使った例

C++

WebRTC ネイティブクライアントを開発するのに利用しています。

Go

バージョン

できるだけ最新版

WebRTC を P2P で、 1:1 の利用のみに限定したシグナリングサーバやそれを利用したサービスを開発するのに利用しています。

reStructuredText

頻繁に更新される記事やクローズドソースの README.rst など

Sphinx を製品ドキュメントとして利用しています。

基本的には GitHub の自動レンダリングで足りてます。

markdown

一回だけしか更新されない記事や OSS の README.md など

GitHub や Kibela は markdown だったりするので。

rst と md はどちらも書けて損はないというスタンスです。

環境

Linux

基本的には Ubuntu の最新版を使用したいのですが、安定版ということで Ubuntu 18.04 を使っています。

LXD

Linux Containers - LXD - イントロダクション

社内サーバは LXD を利用して環境を構築しています。

Ansible

Ansible 便利ですね、プロビジョンやデプロイに対して使っています。

さらに ssh-agent と ssh-add を組み合わせてフォワードすることで、 サーバに鍵を置かないで GitHub から Clone したり出来る用にしています。

自社サイトやサービスのデプロイがメインです。

Git

GitHub 便利ですね。ということで基本的には Git Flow 、ドキュメントは GitHub Flow で利用しています。

OmniGraffle Pro

バージョン

6.x

7 系が出ていますが、 6 で困っていないためアップデートしていません。

主に図作成用です。全員購入では無く、希望者に対してのみ購入しています。

Docker

バージョン

最新版

主にテストやパッケージ環境に使用しています。

Docker for Mac/Win がかなり便利です。

Getting Started

BuildKit

moby/buildkit: concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit

自社製品のビルドやパッケージングに利用しています。

InfluxDB / Grafana

自社製品のメトリクス収集ツールとして利用しています。

フレームワーク

Django

時雨堂でウェブアプリを作るといった場合は Django を採用しています。

リアルタイムが必要な場合は Go を利用することが多いです。

React Native

時雨堂でスマートフォンネイティブアプリを作る場合は React Native を採用しています。 自社で React を利用していることも採用理由の一つです。

サービス

G Suite

費用

社員数 x 600 円 / 年

G Suite Basic に入っています

  • GMail
  • Google Group
  • Google Calendar
  • Google Drive
  • Google Sites

このあたりを主に使っています。

Google Sites は主に社内向けの情報共有ツールとして総務が使っています。

GitHub

費用

$ 100 / 月

50 プライベートリポジトリ

ローカルリポジトリとかは無くすべてのリポジトリを GitHub で管理しています。

GitHub の連携は通知とビルドです。GitHub Issues と Project を利用しています。

社員全員が GitHub を利用しています。

節約のために使わないリポジトリは git clone --mirror して Google Drive に保存しています。

GitHub Actions

OSS 部分は CircleCI から GitHub Actions に切り替え始めています。

移行理由

CircleCI と比べてリソースが潤沢なのが強いです。

CircleCI

URL

https://circleci.com/

費用

1 Linux コンテナ 50 ドル / 月

開発者が一人増えたので 1500 分を超えたので 1 コンテナ分、課金しました。

使っててよいなーと感じたのを箇条書きで

  • travis.yml ファイルのように circle.yml がある
    • それに加えてウェブから色々設定が出来る
  • 並列ビルドが可能
  • キャッシュを持っていて、ビルドがかなり高速化される
  • slack への通知機能あり
    • 失敗または失敗後の成功のみの通知機能あり、コレ凄く重要
  • ウェブフックあり
  • ステータスバッジあり
  • 指定ブランチのビルドが可能
  • Test コマンド、post Test コマンドあり
  • パーミッションが GitHub そのまま使える
  • テスト用のデータベースに MySQL や Elasticsearch がある
  • 2.0 から docker ベースになりかなり便利になった

Amazon Web Services

費用

普段は S3 と Route 53 だけなので $ 5 程度です

EC2 を使う場合はスポットインスタンスを利用しています。

Vultr

費用

$200 / 月 程度使用

日本リージョンがあり、 Digital OCean より高性能で安くすみます。 専有プランを 1 台だけ契約しています。

1 台程度のサーバを常時利用しています。

Kibela

URL

https://kibe.la/

費用

社員数 x 540 円 / 月

Qiita からのインポート機能を先行で使わせて貰い、無事移行も完了しました、 サポートがチャットベースでやりとりできて、対応もとても親切でした。

blog と wiki が完全に分かれているのが好印象です。

問い合わせ管理とかは wiki で行い、技術メモなどは blog でと分けられるのが良いと思っています。

添付ファイルに画像だけで無く PDF が貼り付けられるのも、 wiki であれば当たり前なのですが、ありがたいです。

不満点

  • Slack への通知が記事を書いた人の意図から、Webhook 依存になってしまい不便

移行理由

  • Qiita:Team から置き換えました
  • wiki のようにずっと残しておきたい記事が中途半端だったのが気になってました
  • あまり発展性がなく、 Kobito のアップデートなども行われなくなったため
  • 月 4800 円はやはり高かったです

board

URL

https://the-board.jp/

費用

Basic (1,980/月) の 20% オフな価格

Makeleaps からの移行予定です。現在は並行で使用しています。

ヴェルクが開発しているバックオフィスツールです。サービスとして提供されています。

受託がほとんどなので、受託に向いているサービスです。特筆すべきはレポートです。

開発会社が受託をメインとしているため、かゆいところに届くサービスになっています。

細かいレポートが見れるのがとても良いです。

移行理由

  • MakeLeaps もとても良いのですが分析機能が皆無であることが一番の理由です。
    • とにかくグラフ表示がなんとなくしかわからない ...
  • board は MakeLeaps で使ってるメインの機能を含みつつ 2000 円安いというのも魅力です。

Slack

料金

850 円 x 人数分 (年契約)

URL

https://slack.com/

アフィリエイト

https://slack.com/r/024g1ngs-025e0fsc

月一人 850 円と結構お高い、メッセージチャットサービスです。

  • HipChat のクライアントが改悪されたこと、 Single Channel 機能が実装されたので乗り換え。
  • HipChat からの切り替えは 1 日で移動できました。
  • Single Channel 機能は外部のユーザを 1 つのチャンネルかプライベートグループに招待できる機能
    • 契約ユーザ数 x 5 の人数が招待可能です
    • 外部の人間とやりとりするのが多いので、かなりありがたい機能で
  • 他サービスとの設定が複数自由に出来る
  • bot 機能が充実している
  • 開発が進んでいる感じがとてもする
    • hipchat は停滞している感じが強かった
  • マルチアカウント対応のクライアントがスゴイタイミングで出てきた
  • パーミッションの考え方がとても良く、外部の人を招き入れやすい
  • 発言をお気に入りできる

Docker Hub

料金

無料分のみ

URL

https://hub.docker.com/

https://registry.hub.docker.com/repos/shiguredo/

社内で利用している Erlang や Mosquitto の Docker Image を公開しています。

Docker のイメージを置いておくサービスです。時前で立ててもいいのですが、その手間を考えると課金してもいいかなと。

速度は秒 1~2 MBi くらいです。あまり速度に不満は感じていません。

Medium

料金

無料分のみ

URL

https://medium.com/shiguredo

自社のアピール用です。自社製品や自社が扱ってる技術について書いています。

Dropbox Business

費用

45000 円 / 年

プラン

Standard

もともとは社員が複数の PC のファイルを共有するために会社の契約でパーソナルライセンスを購入していました。

ただ、パッケージファイルの提供やログファイルの受取を Dropbox に集約するという方針にしたため、 Dropbox Business を導入しました。 Dropbox Paper も使い始めています。

ライセンス数は 3 。割当は利用頻度が高い人とリモートの人という感じで契約しています。 使わなさそうな人の分は契約していません。

Office365

費用

900 円 / 年

お客様からくる契約書やらのワード、税理士とのやり取り用のエクセル、事務系には必須ツール。

1Password Teams

チーム用の最も安全なパスワードマネージャー | 1Password

お試しで契約してみています。

時雨堂を支えていた技術

解約したサービスや、使わなくなった技術は別にまとめています。

時雨堂を支えていた技術

Elastic Stack

InfluxDB に切り替えました

自社製品ログやロードテストやロングランテストの解析をする基盤として利用していましたが、痒いところに手が届かなかったため InfluxDB に切り替えました。サーバ費用も下がりやりたかった事が実現できています。

宣伝

興味があれば contact at shiguredo.jp までご連絡ください。

WebRTC SFU

発売中です

URL

http://sora.shiguredo.jp

時雨堂 WebRTC SFU Sora 開発ログ

WebRTC ネイティブクライアント

オープンソースにて提供中です

URL

https://github.com/shiguredo/momo

OpenMomo プロジェクト

WebRTC シグナリングサーバ

オープンソースにて提供中です

URL

https://github.com/shiguredo/ayame

OpenAyame プロジェクト

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment