강의

멘토링

로드맵

Inflearn brand logo image
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.8) 13 đánh giá

146 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,391

Học viên

42

Đá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ả

13 đánh giá

4.8

13 đánh giá

  • vvlfmald님의 프로필 이미지
    vvlfmald

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    신청하고 한 번에 다 봤습니다! 이 강의는 초급자를 위한 강의라고 소개되어 있지만, 저는 IT 업계에 종사하는 모든 사람들에게 도움이 될 만한 내용이라고 생각해요! 공부, 취업, 이직을 목표로 달리다 보면, 자칫 '나무'만 보게 되고 '숲'을 보지 못하는 경우가 많습니다. (제가 그랬어요...ㅠ^ㅠ) 강의를 듣기 전에도 '검색 엔진', '스케일 아웃' 같은 개념은 들어봤고 알고는 있었어요. 그런데 그게 왜 필요해지는지, 그리고 도입 후 어떤 흐름으로 발전하는지까지 체계적으로 정리해서 이해하고 있진 않았습니다. 그래서 만약 제가 이 강의에서 다루는 내용을 설명했다면, 결국 제가 그나마 잘 아는 특정 개념(나무)에 치중됐을 거예요. 하지만 이 강의에서는 그런 개념들이 어떻게 연결되어 전 세계 트래픽을 감당하는 거대한 서비스로 확장되는지를 자연스럽게 이해할 수 있도록 해줍니다!! 덕분에 서비스 설계를 더 넓은 시야에서 바라볼 수 있게 됐어요! 강의가 꼬리에 꼬리를 물고 진행되는 느낌이라 너무 재미있어서 한 번에 정주행했지만, 앞으로도 자주 찾아보게 될 것 같아요!

    • Jacky님의 프로필 이미지
      Jacky

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      강사님의 다른 강의에서 이 내용을 들을 기회가 있었는데, 그때 너무 재미있게 듣고 강의로 나오면 꼭 다시 들어야지 하고 생각했었습니다. 항상 지엽적인 부분들을 공부하느라 큰 그림을 알고 싶은 마음이 강했는데, 내가 관여하는 부분이 프로젝트 전체에서 어떤 부분인지, 다른 부분과 어떻게 연관이 있는지 깨닫게 되는 좋은 강의입니다. 전체를 멀리서 바라보는 관점을 가지게 되니 시야가 한결 넓어진 기분입니다.

      • sebiinim님의 프로필 이미지
        sebiinim

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        19% đã tham gia

        도식이 깔끔해서 이해하기 편합니다!

        • sootudio님의 프로필 이미지
          sootudio

          Đánh giá 1

          Đánh giá trung bình 5.0

          Đã chỉnh sửa

          5

          100% đã tham gia

          강의를 들으며 '확장 가능한 웹 애플리케이션 설계'에 대한 역량을 키울 수 있었습니다. 웹 개발자, 특히 백엔드 개발자로 성장하고 싶으신 학생/취준생 분들은 꼭 한번씩 들으시길 추천드립니다! 제가 웹 개발 공부를 시작했을 때 가장 어려웠던 점 중 하나가, '어떠한 기술이 왜 필요한지에 대해 아는 것' 이었습니다. 특히 웹 구조에 대해 서버, DB, 클라이언트 정도의 구조만 알다가 부트캠프에 들어가고서 프로젝트를 진행하니 Redis, Kafka, RabbitMQ, Elasticsearch 등 생소한 기술들을 접할 기회가 많았습니다. 이러한 기술들을 사용하는 경험을 쌓으면 좋다는 얘기를 듣고, 일부는 써보기도 했습니다. 하지만 이런 것들이 '어떠한 문제'를 느끼고 이를 해결하기 위해서가 아닌, 그저 '도움이 되는 경험' 정도로 남겨지는 것 같아 아쉬움이 많았습니다. 그러던 중, 이 강의를 듣고 평소 궁금했던 부분들을 많이 해소할 수 있었습니다. 가장 기본적인 기능부터 시작해서 문제 상황을 제시하고, 이것을 해결할 수 있는 기술과 그 기술이 어떤 식으로 문제를 해결하는지, 마지막으로 해당 기술의 대표적인 예시들을 소개시켜 주시는 방식으로, 시스템을 설계할 때 'A 문제에는 B라는 솔루션(기술)을 사용할 수 있다' 라는 개념이 세워지게 됩니다. 또한 시스템 설계에 필요한 기술이 추가될 때 마다, 이것을 아키텍처 다이어그램으로 보여주시며, 요청/응답의 흐름과 구조 등을 쉽게 파악할 수 있도록 강의가 제공됩니다. 최종적으로는, 웹 서비스를 만들 때, 발생하는 문제들에 효과적으로 대처하며, 문제를 해결하는 기술적 역량 역시 기를 수 있다고 생각합니다. 현재 강의를 들으며, 강의 내용을 바탕으로 이전에 만들었던 프로젝트의 구조를 다시 만들어 보고 있는데, 이전에 이해가 되지 않았던 부분이나 비효율적으로 설계했던 부분들이 눈에 보이며, 더 개선된 구조를 만들 수 있었습니다. 웹 개발을 공부하시는 다른 분들도 이 강의를 들으며 앞으로 진행할 프로젝트에서 확장성 있고 효율적인 웹 시스템을 설계하는 역량이 많이 길러지시길 바랍니다!! :)

          • Heechan Cho님의 프로필 이미지
            Heechan Cho

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            81% đã tham gia

            너무 즐겁게 보았습니다. 항상 보고 듣고 실천하게 되는 기초인 것 같은데 오히려 늘상 접하다 보니 스스로가 느슨해지는 것 같습니다. 그러다보니 프로젝트에서 문제 발생시 어렵게 느껴지기도 하구요. 이 강의는 제가 놓치고 있던 시야를 간단히 돌려놓는 강의였습니다. 너무나도 자주 접하는 이야기들을 말하지만 들을 때마다 매번 새로운 것 같습니다. 좋은 강의 감사합니다.

            239.154 ₫

            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!