เปรียบเทียบ Deploy Flutter ระหว่าง App Center กับ Codemagic
สวัสดีผู้อ่านทุกท่านครับ ก่อนหน้านี้ผมได้เขียนบล็อกเกี่ยวกับการ Deploy Flutter ด้วย App Center ที่เป็นบริการ CI/CD สำหรับ Mobile App และพาไปลองเล่น Codemagic เป็นบริการ CI/CD อีกเจ้านึง แต่ว่าผมยังไม่ได้เขียนเปรียบเทียบ และสรุปความคุ้มค่า เลยอยากจะเขียนสรุปในบล็อกนี้ครับ
โดยผมจะใช้ข้อมูลจากงาน Flutter ที่ผมใช้เป็นหลักนะ และราคาที่คำนวณจะเป็นราคาในปี 2021 ในอนาคตอาจมีการเปลี่ยนแปลง
และทั้งหมดเป็นเพียงความเห็นส่วนตัวของผมเท่านั้น
ก่อนหน้านี้
UX/UI ความสวยงาม
ข้อนี้ผมยกให้ Codemagic ทำออกมาได้สวยงามกว่า เข้าใจง่ายกว่า ชอบโทนสีของเว็บ ในการใช้สีสันที่มีเอกลักษณ์ ในขณะที่ App Center จะออกแนว Console โบราณๆเดิมๆ และการแสดงรายละเอียดต่างๆ ของ Codemagic ทำได้ดีกว่า มีการแบ่งหัวข้อของ output ทำให้เข้าใจง่ายอีกด้วย
ความสามารถ
หากพูดถึงฟีเจอร์ ต้องยกให้ Codemagic เพราะฟีเจอร์เยอะกว่า App Center มาก โดยฟีเจอร์เด่นๆที่ Codemagic มีแต่ใน App Center ไม่มี คือ
สร้างโปรเจค Flutter ได้เลย ไม่ต้องแยก Android / iOS
สามารถกำหนด Workflow
สามารถเลือกปรับแต่งสเปคของ VM ได้ (ต้องเสียเงิน)
สามารถปรับแต่ง version CocoaPods ได้
สามารถแบ่งเป็นทีมได้
สามารถเชื่อมต่อกับ Firebase Distribution
สามารถเชื่อมต่อกับ App Store Connect
สามารถมีได้หลาย Flutter project ใน Repository เดียว
สามารถ build Flutter for Windows / Linux / Web ได้
ความง่ายในการ Config Flutter
ข้อนี้ก็ต้องยกให้ Codemagic แบบเต็มๆ เพราะ Codemagic ออกแบบ ส่วน CI/CD สำหรับ Flutter โดยเฉพาะ ดังนั้นมีคำสั่ง config เกี่ยวกับ Flutter ให้เลยในหน้า UI และไม่ต้องเขียน script เลยก็ได้ นอกจากนี้ สามารถเลือก Flutter version ได้เลย ผ่าน UI ในขณะที่ App Center ต้องเขียน script กำหนดเอาเอง
สามารถตั้งค่า Flutter analyzer ได้ สามารถ config Integration Test , Unit test ของ Flutter ผ่าน UI ได้เลย
เอกสารประกอบ
การใช้งานบริการ CI/CD มีความยุ่งยากเรื่อง config ต่างๆ ดังนั้น การมีเอกสาร หรือ document จะช่วยให้ไม่ต้องเสียเวลามาก ซึ่งในข้อนี้ จริงๆทั้ง App Center และ Codemagic ทำได้ดีทั้งคู่ แต่พอพูดเรื่อง Flutter แล้ว Codemagic มีคะแนนที่ดีกว่าตรงที่มี Document สำหรับ Flutter เลย และมีบล็อกบทความต่างๆเกี่ยวกับ Flutter เยอะมาก คำอธิบายเรื่อง Config ก็ละเอียดดี ดังนั้นข้อนี้ให้ Codemagic ครับ
เวลาที่ใช้ Build
เทียบเวลาที่ใช้ในการ build ผมเทียบโดยการใช้ Plan Freee ของทั้งคู่ และใช้โปรเจค Flutter เล็กๆโปรเจคเดียวกัน ซึ่งมีข้อแตกต่างนิดนึงตรงที่ App Center ไม่รองรับ Flutter โดยตรงจึงจะแยกโปรเจค iOS / Android ทำให้มีงานที่ซ้ำซ้อนและไม่จำเป็นอยู่ เช่น การดาวน์โหลด Flutter SDK ในขณะที่ Codemagic จะมี Flutter ให้เลย ดังนั้นแน่นอนว่า Codemagic จะใช้เวลาที่น้อยกว่าในสเปคที่เท่ากัน
โปรเจคเล็ก | App Center | Codemagic |
---|---|---|
Android | 14 min 16 sec | 6 min 20 sec |
iOS | 12 min 26 sec | 6 min 20 sec |
จากการ build ใน VM แบบ Free สรุปได้ว่า App Center ใช้เวลา รวม ประมาณ 29 นาที ส่วน Codemagic ใช้เวลาประมาณ 13 นาที ซึ่งห่างกันครึ่งนึงเลย อันนี้แค่โปรเจคเล็กๆ ที่แทบไม่มี dependency อะไรเลยนะ ข้อนี้ Codemagic ได้ไปเต็มๆ
ความคุ้มค่าของแผนฟรี
ทีนี้มาดูความคุ้มค่า เมื่อเราจำเป็นต้องใช้แบบฟรี อันไหนจะคุ้มกว่ากัน โดยข้อจำกัดจะอยู่ที่ระยะเวลาต่อครั้งและโควต้าที่มีให้ฟรีต่อเดือน โดยเมื่อเทียบกันแล้ว Codemagic จะมีโควต้าที่ให้มาคุ้มมากกว่า เพราะให้ใช้ฟรี ต่อเดือนถึง 500 นาที และจำกัดเวลาต่อ build ถึง 2 ชั่วโมง ในขณะที่ App Center ให้ฟรีต่อเดือนที่ 240 นาที และจำกัด 30 นาทีต่อ build เท่านั้น
แผนฟรี | App Center | Codemagic |
---|---|---|
จำกัดเวลาต่อ build | 30 min | 120 min |
โควต้าเวลา build ฟรีต่อเดือน | 240 min | 500 min |
หากเราจะต้องใช้แผนฟรีเพื่อ build Flutter จะใช้ได้กี่ครั้งต่อเดือนกันนะ ลองมาคำนวณคร่าวๆกัน โดยใช้เวลาที่ได้จากโปรเจค Flutter ของผมก่อนหน้านี้มาคำนวณ
โปรเจคเล็ก แผนฟรี | App Center | Codemagic |
---|---|---|
จำนวนครั้งที่ build Flutter โปรเจคเล็ก | 8 ครั้ง / เดือน | 40 ครั้ง / เดือน |
จะเห็นได้ว่า App Center สามารถ build ได้ราวๆ 8 ครั้งเท่านั้น ยากมากที่ใช้แผนฟรีในการทำงานทั้งเดือน ในขณะที่ Codemagic ยังพอใช้งานจริงแบบฟรีได้แบบสบายๆ build วันละครั้งยังเหลือๆ
ดังนั้น หากคุณจะใช้แผนฟรีเท่านั้น คำตอบ คือ Codemagic เหมาะสมกว่า App Center
แผนฟรีไม่พอ หากจะยอมเสียเงิน
แน่นอนว่า การใช้งานจริง เราไม่ได้มีแค่โปรเจคเดียวและเป็นโปรเจคที่ใหญ่ขึ้น โควต้าแบบฟรีไม่พอแน่ๆ จึงจำเป็นต้องอัพเกรดเพื่อเพิ่มโควต้าเวลา หากจะยอมเสียเงิน อันไหนจะคุ้มกว่ากัน โดยทั้ง 2 บริการมีโมเดลราคาดังนี้
พรีเมียม | App Center | Codemagic |
---|---|---|
หากใช้เกินโควต้าในแผนฟรี | ต้องเหมา | $0.038 / นาที |
เหมาไม่จำกัดเวลา | $40 / เดือน | $299 / เดือน |
$0.038 / นาที ใน codemagic คือราคา macOS Standard VM ซึ่งตัวฟรีก็ใช้สเปคนี้เช่นกัน
จะเห็นได้ว่า Codemagic มีความยืดหยุ่นกว่า เพราะสามารถคิดค่าใช้จ่ายแบบ Pay as you go โดยคิดแบบรายนาที ที่ $0.038 ต่อนาที หรือประมาณ 1.25 บาทต่อนาที (Mac OS standard VM) ในขณะที่ App Center จะต้องเหมา $40 ต่อเดือนเท่านั้น ซึ่ง Codemagic ก็มีราคาเหมาเช่นกัน แต่จะคิดที่ $299 ต่อเดือน อะไรจะคุ้มกว่ากัน ถ้าเราจะต้องจ่าย ?
โดยผมได้คำนวณคร่าวๆ ในการคำนวณนี้ จะใช้โควต้าฟรีต่อเดือนที่มีให้ และเวลาในการ build Flutter โปรเจคเล็กๆ 1 โปรเจคก่อนหน้านี้
โปรเจคเล็ก | App Center | Codemagic |
---|---|---|
ต้องการ build โปรเจคเล็ก 100 ครั้งต่อเดือน | $40 | $26.6 |
ต้องการ build โปรเจคเล็ก 130 ครั้งต่อเดือน | $40 | $40.2 |
จะเห็นได้ว่า การ build Flutter โปรเจคเล็กๆ 130 ครั้งต่อเดือน ค่าใช้จ่ายของ App Center กับ Codemagic จะเท่ากันที่ประมาณ $40 หากใช้มากกว่านี้ App Center จะคุ้มกว่าเพราะเป็นราคาเหมาทั้งเดือน
ทีนี้ ผมลองใช้งานโปรเจคที่ใหญ่ขึ้น เป็นโปรเจคที่เป็นแอปงานจริงๆ ใช้เวลา build มากขึ้นกว่าเดิมประมาณ 2.5 เท่า
โปรเจคใหญ่ | App Center | Codemagic |
---|---|---|
Android | 35 min | 15 min |
iOS | 35 min | 15 min |
ซึ่งพอคำนวณแล้ว ค่าใช้จ่ายของ App Center กับ Codemagic จะเท่ากันที่ $40 หากใช้ build โปรเจคใหญ่อันนี้ 52 ครั้งต่อเดือน หากมากกว่านี้ App Center จะคุ้มกว่า
จากนั้นลองคำนวณ Codemagic แบบเหมา $299 พบว่า เราจะต้อง build โปรเจคใหญ่ 280 ครั้งต่อเดือน ถึงจะต้องจ่ายประมาณ $299 ดังนั้น หาก build มากกว่านี้ ให้จ่าย $299 ไปเลยสำหรับ Codemagic จึงจะคุ้มนั่นเอง
โปรเจคใหญ่ | App Center | Codemagic |
---|---|---|
ต้องการ build โปรเจคใหญ่ 52 ครั้งต่อเดือน | $40 | $40.3 |
ต้องการ build โปรเจคใหญ่ 100 ครั้งต่อเดือน | $40 | $95 |
ต้องการ build โปรเจคใหญ่ 280 ครั้งต่อเดือน | $40 | $300 |
สรุป
สรุปได้ว่า ในแง่ความสามารถ ฟีเจอร์ ความง่ายในการ config ระยะเวลาในการ build สำหรับ Flutter ต้องยกให้ Codemagic ว่าตอบโจทย์จริงๆ อีกทั้งสำหรับโปรเจคเล็กๆเริ่มต้นหรือโปรเจคทดลองต่างๆ Codemagic ก็ยังตอบโจทย์ เพราะ Free Plan ให้เวลามากถึง 500 นาที ซึ่งมากพอจะ build โปรเจคเล็กๆได้สบายๆ 40 ครั้งต่อเดือน
ส่วนโปรเจคที่จริงจังขึ้น ใหญ่ขึ้น หากใช้เวลา build ไม่เกิน 1,560 นาที (26 ชั่วโมง) Codemagic ก็ยังตอบโจทย์ความคุ้มค่ากว่า เพราะค่าจ่ายจะยังไม่ถึง $40 ต่อเดือน
แต่หากโปรเจคที่ใหญ่มากขึ้น มีหลายโปรเจค และต้อง build รวมๆกันมากกว่า 50 ครั้งต่อเดือน ความคุ้มค่าจะตกเป็นของ App Center เพราะจะจ่ายเป็น Fix cost ที่ $40 ต่อเดือน ซึ่งตรงนี้ตอบโจทย์โปรเจคใหญ่ๆแน่นอน หรือหากมีเงินและไม่อยากคิดอะไรมาก ขี้เกียจจัดการกับบิลที่รายจ่ายไม่แน่นอน App Center ก็เป็นตัวเลือกที่เหมาะสม ส่วนตัวคิดว่า $40 ถือว่าเป็นราคาที่รับได้
จบแล้ว
สำหรับบล็อกนี้เป็นเรื่องราวเกี่ยวกับความคุ้มค่าว่าอันไหนคุ้มกว่ากัน ระหว่าง App Center และ Codemagic ครับ เผื่อจะใช้ตัดสินใจใช้บริการทั้งสองเจ้านี้ อย่างไรก็ตามข้อมูลนี้คำนวณคร่าวๆเท่านั้น หวังว่าจะมีประโยชน์กับผู้อ่านนะครับ