Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Sansan のインフラ概要
Search
satoshi-iwashita
August 01, 2016
Technology
3
1k
Sansan のインフラ概要
2016/7/28 に開催された Sansan×gloops インフラ合同勉強会で発表したスライドです
compass ->
http://connpass.com/event/33442/
satoshi-iwashita
August 01, 2016
Tweet
Share
Other Decks in Technology
See All in Technology
ソフトウェア品質を支える テストとレビュー再考 / 吉澤 智美さん
findy_eventslides
1
930
Logik: A Free and Open-source FPGA Toolchain
omasanori
0
260
エンジニアにとってコードと並んで重要な「データ」のお話 - データが動くとコードが見える:関数型=データフロー入門
ismk
0
350
AIエージェントは「使う」だけじゃなくて「作る」時代! 〜最新フレームワークで楽しく開発入門しよう〜
minorun365
10
1.5k
龍昌餃子で理解するWebサーバーの並行処理モデル - 東葛.dev #9
kozy4324
1
140
内部品質・フロー効率・コミュニケーションコストを悪化させ現場を苦しめかねない16の組織設計アンチパターン[超簡易版] / 16 Organization Design Anti-Patterns for Software Development
mtx2s
2
140
Databricks Free Editionで始めるMLflow
taka_aki
0
860
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
0
770
次世代のメールプロトコルの斜め読み
hirachan
3
450
Data Engineering Guide 2025 #data_summit_findy by @Kazaneya_PR / 20251106
kazaneya
PRO
10
2.1k
NOT A HOTEL SOFTWARE DECK (2025/11/06)
notahotel
0
3.9k
なぜ新機能リリース翌日にモニタリング可能なのか? 〜リードタイム短縮とリソース問題を「自走」で改善した話〜 / data_summit_findy_Session_2
sansan_randd
1
150
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Building Adaptive Systems
keathley
44
2.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
Practical Orchestrator
shlominoach
190
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Transcript
Sansan インフラの概要
自己紹介 なまえ :岩下訓 (いわしたさとし) しょぞく : Sansan 事業部開発部 弱小ブログ :
http://rriifftt.hatenablog.com/ けいれき : → バーテンダーしたり DJ したり → NW エンジニア(SIer) → Sansan そろそろ 5 年目
Sansan のインフラエンジニア • 法人向けサービス Sansan • 個人向けサービス Eight • 名刺をデータ化するバックエンド
Operation • 社内インフラ それぞれの部門に、それぞれのインフラエンジニア
本日は 法人向けサービス Sansan のお話です
Sansan インフラのお仕事 • サーバの設計、構築 • システム運用、改善 • インシデント対応 • セキュリティへの対応
• 費用のこと > 事業欲求、優先度に応じて柔軟に対応 > インフラとしてやれることはなんでもやる (なんでもやるとは言っていない)
• 日々の運用 ◦ グラフ みたり、ログ見たり、 alert 対応したり、証明書更新したり • インフラのタスク ◦
OS バージョンアップしたり、 WAF 導入したり • プロジェクトへの参画 ◦ ログ運用改善とか、DB スケールアウトとか > 複数並行は日常的 お仕事の進め方
Sansan インフラ構成の超概要 • オンプレ期の構成を改善していくスタイル • 目新しいことは特にやってません
Web / API • IIS 8.5 • .NET Framework 4.5.2
( 4.6.1 に移行中) • chef ◦ powershell (not dsc) ごりごり ◦ chocolatey • NewRelic • fluentd for Windows • AD ドメインへの参加
Batch • IIS 以外は Web / API とほぼ同じ構成 • 70
以上のタスクが稼働 • タスクスケジューラで頑張っている ◦ つらい ◦ dc/os に期待
DB • PostgreSQL 9.3 ◦ 全てのデータをオンメモリで保持 ◦ 自前の水平分散アーキテクチャ ▪ 20
強の DB インスタンスが稼働 ◦ pgpool + heartbeat を用いたクラスタリング ◦ Streaming Replication (非同期) ◦ chef ▪ クラスタ構成までやるので割と複雑 ◦ メンテナンス用途に pg_reorg 活用 ◦ LDAP 認証
Cache • Redis 2.6 ◦ Session や検索結果などをキャッシュ ◦ 永続化を前提としないデータストアとして利用 ◦
自前で冗長化 ▪ shellscript ◦ 絶賛 3.2.1 への移行作業中
monitoring • icinga ◦ 死活監視 / サービス監視 ◦ 自前のプラグインが多数稼働中 ▪
bash / python / node • munin ◦ リソース監視 ◦ そろそろ重たい > mackerel or zabbix への移行を計画中
少しずつ複雑化するインフラ • Windows : 40% / Linux : 60% の混在環境
• shellscript / python / powershell • 機能増加と役割増加 • スケールアウトの必要性 > システムの課題が浮き彫りになっていく
様々な課題 • 使われている技術が散らかる • 手順書の再利用が大変 • 実際の状況を把握することが困難 • Windows のことが好きなインフラエンジニアがいない(当社比)
> インフラの構築、運用改善にスピードがでない
ということで (もはや、やっていないと人間として扱われない風潮にも後押しされ ) Infrastructure as Code を推進 • chef •
serverspec > これらを gitlab で管理
サーバ構築の流れ • 実装 ◦ chef / bash / powershell /
python / 各種 configuration などなど • レビュー • 各環境(develop/staging/production)のブランチにマージ • chef でプロビジョニング • serverspec でテスト
chef • chef-server / chef-client / knife [ssh|winrm] を活用 ◦
構築だけでなく日々の運用でも活躍 ◦ 自動 PULL まではやっていない (事故がこわい) • Windows / Linux 混在に適しているとされているが ◦ OS の違いを吸収させるのがしんどくなったのでリポジトリわけた • 30 role / 200 node を管理 • 基本的に cookbook は自前で書く
serverspec • 構築したインスタンスのテストを実施 • リズム良く書けて、何を気にしているかがわかる • カバー率はそこそこ • テストファーストまではまだまだ •
他ツールとの連携を強化したい ◦ CI だけでなく監視組み込むとか
Infrastructure as Code をがんばってみて 基本的にいいことばかりだった • サーバ構築の時間短縮 • コード化されたことで見通しがよくなった •
高い再利用性 • 引き継ぎコストの減少
Infrastructure as Code で幸せになった とは言い切れず、よくあるようなつらみもあります • ツールそのものとツールの周辺言語の学習コストが高い • 役割が異なるリポジトリの乱立
先輩 Said... 「人間は 2 種類しか存在しない。オシャレか、オシャレじゃないかである」
オシャレになりたい 課題はたくさん • インフラの CI • テストの充実 • イケてるデプロイ •
オートスケール 少しずつ進めています
まとめ インフラはやることいっぱい
ご清聴ありがとうございました