Sansanのインフラ概要

投稿者: | 7月 28, 2016

Sansan のインフラ(http://rriifftt.hatenablog.com/ )さんによる法人向けサービスSansanのインフラセッション。

基本的な構成

アプリケーション、バッチなどは.NETでIISで動いています。Linux側では、Nginxとか使ってます。

Web/APIは、IIS8.5で、.Net Framework 4.5.2で、Chef(PowerShell、chocolety)使って、ログ収集はFluentdを使ってます。バッチは、70以上のタスクが動いていて、タスクスケジューラーで頑張ってます。

DBは、PostgreSQL 9.3で自前の水平分散システムを使用していて、すべてのデータをオンメモリで保持して、20強のDBインスタンスが稼働。pgpool+heartbeaを使ってます。

Cacheは、Redis 2.6を叱っていて、検索結果やSessionをキャッシュしている。自前で冗長化している。

名刺画像は、S#+Reverse Proxy(Nginx+Lua)で実装していて、S3 Uploadエラー時にはGlusterFS使っている。

監視には、icinga、munin、CloudWatchを使っている。mackerelかZabbixへの移行を計画中。

課題解決はCodeで。

Infrastructure as Codeを推進していて、chef、terraform、serverspecを使ってます。terraformでインフラ構築して、Chefでプロビジョニングして、Serverspecでテストしてます。

Terraformで、EC2/ELB/Route53/Security Groupなどを管理しています。

Chefは、30role/200nodeを管理。cookbookを自前で書いています。

serverspecは、カバー率をそこそこ。テストファーストまではまだまだ。他ツールとの連携を強化してみたい。

幸せにはなったかというと微妙なライン。周辺言語の学習コストが高く、役割が異なるリポジトリが乱立してしまっている。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください