Help us understand the problem. What is going on with this article?

KubernetesとNode.jsでマイクロサービスを作成する 1/6 概要

More than 1 year has passed since last update.

Node.jsとKubernetesを使い、マイクロサービスを作ってみたくなったので、このチュートリアルを作成してみました。
バグや修正した方がよい点などあれば気軽にコメントをおねがいします。

本チュートリアルは以下の8章構成になっています。

第1章 概要

この章では本チュートリアルの概要について記載します。

目的

本チュートリアルは以下の目的で作成されています。

  • Kubernetesを使い、実際にMicroserviceを構築することで、Kubernetesへの理解を深める
  • 複数チームによる開発を考慮し、リポジトリや検証環境を構築する
  • AWSのEKSとGCPのGKEを利用することで、PaaSでのKubernetes利用の知見を獲得する

作成するMicroserviceの概要

本チュートリアルではKubernetesとNode.jsを使い、TwitterライクなMicroserviceを構築します。

実装する機能としては下記になります。

  • ログイン/ログアウト機能(GitHub認証)
  • ツイート機能
  • フォロー/アンフォロー機能
  • タイムライン機能(自分 + フォローしているユーザーのツイート一覧)

構築するMicroserviceの概要図は下記のようになります。

BFF(Backend for Frontend)を採用し、Webサービスのサーバーサイドが各サービスとデータをやり取りする構成としています。

microservice-tutorial01.png

なお、Node.jsを採用した理由は下記のとおりです。

  • ミドルウェアなしに単一のプロセスで起動できること
    • Cloud Nativeなアプリケーションを作成する上で重要です
  • なるべくメジャーな言語であること
  • チュートリアル読者の実装ハードルを下げるため、各サービスとも共通した言語にしたい

各サービスについて

以下では、本チュートリアルで作成する3つのマイクロサービスについて説明します。

Webサービス

フロントエンド + BFFのサービスです。
ここでは、BFFはフロントエンドのチームが所有するものとしています。
GitHubを利用したOAuth2.0による認証機能を持ちます。

Userサービス

ユーザーやフォロー関係を扱うサービスです。
REST APIを各サービスへ提供します。

Tweetサービス

ツイートを扱うサービスです。
REST APIを各サービスへ提供します。

採用技術

本チュートリアルで作成するサンプルにおいて使用する主要な技術を列挙しておきます。
詳細は各サービスの章で説明します。

アーキテクチャ系

  • Microservice
    • 全体のアーキテクチャとして採用
  • BFF(Backend for Frontend)
    • フロントエンドと各サービスのAPI呼び出しパターンとして採用
  • REST API
    • サービス間通信のI/Fとして採用
  • MongoDB
    • NoSQLデータベース
    • Userサービス、Tweetサービスのデータベースとして採用

実装系

  • Node.js
    • 今回は全サービスの言語として採用
    • もちろん、Microserviceなので、各サービスで好きな言語を使用できる
  • Nuxt.js
    • Vue.jsを利用したSPA + SSRフレームワーク
    • WebサービスでUIフレームワークとして採用
  • Vuetify.js
    • Vue.js向けのマテリアルデザインライブラリ
    • UIの見た目をそれっぽくするためにNuxt.jsに組み込んで利用する
  • Express.js
    • Node.js製サーバーサイドのデファクトスタンダード
    • WebサービスのBFF部分やUserサービス、TweetサービスのREST APIサーバーとして利用
  • mongoose
    • Node.jsからMongoDBを利用するためのライブラリ
    • スキーマ定義も可能

第1章 まとめ

この章ではこれから作成するマイクロサービスの概要を紹介しました。
次の章からは実際に各サービスを作成していきます。

次章: 第2章 Tweetサービス

reireias
ヘルステック系ベンチャーのMENSAフルスタックSRE
https://reireias.github.io/
medpeer
国内医師の3人に1人が参加する国内有数のUGC型ドクタープラットフォーム「MedPeer」や遠隔医療サービスなどを運営するヘルステックカンパニー
https://medpeer.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした