https://namonakimichi.hatenablog.com/entry/2023/05/15/225621
で書いてたやつなんですが、間に合わなかったので次回に向けて書くことにします。
どんな本を書きたかったかだけ、下記に置いとくので良かったらご意見ください。
また楽しみにしていた皆さんは本当に申し訳ございません。私自身も4月体調不良が続き5月はGWも休まずgitの本書いて、こちらも構想だけまとめて色々なものを削って書いてましたが、現実的に無理でした。
背景
今のWeb構成において、とてもベーシックな3層構造のアーキテクチャが合致してないように感じる。
それをもう少し分解していって、何があるのか、我々は何を覚えるべきなのかを整理したい。
特にWebに対して経験が十分と言えない人向けを想定。
目次
Webサービスを実現する仕組み
3層構造に対して自分が持っている違和感や、捉えるのが難しくなってきた現代の開発についていくつか例を挙げながら考えていくパート。
あとあとで言われて思ったのがPub/Sub、他に入れたいとするとメールなど。
最近のWebサービスを実現するサービスやミドルウェア
本当はこのあたりについて触れていこうと考えていました。 全部盛りにしていくと大変な部分なので、もう少し絞って考えていく予定ですが、いくつかのサービスを例にとりながらこういう構成をやってみよう、という内容でそのうち書ければいいなと思っています。
- ウェブサーバーソフトウェア
- Apache, Nginx
- RDBMS
- MySQL, PostgresSQL
- NewSQL(NoSQL)
- 得意なものがないのでこれから調べます…
- MongoDB, TiDB, CockroachDB などに興味があるのでその辺りをまとめられたらいいなと思っています
- キャッシュサーバー
- memcached, Redis
- 仮想化技術
- Docker, Kubernetes
- キューイングサーバー
- RabbitMQ, Kafka
※改めて書いてみて思ったのですが、最小限の世界はあるとしてサービスのグロースに伴い必要なソフトウェアはもっと増えてくると思いました。筆者自身も調べ、学びなおすとともにその学んだ結果を本に反映できればと思います。
あとはCI, CDやElasticSearchとかも触れれたらおもろいのかなと思いました。 自分の知見をもっと整理したい。
なぜWebサービスは複雑化しているのか?
この章ではWebサービスの変化や技術を取り巻く変化を中心に書いていく予定でした。 あまり良いたとえではないですが、Web1.0, Web2.0, Web3.0、または2000年代、10年代、20年代のインターネットサービスの変化やハードウェアの変化を中心に話を展開していく予定でした。
その裏側を支える技術面の変化やニーズの変化を含めて、身に着けていかなければならない知識などをまとめていく想定でした。
API通信形式の変化
この章では次をまとめる予定でいました。
開発手法や考え方の変化によって方法の変化や適用方法が生まれてきたので、それをまとめていく予定でした。
今思い返しての雑感
体調良くても半分かけたかなーくらいな気がしてきました。 体系的にやると広がり続けるんですが、正直体系的に広がっているものを抑えようと考えていたので、仕方ないというか…
1年くらいかけて書いた方がもしかするといいのかもと思うところもあり、6月からちょこちょこ進めようと思います。 多分50超えて100ページも見えてくるんじゃないかな…(その領域までは行ったことがない)