Microservices คืออะไร?

Поделиться
HTML-код
  • Опубликовано: 16 окт 2024
  • มาทำความรู้จักกับ Architecture ยอดนิยมอย่าง Microservices ซึ่ง แนวโน้มของการพัฒนาซอฟแวร์นั้นจะมีการเพิ่ม requirements และความซับซ้อนมากขึ้นเรื่อยๆในทุกๆปี ดังนั้นเมื่อเวลาผ่านไปความต้องการของ user ก็จะมีมากขึ้นและก็จะยิ่งซับซ้อนมากขึ้นดังนั้นการที่เราพัฒนาระบบขั้นมาเป็นแบบ Monoliths นั้นจะทำให้เกิดข้อจำกัดต่างๆดังนี้
    1. ระบบยิ่งมีขนาดใหญ่ ยิ่งมีจำนวน developer มากขึ้น เมื่อคนเยอะขึ้นการสื่อสารก็ทำได้ยากขึ้นตามไปด้วย
    2. ปริมาณของ data นั้นจะมีมากขึ้นเรื่อยๆ ยิ่ง data มีปริมาณมาก ความเสี่ยงก็จะมากขึ้นตามไปด้วย(Centralize Database)
    3. ยิ่งระบบมีขนาดใหญ่ขึ้นการแก้ไข(maintain)ก็ทำได้ยากขึ้น
    4. ยิ่งระบบใหญ่ขึ้นก็ต้องมี module มากขึ้น และเมื่อมี module มากขึ้นการสื่อสารระหว่าง module ก็จะมากขึ้นตามไปด้วย นั่นทำให้ระบบเกิด high coupling(ถอดออกได้ยาก)
    5. ยิ่งระบบใหญ่ขึ้น technical debt ก็จะมากขึ้นตามไปด้วย
    technical dept คือ การที่เราแก้ปัญหาโดยไม่ได้แก้ที่ต้นเหตุ ดังนั้นปัญหาจริงๆจะยังคงอยู่และเมื่อปัญหาที่เราได้หมกไว้นี้กลับมาเกิดขึ้นใหม่ก็จะทำให้ใช้ต้นทุนทั้งเวลาและจำนวนคนที่เข้ามาแก้ไขปัญกานี้มากขึ้น
    ซึ่งนี่ก็เป็นสาเหตุว่าทำไมเราจึงควรเปลี่ยนมาเป็น Microservices Architecture เพื่อที่จะลดปัญหาที่ว่ามาทั้งหมดนี้ เพราะเมื่อ source code มีขนาดเล็กลง ปัญหาก็จะน้อยลงตามไปด้วย
    0:10 Monolith คืออะไร
    1:00 ปัญหาของ Monolith คืออะไร
    3:05 จาก Monolith สู่ Microservices
    3:23 ต้องแตก services ขนาดไหนถึงจะพอดี
    3:53 สิ่งที่ต้องมีในแต่ละ Service
    8:17 หลักการออกแบบ Microservices

Комментарии • 12

  • @PitchapaJiemprad
    @PitchapaJiemprad 7 месяцев назад +2

    ถ้าต้องการแยกกันได้โดยสิ้นเชิง ต้องจัดการเรื่องฐานข้อมูลอย่างไรคะ ถ้ากรณีอีก service นึงล่ม แต่อีก service นึงต้องการข้อมูล ทีอยู่ในอีกตัวนึงกรณีแบบนี้ไม่ใช่ microservice ใช่ไหมคะ ถ้ายังต้องการร้องขอ ข้อมูลข้าม Service อันนี้คือถามแบบไม่มีความรู้เรื่อง microservice เลยหน่ะค่ะ

    • @codinggun7966
      @codinggun7966  7 месяцев назад +2

      database จะต้องแยกกันอย่างเด็ดขาด ของใครของมันซึ่งเราสามารถนำข้อมูลที่ต้องใช้กับหลายๆ service ไปเก็บไว้ใน cache ได้ครับ ถ้า service เจ้าของข้อมูล down ไปจะยังมีข้อมูลใน cache ให้ใช้งาน

    • @PitchapaJiemprad
      @PitchapaJiemprad 7 месяцев назад

      ขอบคุณมากค่ะ@@codinggun7966 😊

  • @10101-b
    @10101-b 8 месяцев назад

    ขอบพระคุณครับจาน

    • @codinggun7966
      @codinggun7966  8 месяцев назад

      ขอบคุณครับ

  • @monoise1
    @monoise1 2 месяца назад

    แต่ละservice ก็มี frontend ของมันเองใช่ไหมครับ

    • @codinggun7966
      @codinggun7966  2 месяца назад

      ไม่จำเป็นครับ ถ้าแยก frontend ด้วยจะกลายเป็น Microfrontend ครับ

  • @swtl.3534
    @swtl.3534 8 месяцев назад

    แล้วถ้่า deploy ไปที่ผู้ให้บริการเดียวกันเช่น aws จะยังถือเป็น microserviceไหมครับ

    • @codinggun7966
      @codinggun7966  7 месяцев назад

      ยังเป็น microservices อยู่ครับ ถือว่าคนละเครื่องกัน(container หรือ vm) แต่ที่สำคัญเลยคือ database ต้องแยกกัน

  • @codinggun7966
    @codinggun7966  8 месяцев назад

    ใครมีคำถามเกี่ยวกับ Microservices สามารถ comment. ไว้ในนี้ได้เลยนะครับ
    0:10 Monolith คืออะไร
    1:00 ปัญหาของ Monolith คืออะไร
    3:05 จาก Monolith สู่ Microservices
    3:23 ต้องแตก services ขนาดไหนถึงจะพอดี
    3:53 สิ่งที่ต้องมีในแต่ละ Service
    8:17 หลักการออกแบบ Microservices

  • @okokok840
    @okokok840 6 месяцев назад

    ไม่ทำคลิปแล้วรึคะคิดถึงคนึงหายิ่งนัก

    • @codinggun7966
      @codinggun7966  6 месяцев назад

      กำลังทำอยู่นะครับ อดใจรออีกไม่นาน