โดน Vercel Limit Deploy ครั้งแรก...
date
Dec 20, 2021
slug
vercel-limit-deploy
status
Published
tags
webdev
vercel
summary
เหตุมันเกิดจากความเก่าของ dependencies ทั้งหลายและความขี้เกียจอัพเดทด้วยตัวเอง ซึ่งเราก็ไม่รู้ว่าบางตัวอัพเดทไปแล้วมันจะพังไหม ซึ่งบางครั้งลองบน localhost แล้วมันดันไม่เจอปัญหา พอ deploy แล้วมันดันเกิดปัญหาขึ้นมาเสียอย่างนั้นก็มี
type
Post
category
tech
เดิมทีบล็อกนี้ผมได้ทำการ Fork Repository มาจาก Dev ต่างชาติเพื่อมาทำต่ออีกที ซึ่งตอนเขาเขียนครั้งแรกๆ อาจจะอยู่บน env ที่ใหม่สุด ณ ขณะนั้น ทำให้ dependencies มันผ่านเวลาพอสมควร เมื่อผมนำมาแก้ไขต่อจนเป็นที่พอใจแล้ว ผมก็นำไป deploy ต่อที่ vercel ซึ่งผมใช้บริการฟรีอยู่ ซึ่งปกติแล้วเขาจะจำกัดการ deploy อยู่ในขอบเขตวันละไม่เกิน 100 Build
เหตุมันเกิดจากความเก่าของ dependencies ทั้งหลายและความขี้เกียจอัพเดทด้วยตัวเอง ซึ่งเราก็ไม่รู้ว่าบางตัวอัพเดทไปแล้วมันจะพังไหม ซึ่งบางครั้งลองบน localhost แล้วมันดันไม่เจอปัญหา พอ deploy แล้วมันดันเกิดปัญหาขึ้นมาเสียอย่างนั้นก็มี ซึ่งบางอย่างก็จำเป็นต้องอัพเดทเพื่อแก้ปัญหาช่องโหว่ต่างๆนาๆ ป้องกันการเจาะระบบ หรือพฤติกรรมไม่พึงประสงค์อื่นๆมากมาย จึงตัดสินใจโยนขึ้น git แล้วก็ตั้ง dependabot ให้มาช่วยจัดการตรงนี้แทน
เจ้า dependabot นี่จะเข้ามาช่วยเรื่องของการอัพเดท dependencies ในงานของเราโดยอ้างอิงจากไฟล์ package.js หรือ yarn.lock ที่อยู่ในโปรเจ็กต์ แล้วตรวจสอบว่ามีตัวไหนที่มีเวอร์ชั่นอัพเดทไหม ถ้ามีอัพเดทมันจะสร้าง Pull Request และทำการสร้าง branch แยกออกมา เพื่อทำการ deploy test ว่ามีปัญหาหรือไม่และจะแจ้งผลผ่าน PR ที่สร้าง ซึ่งทำให้เราไม่ Merge อัพเดทนั้นได้เลย
ตัวอย่างที่ไม่ผ่าน (จริงๆก็กด Merge ได้นะ แต่มันก็จะพังเหมือนที่บอทมันทดสอบให้นั่นแหละ)
ตัวอย่างที่ไม่ผ่าน (จริงๆก็กด Merge ได้นะ แต่มันก็จะพังเหมือนที่บอทมันทดสอบให้นั่นแหละ)
GitHub เพิ่มฟีเจอร์ความปลอดภัย: ปล่อยบอตส่ง pull request อัพแพตช์อัตโนมัติ, แยกพื้นที่พัฒนาแพตช์ความปลอดภัย
GitHub เปิดตัวฟีเจอร์ความปลอดภัยเพิ่มเติมงานงาน GitHub Satellite โดยมีฟีเจอร์สำคัญคือ Dependabot ที่สแกนหาไลบรารีที่เราใช้งานและส่ง pull request อัพเดตไลบรารีให้เองหากเวอร์ชั่นที่ใช้อยู่มีช่องโหว่ความปลอดภัย, และแท็บ Security เป็นพื้นที่พัฒนาแพตช์ความปลอดภัยสำหรับโครงการต่างๆ ก่อนที่จะเปิดเผยต่อสาธารณะ นอกจากฟีเจอร์ใหม่สองรายการนี้ ยังมีฟีเจอร์ย่อย เช่น เริ่มรายละเอียดการแจ้งเตือนช่องโหว่ไลบรารี จากเดิมที่เริ่มแแจ้งเตือนไลบรารีมีช่องโหว่ในปี 2017 ตอนนี้คำแจ้งเตือนจะมีข้อมูลจาก WhiteSource เพื่อให้มีรายละเอียดมากขึ้น Dependency Insight: เป็นฟีเจอร์สำหรับ GitHub Enterprise วิเคราะห์ไลบรารีที่โครงการกำลังใช้งาน, ช่องโหว่ความปลอดภัย, และสัญญาอนุญาตของไลบรารีต่างๆ Token Scanning: เพิ่มการแจ้งเตือนโทเค็นในซอร์สโค้ด โดยเพิ่มโทเค็น Alibaba Cloud, Mailgun, และ Twilio Security Policy: เปิดให้สร้างไฟล์ SECURITY.md เพื่อวางนโยบายความปลอดภัยให้กับโครงการ สำหรับการใช้แบบองค์กรสามารถสร้างไฟล์มาตรฐานขององค์กรได้ด้วย ฟีเจอร์ Dependabot ต้องเปิดใช้งานด้วยตัวเอง โดยเริ่มใช้งานได้แล้ว ที่มา - GitHub Blog
GitHub เพิ่มฟีเจอร์ความปลอดภัย: ปล่อยบอตส่ง pull request อัพแพตช์อัตโนมัติ, แยกพื้นที่พัฒนาแพตช์ความปลอดภัย
จากนั้นผมเองก็ปล่อยให้บอทมันทำงานของมันไปโดยไม่ได้สนใจอะไร จนกระทั่งกลับมาอีกทีพบว่าหลังๆทำไมผลทดสอบมันแดงอย่างเดียวเลย เลยสุ่มเข้าไปอ่านที่ pull request สักอันก็ปรากฎผลว่า โดน Limit deploy ไปเรียบร้อยแล้วครับ (ก็เข้าใจว่า dependencies มันเก่านะ แต่ก็ไม่ได้คิดว่ามันจะเก่าเยอะขนาดนี้)
vercel : เอ็งจะ deploy อะไรขนาดนั้น ออกไปเล่นข้างนอกบ้างสิลูก
vercel : เอ็งจะ deploy อะไรขนาดนั้น ออกไปเล่นข้างนอกบ้างสิลูก

