강의

멘토링

커뮤니티

Programming

/

Back-end

Thiết kế hệ thống có khả năng mở rộng

Các sản phẩm và dịch vụ kỹ thuật số hiện đại bắt đầu từ những ý tưởng nhỏ và phát triển thành sản phẩm được hàng triệu người dùng yêu thích. Điểm mấu chốt giúp điều này trở thành hiện thực chính là thiết kế hệ thống có khả năng mở rộng. Trong khóa học này, bạn sẽ học được các nguyên tắc thiết kế và phương pháp thực hiện giúp hệ thống phát triển từ quy mô nhỏ đến quy mô lớn.

(4.9) 14 đánh giá

161 học viên

시스템설계
이론 중심
software-design
Architecture

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Bạn sẽ học được các nguyên tắc cơ bản về thiết kế hệ thống mở rộng để phát triển từ dịch vụ nhỏ lẻ thành dịch vụ lớn.

  • 학습자는 가용성, hiệu suất và khả năng mở rộng được cân nhắc trong chiến lược thiết kế từng bước và các biện pháp thực hiện.

  • 플랫폼, máy chủ và kỹ thuật viên khách hàng có vai trò và cách thức hợp tác như thế nào?

Thiết kế các hệ thống có khả năng mở rộng; Từ những ý tưởng nhỏ đến các dịch vụ quy mô lớn-

Các sản phẩm và dịch vụ số hiện đại bắt đầu từ những ý tưởng nhỏ và phát triển thành thứ được hàng triệu người dùng yêu thích. Chìa khóa để thực hiện điều này chính là thiết kế hệ thống có khả năng mở rộng. Khả năng mở rộng là khả năng của hệ thống đáp ứng nhu cầu tăng trưởng của người dùng và sự bùng nổ dữ liệu.

Bài giảng này tập trung vào dự án #POTD (Ảnh trong ngày) . POTD là một ứng dụng đơn giản và trực quan giúp câu chuyện của chúng ta trở nên đặc biệt chỉ với một bức ảnh mỗi ngày. Người dùng có thể chụp ảnh, tải ảnh lên kèm chú thích ngắn, sau đó tương tác với người dùng khác, thích ảnh và để lại bình luận. Mọi chuyện bắt đầu với ý tưởng giúp việc tìm kiếm ảnh của những người có cùng sở thích trở nên dễ dàng hơn bằng cách sử dụng hashtag.

Nhưng ngay cả ứng dụng có vẻ đơn giản này cũng đặt ra nhiều thách thức đối với hoạt động của hệ thống khi số lượng người dùng tăng dần. Trong bài giảng này, chúng ta sẽ thiết kế và ra mắt MVP (Sản phẩm khả thi tối thiểu) bằng cách áp dụng Phương pháp phát triển Outside-In và API-First thông qua dự án POTD, sau đó giải quyết nhiều vấn đề khác nhau xảy ra khi số lượng người dùng và lưu lượng truy cập thực sự tăng lên và triển khai hệ thống. Bạn sẽ học được quy trình mở rộng.

Những bài học chính sẽ được đề cập trong dự án POTD bao gồm:

  • Bắt đầu với một sản phẩm khả thi tối thiểu, bạn sẽ học cách thiết kế các hệ thống đơn giản, hiệu quả tập trung vào các yêu cầu ban đầu của người dùng.

  • Tìm hiểu cách mở rộng máy chủ theo chiều ngang để đáp ứng nhu cầu tăng trưởng của người dùng và cách phân phối lưu lượng hiệu quả bằng bộ cân bằng tải.

  • Tìm hiểu cách xử lý lượng dữ liệu lớn một cách đáng tin cậy và nhanh chóng bằng cách sử dụng các chiến lược phân cụ cơ sở dữ liệu, sao chép và lưu trữ đệm.

  • Để khắc phục những hạn chế của tìm kiếm trong cơ sở dữ liệu, chúng tôi giới thiệu một công cụ tìm kiếm và hàng đợi tin nhắn để thực hiện tìm kiếm hiệu quả và xử lý không đồng bộ.

  • Chúng tôi sử dụng máy học để phân tích dữ liệu người dùng và thiết kế hệ thống đề xuất được cá nhân hóa.

  • Tìm hiểu cách cung cấp dịch vụ nhanh chóng và đáng tin cậy cho người dùng toàn cầu thông qua CDN và nhiều trung tâm dữ liệu.

Phát triển phần mềm không chỉ là việc tạo ra các hệ thống hoạt động mà còn là việc làm cho chúng bền bỉ và có khả năng mở rộng trong môi trường thay đổi. Hãy thực hiện bước đầu tiên hướng tới việc thiết kế các hệ thống có khả năng mở rộng và linh hoạt trong khóa học này. 🚀

