面白いですね。
現代に生きる有望な新人エンジニアらしい疑問だと思います。
これは因果関係が逆なので順を追って説明します。
元々Firebaseなどというサービスはありませんでしたので、
Webサーバや情報を保存するデータベースを駆使して運用していました。
しかし、小規模のサービスを立ち上げる度にWebサーバやデータベースサーバを要求され
メンテも面倒くさいし金もかかる。
サービスを開発する障壁になっていました。
サービスを運用する上で必要な一部機能だけを切り取り、
クラウド上で使った分だけ課金するというモデルが生まれました。
AWSやGoogle Cloud Platform等のサービスです。
そこから更に進化して、
関数単位で動作させるLambdaや
情報の読み書きを実現するFirebase Realtime Databaseなどのサービスが生まれました。
Lambdaはエンドポイントが吐き出されてHTTPリクエストを投げれば実行可能、つまりWebサーバじゃね?
LambdaからAWSが公開しているクラウドのデータベースサービスに繋げば情報読み書き出来るよね。
Firebase Realtime Databaseに至っては「情報を格納する」という部分に特化しており、
優秀なJavaScriptのモジュールまで準備してスタンバっています。
「もうよほどニッチな事をしない限りバックエンド要らなくね?」と言われるようになりました。
サーバレスアーキテクチャの登場です。
まぁ、実際やっていることはバックエンドの処理をクラウドのサービスを使って解決しましょう。
うまく組み合わせればWebサーバ用意する必要ないよねってことです。
ですが、サーバレスアーキテクチャは出たばかりの概念なので、
実際に運用すると「応答速度が要求水準に達しない」だとか「メモリ不足で落ちる」みたいな事もあるとか……
参考記事: サーバレスアーキテクチャを採用しなかった理由
他にもそのクラウドサービスで実現出来るのか否かという問題も立ちはだかります。
例えばC言語で作った画像処理ソフトを埋め込みたい、既存のWebサーバならすぐ実装できるよ?
サーバレスアーキテクチャはサービス毎に出来ることが異なるので都度検証が必要になる。
もうWebサーバでやろっか?
こうなる事も多々ですし、サーバレスアーキテクチャが覇権を取ったとしても、
バックエンドで鍛えてきた技術はいくらでも活かせます。
そもそもクラウドのサービスでバックエンドを再現しているだけなので、バックエンドからは逃げられません。
今Node.jsを使ってWebサーバを作る経験は後々生きてくるでしょう。
でもまぁ、興味が沸かなければNode.jsなんてやらなくても良いです。
人間は必要に迫られてやる生き物なので、
Node.jsのWebサーバ構築が必要だと思った段階ではじめても遅くはありません。
どのジャンルもやってれば技術が身につきますし、技術に貴賤はありませんからね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/04 10:50