สรุปว่า

มองในแง่ดีคือ เราใช้งานและจดจ่อกับตรงนี้มากเกินไป vercel เลยใจดีบอกว่า เฮ้ย นายควรออกไปเดินเล่นข้างนอก หากิจกรรมอย่างอื่นทำ พักสายตาเสียบางนะสหาย อีก 6 ชั่วโมง (จริงๆผมก็ไม่แน่ใจว่าเขาตัดรอบกี่โมง) ค่อยกลับมาทำงานตรงนี้ใหม่นะ มันเป็นชะตาที่ไม่อาจเลี่ยงจริงๆ (จริงๆก็เลี่ยงได้ แค่จ่ายก็จบ)
จริงๆที่เขียนบทความนี้ขึ้นมาเพราะมันเป็นเหมือนการปลดล็อกหนึ่งในสิ่งที่สงสัยของผมอย่างหนึ่งว่า ถ้ามันโดนลิมิตแล้วมันจะเป็นในรูปแบบไหน ซึ่งผลก็คือ เว็บยังใช้ได้ปกติ แต่แค่เราจะ deploy เพิ่มไม่ได้ในช่วงเวลาหนึ่งเท่านั้น ซึ่งน่ารักกว่าที่คาดการไว้ว่ามันจะชัทดาวน์เว็บเราไปเลย (มองแง่ลบมากๆครับ ฮ่าๆ)
จริงๆก็แอบมีอีกหนึ่งสิ่งที่คาใจเหมือนกันนะ นั่นคือผมใช้การเก็บข้อมูลบางอย่างของบล็อกไว้ที่ firestore ซึ่ง free tier จำกัดการอ่านไว้ที่ 5หมื่น ครั้ง/วัน มันเหลือเฟือมากๆสำหรับของฟรี และดูจะเป็นไปได้ยากที่จะพิชิตขอบเขตนั้นได้สำหรับบล็อกเล็กๆนี้
Last edited : Apr 11, 2022
Copyright
  • webdev
  • vercel
  • Table of Contents