강의

멘토링

로드맵

Programming

/

Back-end

テヨンランチャットTPSのステートフルサービスを構築する

痴漢、アフリカTVなどのステートフルサービスについて、どのようにサーバーを構築し、無中断展開が進行するのかをすべてお知らせします。

  • July
카프카
대용량트래픽
tps
웹소켓
Go
Kafka
Node.js
MySQL
websockets

学習した受講者のレビュー

こんなことが学べます

  • Kafkaによる発行/購読パターン

  • MySQLによるデータ管理

  • WSS通信による代用とチャットTPS処理

  • イベントストリーミングによるサーバー管理

ネイバー(痴漢)でKafka、MySQLを活用してStatefulなサービスを作る😘


このレッスンでは、ストリーミングプラットフォーム(秩序アフリカTVDiscordTwitchで使用されるチャットTPSについて、ステートフルなサービスがどのように管理され、開発されるかについて学ぶことができます。


この講義では2つの言語を使用しています。

Golangを優先的に使用してすべての実装を行う方法について学びます。

以後、受講される方のためにもう少し慣れたNode.JSでのKafka活用方法など、様々な言語を通じて講義を構成しました。


さらに、 Kafkaによる発行/購読パターン、MySQLによるデータ管理など、多様で既存に経験していないテーマで講義を構成しました。


講義を受講したら、 Kafka、MySQLの深い理解、およびStatefulサービスのZero-downtime Deploymentを学ぶことができます。

Stateful vs Statelessの違いは何ですか? 🫣

皆さん!もしかしたら、単にMVC、Service-Repositoryのようなサーバーの構造ではなく、サーバーの基本形態について心配して見たことがありますか?


実務では、サーバーの形態に応じてゼロダウンタイムデプロイメントを実行するのか、それともどの程度のリトライを許可するのかが決まります。

あなたが開発しているサーバーは、これら2つの概念のうちの1つが必ず適用され、開発が始まります。

一般的なHTTPサーバーを考えてください。

状態を維持しないので、拡張にとても容易で、あなたが一般的にサーバーを開発しているなら

デフォルトではStatelessサーバーとして構成されます。


最も代表的なサーバーの形だと考えてください。

簡単に触れられないサーバーの形です。


このようなサーバーの構造では、ws protocolを活用して開発が進められ、

状態を維持するため、拡張にとても不利ですが、接続を維持するので、リソースの節約に役立ちます。


このレッスンでは主に扱われるサーバーの形です。

このレッスンでは、StatefulとStatelessの両方のケースについて説明します。 💁

この講義は簡単に触れられない講義であると言うことができます。


2種類のサーバー開発を通じて、MySQL、Socketを活用した大容量チャットTPSの処理と、 Kafkaを活用したZero-downtime Deploymentがどのように動作できるかについて学ぶことができます。

Zero-downtime Deploymentとは何ですか? 🙋‍♂

前の紹介文では、私はよくその用語を使用しました。

直訳をすると、無中断配布を意味します。


あなたはストリーミングプラットフォームで突然サイトが詰まったり、中断された場合を経験したことがありますか?

ユーザー側では、展開が進行するかどうか、サイトに影響を与えずに展開が進行することをZero-downtime Deploymentといいます。

この方法は、ステートレスなサービスでは非常に簡単に実装できます。

しかし、サーバーの状態を維持するステートフルなサービスでは、非常に困難で多くのリソースを消費する作業です。


この講義では、 Statefulなサービスに対してKafkaを活用し、 Zero-downtime Deploymentを実装する方法について説明します。

Why Kafka 😯

Kafkaは、イベントベースのStreamツールとして発行/購読パターンを使用する上で非常に頻繁に使用されるサービスです。


実際にLinkedInが開発し、導入したサービスであり、様々な会社でKafkaを導入し、イベントに対するメッセージを失うことなくデータを処理しています。

  • 受講生の方が最も重要に見なければならない部分はネカラク船多数の大企業ではKafkaを必須に使用しているので多くのお役に立つでしょう。


この講義では、自分でlocal環境にKafka環境設定および構築する方法についてお知らせし、実際に使用する方法までお知らせしています。

  • Kafkaの内容は、実際のLinkedInの開発者であるGwen ShapiraKafka:The Definitive Guideの内容に基づいてカリキュラムが構成されました。

このような内容を学びます。 🤔

1⃣ Kafkaを活用したPub/Sub Modeling

kafkaのconfig環境設定とBroker、zookeeperの駆動まで扱います。これにより、実際のKafkaを活用したサービスを開発する方法と注意点について学ぶことができます。

2⃣ MySQL Schema設計によるサービスデータ管理

socket通信に対するデータ管理とチャットルームに対するデータ管理をサービス構築に容易なMySQLを活用して管理する方法について学習し、 ORDER BY、Pagingなどクエリを直接作成し、サーバーを構築する方法を知ることができます。

3⃣ 4つのサーバーを構築して行われるサーバー間通信

単に1つのサーバーを構築するのではなく、さまざまなサーバーを構成し、そのサーバーを管理するControllerサーバーを構築するなど、多くのサーバー作業を通じてLoad Balancerを間接的に経験することができ、 KafkaのPub/Sub Modelingを活用してサーバー間の通信方法について体験していただけます。

これを実装してみましょう。 🤔

Local環境でのKafkaの駆動方法

MySQLによるチャットルームとチャットデータの管理

websockets通信によるDBデータの取り扱い

Node.js、Goを活用したKafka活用とサーバー管理

受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS):Windows、macOS、LinuxなどのすべてのOSが利用可能です。


  • PC仕様:インターネット接続が可能な基本仕様のPC

