シェア
//マイクロサービスとサーバーレス:ソフトウェアの世界の「新星」たち

マイクロサービスとサーバーレス:ソフトウェアの世界の「新星」たち

1. はじめに:テクノロジー4.0時代の「分割して治す」

従来のモノリシックアプリケーションが重くて移動が難しい象のようなら、マイクロサービスはまるでアリの群れのようです – 小さいけれど非常に効率的に働きます。そしてサーバーレス?それは必要な時に登場し、仕事が終わると…姿を消す「忍者」のようです!🥷
なぜこれらが人気なのか?

  • 小さいけれど力強いからです。
  • コスト削減(誰もがこれが好きです!)。
  • アップグレードが簡単、まるで古い服を捨てて新しい服をクローゼットに追加するように。

2. マイクロサービス:ソフトウェアが「分割して処理する」時代

定義:

マイクロサービスは、アプリケーションが独立した小さなサービス(マイクロサービス)に分割されるソフトウェアアーキテクチャのスタイルです。各サービスは次の特徴を持ちます:

  • 独自の機能を実行します。
  • インターフェースと動作が明確に定義されています。
  • 専用のサーバーで実行され、スケーラビリティの向上やアップグレードが容易です。

例えば:マイクロサービスはビュッフェレストランのようなものです – 各料理は別々のカウンターで調理され、シェフが独立していますが、すべてが素晴らしい食事を提供します!

モノリシックとの比較:

モノリシック = 卵のカゴ(1つ落ちたら全てが壊れる)。

マイクロサービス = 冷蔵庫、卵のバスケット、卵(1つ落ちても他の卵は無事)。

利点:

  • 高い独立性: 各サービスが独立して動作し、システム全体に影響を与えることなくデプロイや更新が可能です。
  • スケーラビリティ: リソースを多く必要とするサービスのみをスケールすればよく、モノリシックよりもコスト効率が良いです。
  • 信頼性: サービスの障害がシステム全体に影響を与えないため、システムの安定性が向上します。
  • チームが独立して作業: 複数のチームが異なるサービスを同時に開発でき、開発速度が向上します。

欠点:

  • 管理が複雑: 複数のサービスを管理する必要があり、デプロイやモニタリング、エラーハンドリングに手間がかかります。
  • 通信の難しさ: サービス間はAPIやメッセージングで通信するため、非同期処理における同期問題やエラーが発生する可能性があります。
  • コストが高い: 技術的なリソース(インフラやツール)や人的リソース(開発と運用の知識)が多く必要です。
  • デバッグの難しさ: 分散システムでエラーの原因を特定するためには、複数のツールとスキルが必要です。

マイクロサービスの開発者向けのロードマップ

3. サーバーレス:「家もなくても生きていける」話

定義:

サーバーレスは、サーバーの管理を気にせずにアプリケーションやサービスを実行する環境、プラットフォームです。サーバーレスアプリケーションは、オペレーティングシステムのリソース割り当てや管理、アップグレードやセキュリティの問題を気にすることなく、開発者は製品開発に集中できます。
サーバーレスは、家賃だけ払えばすべてが整った高級アパートのようなものです – あなたは住むだけで、他のことは誰かが面倒を見てくれます!

一般的なサービス:

  • AWS Lambda。
  • Google Cloud Functions。
  • Azure Functions。

4. マイクロサービスとサーバーレスの組み合わせ:完璧なカップルのように!

コーヒーとコンデンスミルクのように、マイクロサービスとサーバーレスは相性抜群です。組み合わせることで、以下の3つの素晴らしい利点が得られます:

  • 運用コストの最適化: 実際に使用する分だけ支払うため、リソースの無駄がなく、経営陣は満足します。
  • 柔軟なスケーラビリティ: システムは企業の成長に合わせて簡単に対応できます。お客様は常にスムーズで安定したサービスを享受できます。
  • 簡単な運用: サーバーの管理に煩わされることなく、開発チームは価値ある機能の作成に集中できます。

5. Eコマースアプリケーションにおけるマイクロサービス

シンプルなEコマースシステムを理解し、構築するためには、各サービスが独立したプロジェクトとして動作し、独自のデータベースを持ち、独立してデプロイできる必要があります。

マイクロサービスを適用したEコマースシステムの図

私たちのEコマースシステムは、以下の5つの主要サービスで構成されています:

  1. 「製品管理」サービス (Service Product): 製品情報と画像をデータベースに保存します。このサービスは、ユーザーからの製品の閲覧要求を処理します。
  2. 「ショッピングカート」サービス (Service Cart): ユーザーが製品をカートに追加したり削除したりすることを支援します。変更があった場合、情報がデータベースに更新され、他のサービスに通知されます。
  3. 「注文」サービス (Service Order): 注文の作成から配送までのプロセスを管理します。このサービスは、注文状態と支払い情報を独自のデータベースに保存します。
  4. 「アカウント」サービス (Service Account): ユーザーのログイン、登録、セキュリティ情報を処理します。ユーザーデータは安全に保存され、必要に応じて他のサービスと共有されます。
  5. 「検索」サービス (Service Search): ユーザーが製品を迅速に検索できるようにします。検索速度を最適化するために、インデックスを作成し、データを一時的に保存します。

すべては以下を介して接続されます:

  • ゲートウェイ: ユーザーからの要求を正しいサービスに配信します。
  • メッセージブローカー: サービス間で情報が一貫して交換されるようにします。

各サービスは独立しており、独自のデータベースを持っていて、柔軟でスケーラブルなシステムを作り上げています。

