inflearn logo
inflearn logo

Large-Scale Systems Design Part 1

Learn common components of global-scale services through popular papers, books, and articles.

(4.9) 수강평 16개

강의소개.상단개요.수강생.short

난이도 초급

수강기한 무제한

software-design
software-design
DBMS/RDBMS
DBMS/RDBMS
software-design
software-design
DBMS/RDBMS
DBMS/RDBMS

먼저 경험한 수강생들의 후기

먼저 경험한 수강생들의 후기

4.9

5.0

dudals9901

100% 수강 후 작성

I hope part 2 comes out soon

5.0

parkhs

100% 수강 후 작성

I took this course because I was interested in large-scale traffic or large-scale system design theory, and it was good overall. I think it would be good for those interested in related fields to take this course. The lecture is structured in a way that briefly explains, "There are these concepts and theories, and this is how big companies like Amazon designed it." After taking the course, I personally think I need to learn more about large-scale traffic, large-capacity data processing, and system design. Overall, the speaking speed is a bit fast, and the lecture speed is a bit fast. It doesn't go into depth. There are lecture subtitles, but I think there are typos in the PDF. In conclusion, I recommend it~

5.0

coco

100% 수강 후 작성

I listened well!! I will ask for better lectures!!!

강의상세_배울수있는것_타이틀

  • System design

  • Computer Engineering

  • Distributed system

Distributed systems that seem complex and difficult,
Did you know that there's actually a pattern to the solution? ⭐

Have you ever thought about this?

I have no experience with large-scale systems, but the company I want to work for requires knowledge of large-scale systems...

I want to study distributed systems, but where should I start?

I need to build a large-scale system, but I don't know what problems there might be or how to best solve them.

A large-scale, complex system,
Study like this! 📖

Distributed systems are a truly challenging area. If there are 100 services built on a distributed system, each service will utilize the distributed system with a different strategy tailored to its specific situation. However, the problems to be solved in distributed systems often follow common patterns. Consequently, the methods for solving these problems are also patterned .

In this lecture, we'll explore the challenges faced in developing planet-scale services through renowned papers. We'll explore common problems encountered in large-scale services through renowned books, papers, and articles.

Scaling Memcache at Facebook paper
Dynamo paper

A word from knowledge sharer Jayce 🧑‍💻

When I was a junior, I once told a senior colleague at the company, "I've never developed a large-scale system before, so I'm not sure if what I'm trying to build is a good approach."

A senior colleague told me, " No one has ever experienced the exact situation you're in. Large-scale systems face different, detailed problems for each company. So we need to study in depth how similar problems were solved to find solutions that work for us. "

I began studying these issues, and through this process, I discovered how studying can help me grow as an engineer. I hope my lectures will help junior developers learn how to study deeply.


Lecture Features ✨

  • ✔️ You can learn about components that appear repeatedly in complex distributed systems .
  • ✔️ We explain how specific components are utilized in actual systems based on papers, books, open source, and case studies.
  • ✔️ We provide a glossary of component terms. The glossary is designed to help you understand and design distributed systems.
  • ✔️ Please check the class notes for each lecture unit. They include an introduction to the lecture content and reading material .

What you'll learn 📚

In this course, you'll learn about the fundamentals of distributed systems, including replication, sharding, and consistent hashing. You'll then explore real-world examples of how these components are applied.

Section 0 Introduction

This course provides an overview of the course. You can review the course objectives, target audience, main content, and presentation method.

Section 1: Basic Theory of Large-Scale Systems

Learn about CAP theory, a fundamental principle of system design, and distributed storage techniques such as replication, partitioning, and sharding.

Section 2 Components of a Distributed System

Learn about Consistent Hashing, Rate Limiter (throughput control), and Unique ID Generator, which are components frequently encountered when designing distributed systems.

Section 3 Case Study

Based on this paper, we will examine the implementation of distributed systems by global companies such as Amazon, Facebook, and Instagram.

📢 Please check before taking the class!

  • This course doesn't cover basic network and database knowledge. But don't worry too much. If you're familiar with really basic terms like TCP and Transactions, you'll be fine.
  • This course does not include hands-on training . Please note that because distributed systems prioritize predicting and resolving failures, it's difficult to experience this in class.

Course Target Audience/Course Purpose 🙆‍♀️

Junior developers with no experience designing large-scale systems