必ず無料で公開される映像をご確認ください!

この部分とても重要です!

この講義は以前の第1弾の講義に続き、追加的なサービスの構築やデータ管理と配布について取り上げる講義です。

だから、以前の講義に基づいて講義が続いて進行になります。

簡単に以前の講義で取り上げたソースコードの説明が行われますが、初めて聴く方はとても困惑することもあります。


だからもしwss通信や、チャットサーバーについての知識がないなら、この講義を先行していただければ講義を受講する上で多くの困難がないようです。

この講義の目標はFE開発ではなく、ws protocolについて Zero-downtime Deployment アーキテクチャおよびサーバー開発を重点としています。


なぜなら、私はFEを専門的にする開発者ではなく、BEを専門的にする開発者であるため、FE開発に間違った知識が伝わる恐れがあり、 FE開発は単一サーバーに対するAPI処理のみ進行しています。


だから追加のZero-downtime DeploymentのためのReact State管理は講義で進行をしません。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 発行/購読パターンに興味がある方

  • ストリーミングプラットフォームの構築に興味がある方

  • チャットデータ管理についてご質問がある方

  • 無難な開発方式ではなく、新しくて楽しい開発をしてみたい方

  • MySQL、Kafkaを実務家に学びたい方

前提知識、
必要でしょうか?

  • Golang [講義の基本言語です。知りません。 ]

  • Node.Js [ 受講生のための言語です。知りません。

こんにちは
です。

3,589

受講生

169

受講レビュー

88

回答

4.5

講座評価

15

講座

자기 소개

비전공자 출신으로 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

서버 최적화와 다양한 쿼리 튜닝을 좋아합니다.

 

경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[前] 판교 대기업 플랫폼 서버 개발자

[] 판교 모회사 서버 개발자

カリキュラム

全体

31件 ∙ (3時間 46分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

16件

4.4

16件の受講レビュー

  • ssez13님의 프로필 이미지
    ssez13

    受講レビュー 7

    平均評価 5.0

    5

    29% 受講後に作成

    ORMを使用するときの欠点について言及してくれたときはすっきりしました。それでも最近のクエリチューニング時にロギングしてみました。 今回も楽しく見ています。 goが慣れていないので、第1弾に比べて進度がちょっとダディですが、こう書いてるな~ってまた違う楽しみがありますね! 私たちの会社は私を含めて2人だけ働いていて(私はフルスタック、ひとりは代表ですが、devopsまで頑張ってください。😅)どうしても小さなサービスを運営しているので…受講し始めましたが、再び勉強する時のようにときめきですね。 最近未来について悩みも多かったのですが、やはり悩むよりも頭を空にして勉強するのが最高のようです。頑張れば別の講義に行きます:)

    • july
      知識共有者

      2人開発という本当に簡単ではありません。応援します! どうやら簡単に触れられない様々な概念を提供していただきながら、見方を広げたいと思いました。だからこういう講義をたくさん準備したのですが、役に立ったと思い、とても嬉しいですね。 常に実力に対する疑いが行くのは良い姿のようです。自慢するよりは低い姿勢で取り組むのが私は正しいと思います 私もそうですよㅎㅎ 講義内容のほか、悩みのある部分や質問がありましたら、気軽に質問してください。あの考えよりなるように人間的な人なのでㅎㅎ いろいろ会話しながらお互いに解決していくのもいいと思います。 講義聞いてくれてありがとう!

  • kimdh86274님의 프로필 이미지
    kimdh86274

    受講レビュー 5

    平均評価 4.6

    5

    100% 受講後に作成

    go langを書いたサーバーを見ることができてよかったです。

    • koosco님의 프로필 이미지
      koosco

      受講レビュー 11

      平均評価 5.0

      5

      100% 受講後に作成

      良い講義ありがとうございます。

      • dkskhy327884님의 프로필 이미지
        dkskhy327884

        受講レビュー 3

        平均評価 5.0

        5

        77% 受講後に作成

        1編と2編とも見ました。チャットサーバーの構成をある程度理解できたし、一般的に触れられない話題で構成された良い講義だと思います。

        • july
          知識共有者

          身体を知らないという…。これから良い講義でお返事いたします!

      • hojikas1237295님의 프로필 이미지
        hojikas1237295

        受講レビュー 4

        平均評価 5.0

        5

        61% 受講後に作成

        今回の講義も第1弾に続き、有益によく見ました。

        • july
          知識共有者

          2弾はもう少しアーキテクチャな部分を扱ったのに有益だったのかわかりませんね。 良い評価ありがとうございます!

      ¥5,802

      Julyの他の講座

      知識共有者の他の講座を見てみましょう!

      似ている講座

      同じ分野の他の講座を見てみましょう!