メインコンテンツへスキップ

なめらかなシステムを砂場で実現する

·31 文字·1 分
inamuu
著者
inamuu

こんにちは、いなむーです。

これからはお話する内容は、ただの砂場のお話です。
弊社matsumotoryさんが提唱する「なめらかなシステム」については、こちらを御覧ください。

私の息子は砂場が好きなので、休日には私と息子の二人で公園の砂場に行きます。
息子はバケツで作った小さな砂の城をひたすら壊すのが大好きです。

壊すのは一瞬ですが、作るには時間がかかる上リソース(体力)が必要になるため、効率よく作らなければユーザー(息子)は満足できませんし、SLAが下がってしまいます。

使用するツールは、下記の通りです。

  • Green bucket(緑のバケツ)
    • Blue scoop(青色のスコップ)
      • Red shovel(赤色のショベル) 当初なにも考えずに砂をGreenに入れてひっくり返してサーバー(砂の城)を提供してました。
        しかし、砂は表面が乾いており、少し削ったくらいだとすぐに崩れてしまうというトラブルが発生。
        ユーザーを待たせるという状態になってしまいました。

        そこで、改善案としてFactoryと名付けた場所を最初に作るようにしました。
        これは、はじめに予めある程度の広さを確保したうえで、深めの穴を作っておくようにしました。
        そうすることでサービスに適した土を確保できるようになります。
        また、Blueで構築していたのですが、Blueで構築するよりも、Redで進めたほうがtimeが早いことが判明。
        Redを使って構築することにしました。

        そして、あとで気がついたのですが他のユーザー(別の子供)さんが来ることもあり、サービス利用してくれることがあるので、別リージョン(別の子供が近い場所)を意識したクラスタ構成が必要となります。
        息子が近いリージョンで冗長性のあるサーバー(3個程度)を構築して、別リージョンには最小構成(1個)で構築しておきます。

        こうすることで、サーバーを提供するとユーザーが利用したあとは自然と対象サーバーは停止し、管理者である私が定期的にサーバーを構築することがスムーズに行われるようになります。

        これが私の考える「なめらかなシステム@砂場」です。
        これからも改善していけるところは改善していこうと思っております。

        ちなみにいま考えているのは、Factoryをもう一つ作成し、そこでは表面の砂のみを除外し、アンパンマン等の絵を書いて提供するというサービスです。
        今日のテストリリースではユーザーは満足していたように思えます。
        こちらは効率よく提供できないので、冗長化するかは検討中です。

        しょうもない内容にお付き合いいただきありがとうございました。

        おしまい。