การทำ Backend Deployment
HTML-код
- Опубликовано: 25 июл 2024
- ☕️ สนับสนุนช่องเราด้วยการสมัครสมาชิกช่องทางนี้ได้เลย
/ @mikelopster
ลองไมค์ สัปดาห์นี้เราจะมาพูดถึงการทำ Deployment ฝั่ง Backend กันบ้างว่า โดยปกติ หากเราจะทำการขึ้นงานระบบหลังบ้าง Backend 1 ตัวนั้น มี process อะไรต้องทำบ้าง เพื่อให้สามารถขึ้นงาน Backend ออกมาได้อย่างถูกต้อง
โดยในหัวข้อนี้ topic ที่เราจะพูดถึงมีดังนี้
1. องค์ประกอบหลักของการ deploy Backend และ Docker
2. แชร์ผ่าน project ตัวอย่าง node.js ที่ต่อไปยัง MongoDB และ Postgres
3. เปลี่ยน database จาก local สู่ cloud ด้วย Mongo Atlas และ Supabase (Postgres)
4. แสดง Deploy ทั้ง 2 แบบคือ ท่าง่าย (นำ image Docker ไป deploy Cloud run) และท่ายาก (set cloud server ขึ้นมาเองและดึง image มา deploy เอง)
** โดย เราจะเน้นที่ปูพื้นฐาน เพื่อให้เข้าใจภาพของการ Deploy Backend กันก่อน ซึ่งเรายังไม่ได้พูดถึง practice backend code สำหรับเรื่อง Security กันนะครับ (แนะนำให้ดูได้ในหัวข้อ OWASP ของช่องเราก่อนได้) รวมถึง หัวข้อนี้ จะเน้นไปที่ไอเดียการ deploy งานโดยใช้ Docker เป็นตัวหลักในการบริหารจัดการ เนื่องจากเป็น technology ที่สามารถปูพื้นเพื่อนำไป deploy ในรูปแบบอื่นๆได้
หากต้องการหัวข้อไหนเพิ่มเติม comment กันไว้โลด เชื่อว่าหัวข้อนี้น่าจะพอทำให้ทุกคนเห็นภาพการ deploy งาน Backend กันได้ดียิ่งขึ้นนะครับ 😁
หัวข้อ
00:00 แนะนำหัวข้อ
02:21 ไอเดียพื้นฐานของ Backend
05:03 Backend แบบ API Server (ที่เป็นที่นิยมในการทำ FE / BE ในปัจจุบัน)
09:01 เมื่อ Backend ไปวางบน Server ภาพจะออกมาเป็นแบบไหน
16:46 องค์ประกอบทั้งหมดของ Backend มีอะไรบ้าง
23:54 เริ่ม project - แนะนำ node.js ต่อเข้ากับ Postgres และ Mongo ด้วย Docker
31:15 ไอเดียของการใช้ Dockerfile สู่การ run project
33:04 ทดสอบต่อ database Postgres และ Mongo ที่ local
38:56 อธิบายภาพรวม + การใช้ ENV
42:38 เริ่มขนทุกอย่างขึ้น Server
44:08 นำ Database Mongo ขึ้น Cloud ด้วย Mongo Atlas
48:13 นำ Database Postgres ขึ้น Cloud ด้วย Supabase
54:11 ท่าง่าย (1) - เริ่มต้น นำ Node.js ขึ้น Cloud ต้องทำอะไรบ้าง
59:57 ท่าง่าย (2) - build image นำขึ้น Artifact Registry
1:03:35 ท่าง่าย (3) - นำ image ขึ้น Cloud Run + สรุปทั้งหมด
1:14:41 ท่ายาก (1) - setup cloud สำหรับเตรียมขึ้น Node.js image (Docker)
1:21:40 ท่ายาก (2) - นำ image ดึงผ่าน docker-compose เพื่อ deploy
1:27:35 ท่าง่าย vs ท่ายาก ต่างกันอย่างไร ?
1:30:01 สรุปทั้งหมด
ใครมีข้อสงสัยเพิ่มเติม มาพูดคุยแลกเปลี่ยนความรู้กันได้ที่
Facebook page: / mikelopster.dev
Website: mikelopster.dev
แปะพิกัดของที่ผมใช้
shope.ee/6fI75UuLEM osmo pocket 3
shope.ee/4VDcVixCW9 ไมค์ shure
shope.ee/6pbXI6d5xG กล้องวงจรปิด
Enjoy ครับ 😘 Наука
ขอบคุณครับ สุดยอดมากเลยครับ
ขอบคุณท่านไมค์มากคร้าบบ
ขอบคุณมากครับกำลังต้องการเลย
มาแล้วเย้ เนื้อหายอดเยี่ยมครับช่องนี้ สู้ๆกับงานครับพรี่
ขอบคุณมากๆๆ ค่ะ เห็นภาพชัดเจนเลย งมเองมานานมาก
ขอบคุณครับ
ขอบคุณมากเลยค่ะ ทำงานได้เก่งขึ้นเพราะพี่เลย 🫡🤣🤣🙏🏻
ขอบคุณครับ อาจารย์
ดีมากคับ สุดยอดเลย🎉🎉
มาแร้ว ที่เราลอยคอ
ชอบทุกคอนเท้นต์เลยค้าบบ หนับหนุนๆ รอ practice backend code นะค้าบ
ขอบคุณมากครับ
ขอบคุณสำหรับการสนับสนุนเช่นกันนะครับ 😁
เป็นช่องที่สอนดีและเข้าใจเห็นภาพอย่างมาก อยากให้สอนพวก Security และสอน DevOps ทำ CI/CD (gitlab action, Jenkins ฯลฯ) ด้วยครับ
ขอบคุณค้าบบ ชอบทุก ep ของลองไมค์เลย เป็นไปได้รอบถัดๆไป อยากให้พาลองเอา nextjs ไปเล่นกับอย่างพวก web3 dApp ทีครับ
ได้เลย ผมเก็บไว้ใน checklist ก่อนน้า
ช่วย demo CICD github action หน่อยครับ
แล้วในกรณีผมทำ backend ใน nuxt3 เลยคือให้ nuxt3 จัดการให้แทน nodejs นี้มีแนวทางเอาไป deploy ไหมครับ คิดว่าคอนเซปน่าจะคล้ายกันแต่เราจะแกะเอาเฉพาะแค่ก้อนหลังบ้านออกมาได้ไหม หรือต้องใชวิธี deploy แบบอื่น
รอ Network เเบบจัดเต็มครับ
ปกติไม่คอมเม้นที่ไหนเลย แต่ช่องนี้อธิบายได้ดีมากเลยครับ
มีงงนิดหน่อยตรง firewall ครับ ว่าถ้า firewall ดักการ call ip:port จากภายนอก
แต่ทำไม ตอน curl จากใน centos7 ถึงโดนดักด้วย ?
เพราะติด "Ingress firewall rule" ครับ ใน google cloud มันจะมี firewall 2 ชั้นคือ
1. Ingress firewall rule ที่จะทำในระดับ VPC network (network ขาเข้า Resource ของ Google Cloud เช่น GCE)
2. Firewall ของ GCE เอง
เคสนี้ ที่ติดไม่ได้ติดจาก 2. แต่ติดจาก 1. เนื่องจากเรายิงผ่าน public IP เข้าไปครับ มันเลยไปเจอกับ Firewall อันแรกเข้า (ถ้าเรายิงผ่าน private IP จะไม่ติดในเคสนี้ครับ)
ถ้างงๆ ลองหาอ่านดูเพิ่มเติมตาม keyword เหล่านี้ดูน้า 😊
ขอบคุณล่วงหน้าครับ Frontend ยังไม่ได้ดูเลย555
หยุดยาวลุยยาวๆได้เลยครับ
ช่วยอธิบายการใช้ typescript หน่อยได้ไหมครับ คือผมยังสับสนอยู่เลยครับว่าตรงไหนควรกำหนด type ลงไปหรือตรงไหนควรให้มัน infer หรือควรกำหนดทั้งหมด
ผมขอเก็บไว้ใน checklist ก่อนน้า แต่ถ้าตอบแบบเร็วๆ จุดไหนที่มาจาก code เราเอง ควรกำหนด type หมดทั้งขาเข้า และ ขาออ รวมถึงการใช้ infer ด้วยครับ พวกนี้มันมีความสามารถในการลด error จากจังหวะ compile code ได้เยอะครับ 😊
ต่อไปขอเป็น k8s ได้ไหมครับบบบ
k8s นี่ คุยกันยาวครับ เดี๋ยวผมหาเป็นซีรีย์ทำแยกไว้ครับ 😆
@@mikelopster ดีเลยครับ ตอนนี้ผมลองใช้ minikube scale nodes เอาแต่รู้สึกว่ายังไม่เห็นภาพเท่า k8s ที่แยก node จริงๆ อาจจะเป็นเพราะ run on local มั้งง😂
ในที่สุดก็มา รอมานานมากครับ ขบอคุณมากค้าบบบบบบบบ
ช่วงนี้งานแน่นๆเลยครับ จะพยายามหาเวลาามาจอยเรื่อยๆนะครับ
ขอถามหน่อยครับ ปัจจุบันผมทำการจัดการ API CRD ได้ ทำระบบ login ได้ ใช้ฐานข้อมูล MongoDB ได้ ต้องทำอะไรเพิ่มเติมหรอครับ ถึงจะรับงานเองได้ หรือไม่จำเป็นต้องรับงาน็ได้ แค่อาจจะแนะนำเพิ่มเติมหน่อยครับว่าต้องทำอะไรเป็นเพิ่มเติมอีก ปล.ส่วนใหญ่ผมจะอ่าน Docs ของ NestJs เป็นหลักครับ
ผมว่าขึ้นอยู่กับเคสแล้วแหละ พื้นฐานระบบทั่วไปก็เป็น CRUD นี่แหละครับ เพียงแต่ มันไปวัดกันที่ รูปแบบการเก็บข้อมูลใน Database กับการ process data มากกว่า
เช่น E Commerce เราอาจจะเก็บข้อมูลทั้ง product, user, cart ไว้ แต่ตอน ทำ API placeorder มันคือการเอาทุกอย่างมารวมกันและสร้างเป็น order โดยพื้นฐานมันก็อยู่ในกรอบ CRUD เช่นกัน แต่มันก็จะเป็นโจทย์ที่ยากกว่าในแง่ของการทำ process data ครับ
พวกนี้แนะนำให้ลองทำจากเว็บจริงดู หรือลองหา side project ทำดูก่อนได้นะครับ (อาจจะเริ่มจากการลอกเว็บไซต์ที่ใช้งานบ่อยๆก็ได้) แล้วจะเห็นภาพขึ้นได้นะครับ ว่าเรายังขาดอะไรบ้าง 😊
จะมี course reverse engineering ไหมครับ
ตอนนี้จะยังไม่มีนะครับ :)
ชอบดูคลิปพี่มากเลยครับเมื่อวานก็นั่งดูของfrontendจบไปด้วย อธิบายละเอียดและเข้าใจง่ายมองเห็นภาพตามได้