02 / 主なプロジェクト

名前だけではなく、
そこに至る話を。

実際の制約から出発し、信頼性と可観測性のある結果へつなげた、三つの事例です。

おすすめの特集

クラウド運用:つながる経験

CDN、監視、仮想化、AWS。システムをよくする四つの話。

特集を読む ↗
事例02

フルスタック · データ可視化 · モバイルUX

63記録したセッション

種目とセットごとの重量・回数を入力するアプリ、Kraftwerkを作りました。記録をため、履歴と進歩を分析できます。

課題

日々の入力を面倒にせず、ばらばらのセッション、トレーニング量、活動量を一つの信頼できる履歴にする。

取り組み

検証済みの記録、取り込み手順、適応型プラン、日・週・月で選べるグラフを使う。

結果

セッションを保存し、総負荷量、歩数、長期の傾向をわかりやすく見せる、モバイル中心の画面。

事例を読む

自分で作ったアプリ。 種目を選び、日付とセットごとの重量・回数を入力します。保存データが履歴、負荷量の計算、推移グラフの土台になります。公開ページは、この履歴を閲覧専用で見せるものです。 Kraftwerkが生まれた話を読む →

背景がわかるデータ。 セッション指標、総負荷量、歩数、期間の切り替えで、1回の運動を週・月の流れの中で捉えられます。

育てられる作りに。 CSVやヘルスデータの取り込みで履歴を持ち運べるようにし、元の記録を変えずに表示側へ新しい指標を加えられます。

KRAFTWERK / 開発の歩み

紙の記録から、見える進歩へ。

自分の筋トレのために作ったアプリを、四つの場面で紹介します。

元の腕立て伏せの記録。
元の腕立て伏せの記録。
1 / 4
始まりは、ノートでした。

ぴったりのアプリが見つからず、日付と回数を手書きしました。これは実際の腕立て伏せのページです。

  • レスポンシブUI
  • 検証済みAPI
  • CSV取り込み
  • ヘルスデータ
  • 操作できるグラフ
事例03

可観測性 · 運用 · 自動化

24/7オンコール対応チーム

2000年に入社したころは、数台のサーバーとログ分析スクリプトが出発点でした。複雑になるシステムに追従できる監視とは言えませんでした。

課題

事後のログ分析から、インフラとともに育ち、お客様の報告より先に問題を知らせる監視へ。

取り組み

NagiosとZabbixでサービスチェックと通知を導入し、性能指標を残して傾向を分析する。

結果

早期警告と長期の状況把握を両立し、後にGrafanaとCheckmkも加えながら監視を育てました。

事例を読む

小さな構成に、広がる死角。 最初は数台のサーバーとログ解析のスクリプトだけでした。基盤が大きくなると規模にも複雑さにも追い付かず、何より、起きた後のことしかわからない仕組みでした。

上司もお客様も、監視ツールではありません。 問題が起きるまで、なぜ待つのでしょう。上司やお客様が最初に障害を知らせた時点で、運用は後手です。障害そのものに加え、社内外でチームへの信頼も損ないかねません。

典型例は、TLS証明書の期限切れ。 2000年には、今のような更新自動化はありませんでした。Let’s Encryptの登場はずっと後の2015年です。接続エラーで気付く前に、期限を監視する必要がありました。要件や発行元はさまざまで、自動更新も監視が必要です。

検知し、届け、記録を残す。 最初はNagiosとZabbixを選びました。異常を検知し、動ける人へ通知する必要があり、特に24時間365日のオンコールチームへ届けました。当時は費用の制約で高可用性構成ではなかったため、確実な検知と素早い対応が品質維持の要でした。監視自体が停止リスクをなくすわけではありません。年月とともにSMS、WhatsApp、PagerDutyも使いましたが、すべて2000年に使っていたという意味ではありません。

単発の障害から、傾向へ。 性能指標を残すことで、負荷、遅延、余力が時間とともにどう変わるか見られます。後にGrafanaとCheckmkも加わりました。悪化を早く見つけ、向かう先をデータで理解するという目的は変わりません。

