강의

멘토링

커뮤니티

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,698

受講生

179

受講レビュー

88

回答

4.5

講座評価

15

講座

자기 소개

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

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

 

경력

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

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

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

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

カリキュラム

全体

31件 ∙ (3時間 46分)

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

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

受講レビュー

全体

16件

4.4

16件の受講レビュー

  • ssez님의 프로필 이미지
    ssez

    受講レビュー 7

    平均評価 5.0

    5

    29% 受講後に作成

    ORM 사용 시 단점에 대해 언급해주실 때 뜨끔했습니다. 안 그래도 최근 쿼리 튜닝할 때 로깅해봤다가 뜨헉했던 경험이.. ㅎㅎ 이번에도 재밌게 보고 있습니다. go가 익숙치 않아서 1탄에 비해 진도가 좀 더디지만, 이렇게 쓰는구나~ 하며 또 다른 재미가 있네요! 저희 회사는 저를 포함해 2명만 일하고 있고 (저는 풀스택, 한분은 대표님이신데, devops까지 다하세요. 😅) 아무래도 작은 서비스를 운영하다보니... 제 실력에 대해 의심도 많이 가고, 이래저래 심란해서 수강하기 시작했는데 다시 처음 공부할때처럼 설레이네요. 요즘 미래에 대해 고민도 많았는데 역시 고민하기보단 머리를 비우고 공부하는 게 최고인 것 같습니다. 완강하면 또 다른 강의 보러가겠습니다 :)

    • July
      知識共有者

      2인 개발이라는 정말 쉽지않으시겠어요. 응원합니다!! 아무래도 쉽게 접하지 못하는 다양한 개념들을 제공해 드리면서 견해를 넓혀드리고 싶었습니다. 그래서 이런 강의를 많이 준비를 하였는데 도움이 되신거 같아서 매우 뿌듯하네요. 항상 실력에 대한 의심이 가는것은 좋은 모습인거 같습니다. 자만하기보다는 낮은 자세로 임하는게 저는 맞다고 생각을해요 저 또한 그렇고요 ㅎㅎ 강의 내용외에도 고민이 있으신 부분이나 질문이 있으시다면 편하게 질문주세요. 저 생각보다 되게 인간적인 사람이라서 ㅎㅎ 이런저런 대화하면서 서로 해결해나가는 것도 좋다고 생각합니다.!! 강의 들어주셔서 감사합니다!!

  • DAN님의 프로필 이미지
    DAN

    受講レビュー 5

    平均評価 4.6

    5

    100% 受講後に作成

    go lang을 작성된 서버를 볼 수 있어서 좋았습니다

    • rnxogud123님의 프로필 이미지
      rnxogud123

      受講レビュー 11

      平均評価 5.0

      5

      100% 受講後に作成

      좋은 강의 감사합니다.

      • dksk hy님의 프로필 이미지
        dksk hy

        受講レビュー 3

        平均評価 5.0

        5

        77% 受講後に作成

        1편과 2편 모두 보았습니다. 채팅서버에 대한 구성을 어느정도 이해 할 수 있었고, 일반적으로 접할 수 없는 주제로 구성된 좋은 강의라고 생각합니다.

        • July
          知識共有者

          몸둘바를 모르겠다는.... 앞으로 좋은 강의로 보답하겠습니다. 감사합니다!!

      • kas kim님의 프로필 이미지
        kas kim

        受講レビュー 4

        平均評価 5.0

        5

        61% 受講後に作成

        이번 강의도 1탄에 이어서 유익하게 잘 보았습니다.

        • July
          知識共有者

          2탄은 좀 더 아키텍처인 부분을 다루었는데 유익하셨는지 모르겠네요. 좋은 평 감사합니다!!

      期間限定セール、あと7日日で終了

      ¥37,400

      20%

      ¥6,015

      Julyの他の講座

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

      似ている講座

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