Tìm hiểu về những điều này

Thiết kế hệ thống có khả năng mở rộng

Thông qua dự án POTD, bạn sẽ tìm hiểu quy trình từng bước để thiết kế một dịch vụ toàn cầu, bắt đầu từ MVP. Thiết kế một hệ thống có hiệu suất và khả năng mở rộng bằng cách tận dụng các công nghệ chính như cân bằng tải, phân cụ cơ sở dữ liệu, công cụ tìm kiếm, bộ nhớ đệm và CDN.

Thiết kế phần mềm cho khả năng mở rộng

Tìm hiểu cách giải quyết các vấn đề quản lý phiên phát sinh khi mở rộng theo chiều ngang và thiết kế phần mềm một cách linh hoạt. Ngoài ra, chúng ta sẽ tìm hiểu về kiến ​​trúc thích ứng có thể duy trì giá trị của hệ thống ngay cả trong môi trường thay đổi.

Những điều cần lưu ý trước khi tham gia lớp học

Ghi chú

  • Khóa học này thiên về lý thuyết, không có bài tập thực hành và chủ yếu tập trung vào việc giới thiệu và hiểu các khái niệm và chiến lược.

  • Khóa học này cung cấp lời giải thích dễ hiểu về các khái niệm dành cho người mới học về thiết kế hệ thống có khả năng mở rộng. Tuy nhiên, nội dung sâu hơn của từng kỹ thuật đòi hỏi phải nghiên cứu riêng biệt.

  • Bài giảng này được tạo bằng công nghệ giọng nói AI để truyền tải chính xác hơn.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người quen thuộc với lập trình nhưng không quen thuộc với thiết kế kiến ​​trúc hệ thống.

  • 실무 kinh nghiệm không có, nhưng muốn hiểu về cấu trúc chung của kỹ thuật phần mềm và nguyên tắc thiết kế hệ thống

  • Bất kỳ ai muốn tìm hiểu về quá trình bắt đầu từ một ý tưởng nhỏ và tạo ra và vận hành một dịch vụ quy mô lớn

Cần biết trước khi bắt đầu?

  • Bạn cần có kinh nghiệm về một hoặc nhiều ngôn ngữ lập trình (Java, Python, v.v.).

  • Bạn cần hiểu các khái niệm cơ bản của khoa học máy tính (CS) (cơ sở dữ liệu, mạng, thuật toán, v.v.).

  • Bạn cần có kiến thức cơ bản về nguyên lý hoạt động của HTTP và ứng dụng web.

Xin chào
Đây là

1,421

Học viên

43

Đánh giá

4.9

Xếp hạng

3

Các khóa học

JYK management

“Jazz Your Knowledge 🆙

“당신의 지식을 더 신나게, 더 매력적으로 만들어라“

——

"당신의 아이디어가 세상을 바꿀 수 있습니다. 우리는 그 과정을 함께합니다."

Chương trình giảng dạy

Tất cả