Developers who want to study the components of distributed systems

Those who want to study complex systems from a macroscopic and theoretical perspective

Backend developer with 1-3 years of experience developing backend systems

📌 Join this lecture!

  • You will learn about problems that can arise in large-scale systems and how to solve them.
  • I can eloquently explain best practices when designing large-scale systems.
  • You can acquire good theoretical background for learning more advanced distributed systems.
  • I will provide you with links to PPT study materials and in-depth study materials.

Expected Questions Q&A 💬

Q. Is it okay if I don't know much about computer engineering?

Basic CS knowledge is required. It's difficult to say exactly what constitutes basic knowledge, but if you have the necessary knowledge to work as a backend engineer, you should be able to address any remaining gaps through questions and research.

Q. Is there any practical training?

This course is a theoretical one. While developing even a simple distributed system is a truly valuable learning tool, I believe the difficulty of distributed systems stems from failure situations. Because it's difficult to build an environment that simulates unknown network failures, this course doesn't include implementation exercises. Instead, you'll learn how real-world cases have been used to resolve failures.

Q. What can I expect from this course?

I hope this lecture series will serve as a glossary of distributed systems knowledge for junior developers. You'll learn about common and well-known problems and solutions used in distributed systems. You'll be able to recall the lectures when you encounter or design similar problems. You'll also be able to make compelling arguments in interviews asking for system design skills.


강의소개.콘텐츠.추천문구

학습 대상은 누구일까요?

  • Junior Backend Developer

  • People who want to study distributed systems

선수 지식, 필요할까요?

  • Basic network knowledge and terminology

  • Basic database knowledge and terminology

강의소개.지공자소개

408

수강생

17

수강평

4

답변

4.8

강의 평점

2

강의_other

Hello. I'm Jayce. I am currently working as a platform engineer at a unicorn startup.

In a short period of time, I have founded a startup, developed large-scale services, and built platforms for developers, taking on roles as both a service developer and a platform engineer. Through these experiences, I have been able to define for myself the characteristics of a "great software engineer" and what it takes to become one.

In short, I find people who take a "deep dive" to be attractive as fellow engineers. I feel that those who simply churn out assigned tasks like a machine tend to take relatively longer to make the best choice in a given situation. On the other hand, those who dig deep into the underlying engineering reasons behind a decision quickly become the type of people who can provide strong, engineering-based arguments for other decisions as well.

The courses I create do not aim for a shallow understanding of new technologies. I want to teach junior developers how to become great teammates, attractive developers, and solid engineers. I will put forth my best effort to create courses suitable for those who wish to study deeper topics to become more compelling engineers. 🙂

더보기

커리큘럼

전체

14개 ∙ (강의상세_런타임_시간 강의상세_런타임_분)

해당 강의에서 제공: [object Object]
강의 게시일: 
마지막 업데이트일: 

수강평

전체

16개

4.9

16개의 수강평

  • arton7278님의 프로필 이미지
    arton7278

    수강평 4

    평균 평점 4.3

    5

    100% 수강 후 작성

    • parkhs님의 프로필 이미지
      parkhs

      수강평 1

      평균 평점 5.0

      5

      100% 수강 후 작성

      I took this course because I was interested in large-scale traffic or large-scale system design theory, and it was good overall. I think it would be good for those interested in related fields to take this course. The lecture is structured in a way that briefly explains, "There are these concepts and theories, and this is how big companies like Amazon designed it." After taking the course, I personally think I need to learn more about large-scale traffic, large-capacity data processing, and system design. Overall, the speaking speed is a bit fast, and the lecture speed is a bit fast. It doesn't go into depth. There are lecture subtitles, but I think there are typos in the PDF. In conclusion, I recommend it~

      • 941021461413님의 프로필 이미지
        941021461413

        수강평 3

        평균 평점 5.0

        5

        64% 수강 후 작성

        • saeinlee님의 프로필 이미지
          saeinlee

          수강평 2

          평균 평점 5.0

          5

          100% 수강 후 작성

          • dudals9901님의 프로필 이미지
            dudals9901

            수강평 13

            평균 평점 5.0

            5

            100% 수강 후 작성

            I hope part 2 comes out soon

            비슷한 강의

            같은 분야의 다른 강의를 만나보세요!

            강의상세.할인문구

            $22.00

            28%

            $30.80