6 คะแนน โดย GN⁺ 2024-09-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เราสร้างแพลตฟอร์มที่ใช้ Kubernetes เป็นพื้นฐานนาน 7 เดือนเพื่อมาแทนที่ Heroku
  • สร้างแพลตฟอร์มที่ใช้ Kubernetes เป็นพื้นฐานเพื่อแทนที่ Heroku ที่ mynewsdesk.com สำหรับผลิตภัณฑ์ SaaS
  • ผลลัพธ์คือช่วยลดต้นทุนลง 90% และเพิ่มประสิทธิภาพขึ้น 30%
  • ลดเวลาในการดีพลอยและปรับปรุงประสบการณ์นักพัฒนาอย่างมากด้วยเครื่องมือที่เร็วขึ้นและเข้าถึงได้ง่ายขึ้น
  • ตอนนี้ได้เปิดซอร์สทั้งสแตกแล้ว ทำให้สามารถทำสิ่งเดียวกันนี้ได้ภายในไม่กี่วันแทนที่จะเป็น 7 เดือน

คอมโพเนนต์ของแพลตฟอร์ม - มี Architecture Decision Record สำหรับแต่ละคอมโพเนนต์

  • Gitops : ArgoCD
  • Ingress : Cloudflared
  • PostgreSQL : CloudnativePG
  • Redis : Spotahome's Redis Operator
  • Elasticsearch : Elastic Cloud Kubernetes
  • Secrets Management : Sealed Secrets
  • Persistent Storage : Rancher Local Path Provisioner + OpenEBS Dynamic LocalPV Provisioner
  • Monitoring : kube-prometheus-stack
  • Log Aggregation : Qryn
  • Service Mesh : Linkerd

สรุปโดย GN⁺

  • บทความนี้แบ่งปันประสบการณ์การสร้างแพลตฟอร์มที่ใช้ Kubernetes เป็นพื้นฐานเพื่อแทนที่ Heroku
  • เน้นผลลัพธ์ด้านการลดต้นทุน การเพิ่มประสิทธิภาพ และการปรับปรุงประสบการณ์นักพัฒนา
  • ด้วยสแตกที่เปิดเป็นโอเพนซอร์ส นักพัฒนาคนอื่นก็สามารถทำสิ่งเดียวกันนี้ได้อย่างง่ายดาย
  • เป็นข้อมูลที่มีประโยชน์สำหรับนักพัฒนาที่สนใจเทคโนโลยีอย่าง Kubernetes
  • โปรเจ็กต์อื่นที่ให้ความสามารถคล้ายกัน ได้แก่ OpenShift และ Rancher

1 ความคิดเห็น

 
GN⁺ 2024-09-09
ความคิดเห็นจาก Hacker News
  • ความเห็นแรก

    • มีประสบการณ์สร้างและดีพลอยสแตกหลายพันชุดโดยใช้ Docker, Mesos, Swarm และ k8s
    • สิ่งสำคัญคือการบำรุงรักษาในวันที่สอง
    • มีเครื่องมือมากมายที่ทำให้การดีพลอยแอปลงเซิร์ฟเวอร์เป็นเรื่องง่าย
    • แต่การบำรุงรักษา เช่น การเปลี่ยนเวอร์ชัน ปัญหา dependency และแผนกู้คืนความเสียหาย เป็นเรื่องสำคัญ
    • ถ้ามีทีม งบประมาณ และปัญหาที่ต้องแก้ด้วยสิ่งเหล่านี้ ก็ถือว่าเป็นทางเลือกที่ดีกว่า
  • ความเห็นที่สอง

    • เมื่อหลายปีก่อนเคยไหลไปตามกระแส k8s และพยายามรันทั้งธุรกิจบน k8s
    • เป็นความผิดพลาดครั้งใหญ่
    • DigitalOcean อัปเกรดคลัสเตอร์ให้อัตโนมัติจนทำให้ทั้งธุรกิจออฟไลน์
    • จากนั้นเปลี่ยนไปใช้ bash script แบบง่าย ๆ กับ systemd และจะไม่ย้อนกลับไปอีก
  • ความเห็นที่สาม

    • อยากมีธุรกิจที่ประสบความสำเร็จมากพอจนการย้ายอินฟราจาก Heroku ไป Kubernetes ใช้เวลาถึง 7 เดือน
  • ความเห็นที่สี่

    • ใช้แค่ VM ไม่กี่ตัวกับ bash script ก็ไปได้ไกลพอสมควร
    • เครื่องมือ DevOps ยิ่งน้อยยิ่งดี
  • ความเห็นที่ห้า

    • ดีที่ได้เห็นโปรเจกต์ใหม่
    • คนส่วนใหญ่ไม่ควรเริ่มต้นด้วย Kubernetes
    • ถ้าไม่ต้องการ auto-scaling ก็แนะนำให้ลอง Kamal
    • เป็นเครื่องมือที่ 37signals สร้างขึ้นเพื่อออกจาก Kubernetes และคลาวด์ และทำงานได้ดีกับ VM แบบเรียบง่าย
    • ยังได้เขียนคู่มือสำหรับคนที่กำลังเริ่มต้นไว้ด้วย
  • ความเห็นที่หก

    • การตั้งค่า Kubernetes ดูดี
    • แต่เมื่อเทียบกับ Heroku แล้วมีความซับซ้อนสูงกว่ามาก
    • ถ้ากำลังมองหาอะไรที่ง่ายกว่า ก็แนะนำให้ลอง dokku หรือ lunni.dev
    • coolify.io ก็ได้รับคำชมที่ดีเช่นกัน
  • ความเห็นที่เจ็ด

    • ทำงานอยู่ที่บริษัทที่มีทีมอินฟรา และ CEO ก็หลงใหลเรื่องอินฟรา
    • สร้างอินฟราด้วย terraform และ k8s
    • แต่การดีพลอยใช้เวลาหลายวัน และอินฟราก็ซับซ้อนเกินไป
    • จำนวนผู้ใช้ก็ยังไม่มากพอจะได้ประโยชน์ด้าน scalability
    • สตาร์ตอัปไม่ควรใช้ k8s จนกว่าจะมีฐานผู้ใช้มากพอ
  • ความเห็นที่แปด

    • ปรัชญาพื้นฐานด้านความปลอดภัยคือการเชื่อใจนักพัฒนาและเครือข่ายส่วนตัวภายในคลัสเตอร์
    • เลยสงสัยว่าการตั้งค่าระบบนี้โดยไม่ยึดสมมติฐานความเชื่อใจดังกล่าวจะซับซ้อนหรือไม่
    • อยากรู้ว่าจุดปัญหาอยู่ตรงไหน
  • ความเห็นที่เก้า

    • ใช้เวลา 7 เดือนในการสร้างแพลตฟอร์มบน Kubernetes เพื่อมาแทน Heroku
    • ต้นทุนลดลง 90% และประสิทธิภาพดีขึ้น 30%
    • แต่เพราะ Heroku ทั้งช้าและแพง จึงสงสัยว่าวิธีนี้เป็นแนวทางที่ดีที่สุดจริงหรือไม่
  • ความเห็นที่สิบ

    • สงสัยว่ามันแตกต่างจาก dokku อย่างไร