6. AWS Lambdaによるサーバーレス

サーバーレスサービス:Eコマースのための画像処理

サーバーレスで画像処理を行うEコマースウェブサイト

ステップ1: ユーザーがS3に画像をアップロード(Amazonのストレージサービス): ユーザーまたは他のシステムが画像をS3バケットにアップロードします。

ステップ2: S3がイベント通知を送信: 画像がアップロードされると、S3はSNSを使って他のサービスに通知を送ります。

ステップ3: Lambdaが起動:

  • SNSがLambda関数をトリガーします。
  • Lambdaは画像を処理します(例えば、サイズ変更、圧縮、フォーマット変換など)。

ステップ4: 処理した画像をS3に保存: 処理後の画像が別のS3バケットに保存されます。

ステップ5: CloudWatchでログを監視: 処理の進行状況とエラー(あれば)をCloudWatch Logsに記録して監視します。

7. マイクロサービスとサーバーレス:ベトナム企業への解決策

デジタルトランスフォーメーションが進行するベトナムで、多くの企業がシステムのスケールアップに直面しています。特に大規模なセールイベント(例:12月12日のセール)、ピーク時の配送アプリ、月末の銀行アプリなどが問題となっています。これらの課題を解決するために、多くの大手企業がマイクロサービスサーバーレス技術を採用して、柔軟性、スケーラビリティ、パフォーマンスを最適化しています。

7.1. VNG Cloud

VNG Cloudは、以下のように技術を適用しています:

  • Kubernetesを使用してコンテナを管理・調整し、システムリソースの最適化とアプリケーションの安定性を確保します。
  • マイクロサービスを使用して、独立した小さなサービスをゲームプラットフォーム上にデプロイし、スケーラビリティを向上させ、新機能のデプロイ時間を短縮します。
  • サーバーレスを使用して通知処理などを自動的にスケールさせ、運用コストを削減します。

7.2. MoMo

電子ウォレットMoMoは、マイクロサービスを金融分野に適用した典型的な例です。彼らのシステムには以下のサービスがあります:

  • 支払いサービス(Payment Service): トランザクションを処理し、ユーザーのアカウント残高を確認し、取引情報を記録します。
  • ユーザー認証サービス(User Authentication Service): ユーザーのログイン情報とセキュリティを管理します。
  • 取引処理サービス(Transaction Processing Service): トランザクション処理の流れを管理し、正確かつ安全に処理します。
  • プロモーションサービス(Promotion Service): ユーザーのニーズに合わせたカスタマイズされたプロモーションを提供します。

MoMoのマイクロサービスシステムは、各サービスが独立して機能しつつ、効率よく連携しています。これにより、パフォーマンスの向上だけでなく、システムのメンテナンスやアップグレードも容易になります。

8. 結論

マイクロサービスサーバーレスはソフトウェア業界の「現代の童話」のようなもので、ベトナムのデジタルトランスフォーメーションを進める企業にとって、次のような選択肢となっています:

  • モノリシックの問題を解決。
  • コスト削減とパフォーマンス向上。
  • 未来のトレンド(現在非常に人気があります😉)。
  • システムの柔軟なスケーリング。
  • 運用コストの最適化。
  • 製品開発のスピードを加速。

ベトナム企業へのアドバイス:

  1. 小さな独立したサービスから始めましょう。
  2. 運用コストを削減するために、マネージドサービスを活用しましょう。
  3. CI/CDと監視システムを最初から投資しましょう。
  4. 導入前にコストと利益を検討しましょう。

ソース: GitHub – miztiik/serverless-image-processor: Process images uploaded to S3 using lambda services 🎓

Hồ Nguyễn Văn Nhật
Developer

今すぐ応募







    福利厚生

    給料・ボーナス制度

    社員の感情・願望を理解しているので、リバークレーンベトナムは特に年2回の定期昇給制度を設けています。毎年6月と12月に評価を行い、毎年1月と7月に給与が変更されます。また、社員は月次と年次の優秀な個人には定期的な業績賞与が別で支給されます。

    日本研修制度

    世界中の新しい技術分野に触れるために、社員を日本にオンサイトさせる方針があります。さらに、技術分野か管理分野かのキャリアパスは社員の決定次第です。

    毎年社員旅行

    リバークレイン・ベトナムは、スタッフに挑戦の機会を提供するだけでなく、年に一度の魅力的な旅行で彼らを楽しませています。エキサイティングなガラディナーやチームビルディングゲームは、リバークレインのメンバー同士の絆をさらに深める手助けをします。

    リバークレイン イベント

    チームビルディング・ファミリーデー・お夏休み・中秋節などのイベントはチーム内のメンバーが接続出来るしお互いに自分のことを共有出来る機会です。ご家族員に連携する際にはそれも誇りに言われています。

    社会保険制度

    リバークレーンベトナムは従業員に社会保険、医療保険、失業手当などの社会保険制度があります。当社は、これらの保険に関するあらゆる手続きをスタッフに必ずサポートしています。さらに、他の保険契約も考慮され、検討されています。

    他福利

    社員向けの活動をサポートすることもあります。 ・文化・芸術・スポーツクラブの運営費用 ・技術研究の教科書を購入する金額 ・エンジニア試験・言語能力試験を受験料 ・ソフトスキルのセミナー・コースの参加費 ・等 また会社政策通り、他のベネフィットもあります。

    © 2012 RiverCrane Vietnam. All rights reserved.

    Close