変わらない考え方。 監視はダッシュボードを並べることだけではありません。誰かに問題を教わる前に、チームが動ける機会を作るものです。

当時の参考:Let’s Encryptの初の公開証明書発表(2015年)。

  • Nagios
  • Zabbix
  • Grafana
  • Checkmk
その他の成果
01 / 性能改善 · 2008年

静的配信をWebサーバーから外す

Akamai CDNを導入し、約90%のオブジェクトを利用者の近くでキャッシュ。ベアメタルのオリジン負荷を軽減しました。

~90% 利用者の近くでキャッシュしたオブジェクト
プロジェクトの話を読む

出発点

2008年、Web基盤は1台のロードバランサーとベアメタルサーバーで構成され、キャッシュ層はありませんでした。静的コンテンツも直接Webサーバーへ届きます。気象サービスでは天候や大きな出来事で需要が激しく変わり、普段の約20倍のアクセスが来る日もありました。小売のBlack Fridayのような増え方に対応できる、拡張可能な仕組みが必要でした。

ボトルネック

リクエストが増えると、使えるソケットが限界に達しました。何度もオリジンから返す必要のない内容が多くても、サイトが応答しなくなることがありました。

変えたこと

Akamaiで約90%のオブジェクトを近くにキャッシュでき、オリジンに届くリクエストは約10%に。約90%の負荷を外せたため、Webサーバー群も縮小できました。

運用の選択肢も増えた

混雑日には、適した内容のキャッシュ時間を延ばして、さらにオリジン負荷を下げられました。全体に同じ設定をかけるのではなく、どこなら長く保てるかを選べるようになりました。

学んだのは、繰り返し配る内容を利用者に近づけ、キャッシュポリシーを性能だけでなく運用の手段として扱うことです。過去の事例の概要であり、インフラの識別情報や内部の運用詳細は省いています。

02 / モダナイゼーション

ベアメタルからVMwareへ

当初の遅延要件を満たせなかったストレージが、仮想化基盤として成功しました。インフラへの考え方も変わったプロジェクトです。

> €10,000 毎月のラック費用削減
プロジェクトの話を読む

特に誇りに思っているプロジェクト

管理者として設定や設計は変えられますが、ハードウェアの限界をすべてパッチで直すことはできません。Webサーバーと本番システムの間にキャッシュ層を置くため、ストレージを購入していました。

PoCだけではわからなかったこと

PoCには合格しましたが、実際の運用負荷では遅延が大きすぎました。数十万ユーロの投資がかかった案件です。失敗と認め、投資を無駄にするしかないのでしょうか。

同じ投資を、違う用途へ

方向を変えました。ストレージを諦めず、ベアメタルサーバーをVMwareで仮想化する土台に使ったのです。元のキャッシュ案はうまくいきませんでしたが、別の設計では価値がありました。

つまずきを、測れる成果に

仮想化は成功し、物理サーバーの集約でラック費用を毎月1万ユーロ以上削減できました。危うかった投資を、運用・費用の両面で効果のある基盤へ変えられました。

この経験がAWSへつながった理由

成功しても、もっと先を望むようになりました。ソフトウェアのように、インフラを動的に作り変えたい。その思いが残り、やがてAWSに心を引かれた理由になりました。

03 / 作って遊ぶ

ブラウザー・アーケード

子どものころ、いったい何ドイツマルクを使ったでしょう。今はCodexと、自分のブラウザー版を作れます。

2 遊べるブラウザーゲーム
話を読む

小さな実験

数枚のスクリーンショットと説明で、Codexがゲームの雰囲気をブラウザーに再現できるか試したくなりました。そこから生まれたのが、自分版のSnakeとGalagaです。

お小遣いを使う側から、作る側へ

子どものころ何マルクがゲームに消えたか、覚えていません。当時は払って遊び、今は自分で形にする手伝いができる。それが今でも、うれしくなります。

楽しさは、試してみること

実験を楽しむために作った、二つの遊べるゲーム。子どものころの思い出を、自分で作り、変え、共有できるものにしました。

Snake ↗ · Galaga ↗