16 bài giảng ∙ (1giờ 19phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

14 đánh giá

4.9

14 đánh giá

  • pilming님의 프로필 이미지
    pilming

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Tôi đã đăng ký và xem hết ngay lập tức! Mặc dù khóa học này được quảng cáo là dành cho người mới bắt đầu, tôi nghĩ nó sẽ hữu ích cho bất kỳ ai làm việc trong ngành CNTT! Nếu bạn chạy theo mục tiêu học tập, xin việc hoặc thay đổi công việc, bạn có thể chỉ nhìn thấy "cây" chứ không thấy "rừng". (Tôi đã làm điều đó...😭^😭) Ngay cả trước khi tham gia bài giảng, tôi đã có 'công cụ tìm kiếm' và 'mở rộng quy mô'. Tôi đã nghe về khái niệm tương tự và tôi biết về nó. Tuy nhiên, tôi không hiểu một cách có hệ thống tại sao nó lại cần thiết và nó sẽ phát triển như thế nào sau khi được giới thiệu. Vì vậy, nếu tôi giải thích nội dung được trình bày trong bài giảng này, tôi sẽ tập trung vào một khái niệm cụ thể (cây) mà tôi khá quen thuộc. Nhưng bài giảng này sẽ giúp bạn hiểu một cách tự nhiên về cách những khái niệm đó kết nối và mở rộng thành một dịch vụ lớn có thể xử lý lưu lượng truy cập toàn cầu!! Nhờ đó, tôi có thể nhìn nhận thiết kế dịch vụ từ góc độ rộng hơn! Các bài giảng tiến triển theo nhiều cách thú vị, nên tôi đã hoàn thành tất cả chỉ trong một lần ngồi, nhưng tôi nghĩ mình sẽ quay lại thường xuyên trong tương lai!

    • jacky님의 프로필 이미지
      jacky

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Tôi đã có cơ hội nghe nội dung này trong một bài giảng khác của giảng viên và tôi thích nó đến nỗi tôi nghĩ rằng mình chắc chắn phải nghe lại khi nó được phát trong bài giảng. Tôi luôn muốn biết bức tranh toàn cảnh vì tôi đã nghiên cứu các chi tiết, vì vậy đây là một bài giảng hay giúp tôi nhận ra mình đang tham gia vào phần nào của toàn bộ dự án và nó liên quan đến các phần khác như thế nào. Tôi cảm thấy tầm nhìn của mình được mở rộng khi tôi có thể quan sát toàn bộ sự vật từ xa.

      • sebiinim님의 프로필 이미지
        sebiinim

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        19% đã tham gia

        Sơ đồ được trình bày rõ ràng, dễ hiểu!

        • sootudio님의 프로필 이미지
          sootudio

          Đánh giá 1

          Đánh giá trung bình 5.0

          Đã chỉnh sửa

          5

          100% đã tham gia

          Tôi đã có thể nâng cao năng lực về "Thiết kế ứng dụng web có khả năng mở rộng" khi nghe giảng. Tôi đặc biệt giới thiệu cho sinh viên/người tìm việc muốn phát triển thành nhà phát triển web, đặc biệt là nhà phát triển back-end! Một trong những điều khó khăn nhất khi tôi bắt đầu học phát triển web là "biết công nghệ nào là cần thiết cho điều gì". Đặc biệt, tôi chỉ biết cấu trúc web ở mức độ máy chủ, DB, máy khách, nhưng sau khi vào bootcamp và thực hiện dự án, tôi có nhiều cơ hội tiếp xúc với các công nghệ xa lạ như Redis, Kafka, RabbitMQ, Elasticsearch. Tôi nghe nói rằng việc tích lũy kinh nghiệm sử dụng các công nghệ này là tốt, và tôi cũng đã thử sử dụng một số. Nhưng tôi rất tiếc vì những điều này dường như chỉ còn là "kinh nghiệm hữu ích" chứ không phải để cảm nhận và giải quyết "vấn đề gì". Trong khi đó, tôi đã có thể giải quyết nhiều thắc mắc mà tôi thường tò mò sau khi nghe bài giảng này. Bắt đầu từ các chức năng cơ bản nhất, bài giảng đưa ra các tình huống vấn đề, công nghệ có thể giải quyết vấn đề này và công nghệ đó giải quyết vấn đề như thế nào, và cuối cùng giới thiệu các ví dụ điển hình của công nghệ đó. Bằng cách này, khái niệm "có thể sử dụng giải pháp (công nghệ) B cho vấn đề A" được hình thành khi thiết kế hệ thống. Ngoài ra, mỗi khi một công nghệ cần thiết cho thiết kế hệ thống được thêm vào, nó sẽ được hiển thị dưới dạng sơ đồ kiến ​​trúc và bài giảng được cung cấp để bạn có thể dễ dàng nắm bắt luồng và cấu trúc của yêu cầu/phản hồi. Cuối cùng, tôi nghĩ rằng bạn cũng có thể phát triển các kỹ năng kỹ thuật để đối phó hiệu quả với các vấn đề phát sinh khi tạo dịch vụ web và giải quyết vấn đề. Hiện tại, tôi đang nghe các bài giảng và xây dựng lại cấu trúc của dự án mà tôi đã tạo trước đây dựa trên nội dung của bài giảng. Tôi có thể thấy những phần mà tôi không hiểu trước đây hoặc những phần mà tôi đã thiết kế không hiệu quả và tôi có thể tạo ra một cấu trúc được cải thiện hơn. Tôi hy vọng rằng những người khác đang học phát triển web cũng sẽ phát triển nhiều khả năng thiết kế các hệ thống web có khả năng mở rộng và hiệu quả trong các dự án trong tương lai của họ bằng cách nghe bài giảng này!! :)

          • heechanlog3127님의 프로필 이미지
            heechanlog3127

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            81% đã tham gia

            Tôi đã xem rất vui. Đây là những kiến thức cơ bản mà tôi luôn thấy, nghe và thực hành, nhưng có lẽ vì tiếp xúc thường xuyên nên tôi cảm thấy bản thân mình trở nên lơ là. Do đó, khi sự cố xảy ra trong dự án, tôi cảm thấy khó khăn. Bài giảng này đã giúp tôi đơn giản thay đổi góc nhìn mà tôi đã bỏ lỡ. Mặc dù là những câu chuyện rất quen thuộc, nhưng mỗi lần nghe, tôi lại thấy nó mới mẻ. Cảm ơn vì bài giảng hay.

            238.655 ₫

            Khóa học khác của jykmww1219

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!