́∀`)大きくなる一方なんか、サービスが大きくなるにつれて、システムはどんどん複雑になって、管理するのが大変になっていくよなぁってのがある。仮想サービスCber(しーばー)例えば「Cber」(しーばー)って仮想サービスがあるとして考えてみる。CycleのCだってことで「自転車のシェア」みたいなサービスにしようか(適当)。あ、僕、あの、かっこいい感じの自転車は全然知らないので、ママチャリ的なのくらいのを想像してます。ビジネスモデルどんなビジネスにしようか?自転車を持ってる人が使ってないときに貸してあげられる感じにしようか。月に1回くらい自転車ででかけたいなーって思うけど、買うのはなぁ、って人と、自転車持ってるけどいつも使うワケじゃないから有効活用できないかなーってののマッチング的な。あとは、観光地で自転車を持ってる人が、観光客に提供とか。固定費月額100円(ただし、100円分のレンタル費を含む)レンタル1時間100円1日500円これぐらいでどうかな。オーナーは月に3000円くらいになれば登録しようという気にもなるかな?月に10日貸し出すとしたら、1回で300円はオーナーに、残りの200円はCberがシステム運用とかでもらう感じ?1万ユーザーが1人平均月2日使ってくれたとして、400万か・・・。10万ユーザーぐらい必要なの?だめだ、こういうの全然分かんないや・・・。どれくらいだったら儲かるって言えるの?まいっか。データモデルさて、上記のビジネスモデルに対して、データモデルを考えてみる。登場人物としては、自転車の所有者のOwnerと、自転車を借りるUserがいる。ツールアカウント、とかがあって。Userには、アカウント、基本情報、カード情報、レンタル履歴、支払い履歴、とかかな。いうのを全部リレーショナルデータベースに保存するのかな。追加要件サービスローンチ前に「法人オーナー」対応が必要だ!とかなったり。1年くらいして、サービスがなんとか生き残ってるので、拡大していこう!ってことになって。スポーツタイプの自転車のシェアもしようよ、とかなって。その場合、元が高価だからレンタル費用をアップしなきゃ。ユーザーとかオーナーのレビューが必要だわ。そもそも、ビジネスとして、Cber所有の自転車と駐輪場を持って、乗り捨てできるようにしよう!とか。いうのが出てきて、DBのテーブルはどんどん複雑になっていって、「このカラムはスポーツタイプフラグってなってるんですけど、0から5の値を取ります!」とか、なんだとか、そういうことになっていったりする未来があったりなかったりする。変わり続ける言いたいのは「そうならないようにするためには、追加要件を最初に考えておかなければならない!」ってことじゃなくて「追加要件を柔軟に取り込んでいきながらも、複雑さを抑えて、ビジネスを引っ張っていく」ってアーキテクチャだといいなってこと。「動いているものは触るな!」じゃなくて、ガンガン触りながら、変化しながら成長していく感じ。Microservices全然違う方向にそれたけど、そいういうわけで、サービスの規模が大きくなっていってもシステムの複雑さを抑えて攻めながら開発していくのに、DDDが良さそうだなと思って勉強してる。境界づけられたコンテキスト、という考え方が上記の複雑さを軽減してくれるんじゃないかと思っている。「ドメイン駆動設計」の複雑さに立ち向かうで、勉強してるうちに「これを実現するための技術的な土台」みたいなものが自分の中に欲しいなぁって思ってるところで、Microservicesが出てきて、「あぁ、いいかも」って思ってるところ。Cloudが良さそうだなと思って触ってみてるところ。Bootをベースにしてて、ほんとに「誰もが書く必要のあるコード」を既に用意してくれてて、自分で書く必要がないので、コアな部分に集中できて幸せ。#jsugAzureじゃあ、それをどこにデプロイして動かそうかな?って考えるんだけど。Foundryが相性良いだろうなー、何か分かんなかったら光の速さで教えてもらえる人もいるしなぁ、と思いつつも、CF自体は触ったことあるし、折角プライベートでごにょごにょするなら全然知らないプラットフォームを触って引き出しに入れておきたいなと思ってて。BLOG.IK.AMそんな折に、Azureのサブスクリプションをゲットしたので、Azureでやってみることにした。MicrosoftのDevOpsハッカソンで少し触ったことがあるけど、あらためてAzureのPortal開いて、自分の理解のできなさと自分のドキュメントの読めなさにしばらく絶望してた。Dockerしばらく逃避したあと、もう一度向き合ってみた。インフラの知識がないもんで、できるだけそっちに寄らないようにしたいなって思って。それと、Azure特有の機能はできるだけ少なくしておいたいかなーって。Dockerがいいかなと思った。CloudのアプリケーションをDockerで動かす感じ。Serviceというものがあった。それを使ってみることにした。SwarmとDC/OSが選べるみたいで、これまた、プライベートプロジェクトなので全然知らないDC/OSの方を選んでみることにしたのであった。azure.microsoft.comというわけで自分メモここを書こうとして始めたブログポストなのであったが、全然違う話をしてしまった。この辺を読むというメモを残したかったのだ。サービスディスカバリーについて。CfPにエントリーしてます!この辺をこれから2ヶ月間触ってみて、DDD的なアプローチでサービスを作ってみて、学んだことなどをシェアできればと思っていますので、もし「そのセッション見に行きたいなー」って思ってくれたら、下記のぎっはぶIssueに「👍」ください!github.comじゃ、DC/OS周りのドキュメント頑張って読んでみる。・・・と思ったら、プールに連れて行ってくれーって娘2(4歳)が水着来てスタンバイしてるので行ってくる。(1)はてなブログをはじめよう!bufferingsさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。