ทีมพัฒนาของ Digitalocean นั้นได้ออกมาเล่าถึงประสบการณ์การพัฒนาระบบงานด้วยภาษา Go ซึ่งเป็นระบบงานภายในชื่อว่า Cthulhu โดยเป็นระบบงานที่ใช้งาน version control แบบ Monorepo นั่นคือ code ทุกสิ่งอย่างอยู่ใน repository เดียวกัน แม้ว่าจะมีมากกว่า 1 project ก็รวมกันอยู่ในนี้ แน่นอนว่า ต้องเจอปัญหาต่าง ๆ มากมาย ทั้งเรื่องของโครงสร้าง ทั้งเรื่องการ scale ทั้งเรื่องของการจัดการ dependency ต่าง ๆ ทั้งเรื่องของเครื่องมือที่ใช้งาน ทั้งเครื่องของเวลาในการ build ของ CI server ทั้งเรื่อง code ownership มาดูกันว่าทางทีม Digitalocean ทำอย่างไรบ้าง ? น่าสนใจมาก ๆ
Read More…
ตั้งแต่วันที่ 29 กันยายน ถึง 1 ตุลาคม มีโอกาศมาแบ่งปันที่เชียงใหม่ ในงาน Give and Take :: Agile for Software Development ซึ่งครั้งที่จัดที่ CAMT (College of Arts, Media and Technology ) โดยครั้งนี้ทำการติดตั้งและ configuration ระบบ Continuous Integration Server ด้วย Jenkins ไว้ เลยนำมาสรุปไว้นิดหน่อย
Read More…
ปัญหาอย่างหนึ่งที่มักพบเจอกับทีมพัฒนาคือ เครื่องผมเครื่องหนูมันทำงานได้นะ แต่บนเครื่องจริง ๆ กลับทำงานไม่ถูกต้องหรือทำงานต่างกันไป ไม่ว่าจะเหตุผลใดก็ตาม มันก็คือไม่ถูก ดังนั้นเราจะทำอย่างไรดีละ ? หนึ่งแนวทางคือ ถ้าทำให้เครื่องนักพัฒนา มีขั้นตอนการทำงาน มี environment ต่าง ๆ เหมือนหรือคล้ายกับเครื่องจริง ๆ มันน่าจะดีไม่น้อยนะ
Read More…
แนวคิด Continuous Integration และ Continuous Delivery/Deployment นั้น เป็นสิ่งที่สำคัญมาก ๆ สำหรับการพัฒนา software มันไม่ใช่เรื่องของ process เพียงอย่างเดียว มันไม่ใช่เรื่องของ tool เพียงอย่างเดียว มันไม่ใช่เรื่องของ culture เพียงอย่างเดียว มันไม่ใช่เรื่องของทีมพัฒนาเพียงอย่างเดียว แต่มันคือเรื่องของการเปลี่ยนจาก requirement มาเป็นสิ่งที่อยู่ในคนใช้หรือสร้างคุณค่าให้กับลูกค้าและบริษัทนั้น ๆ อย่างต่อเนื่องและมีคุณภาพ
Read More…
สิ่งที่น่าสนใจในการพัฒนา software คือ เราทำการเตรียม environment ต่าง ๆ เช่น ทั้ง Dev, Test/QA, UAT, Staging, Pre-Prod และ Prod กันตอนไหน ? ที่สำคัญคือ แต่ละ environment นั้นเหมือนหรือต่างกัน ? ซึ่งสิ่งต่าง ๆ เหล่านี้มันสะท้อนความสัมพันธ์ระหว่าง Development team และ Pre/Production team ว่าเป็นอย่างไร
Read More…
ในการสร้างระบบ Continuous Integration และ Continuous Delivery สำหรับ Mobile นั้น มีหลายสิ่งอย่างที่ควรคำนึงถึง ไม่ว่าจะเป็น จำนวนของ device ที่แตกต่าง การออกแบบของแต่ละ platform การพัฒนา โครงสร้างของ code การทดสอบ การ deploy การ release โดยสิ่งที่เราต้องการคือ feedback loop ที่รวดเร็ว แน่นอนว่ามันย่อมรวดเร็วกว่าระบบอื่น ๆ อย่างมาก ดังนั้นสิ่งที่เราควรต้องทำการวางแผนงาน จากนั้นลงมือทำและสร้างมันขึ้นมาดังนี้
Read More…
จากบทความเรื่อง Continuous Integration Certification นั้น มีแบบทดสอบการใช้งาน CI ที่น่าสนใจ ดังนั้นลองมาทำแบบทดสอบกันหน่อย เริ่มได้เลย
Read More…
วันนี้นั่งสร้างระบบ Continuous Integration (CI) สำหรับ Android app นิดหน่อย เพื่อทำการ integrate ส่วนการทำงานต่าง ๆ เข้าด้วยกัน ทำการ build และ ทดสอบระบบแบบอัตโนมัติ ทำให้เรารู้ข้อผิดพลาด เพื่อทำการแก้ไขได้อย่างรวดเร็ว ดังนั้นมาดูกันว่าจะทำการสร้างระบบ CI อย่างไรกันบ้าง
Read More…
เพิ่งไปแบ่งปันเรื่องระบบ Automated deployment สำหรับ Mobile app มา โดยประกอบไปด้วยส่วนต่าง ๆ เช่น ระบบ API หรือ Backend ระบบ Mobile หรือ Frontend ทั้ง Android และ iOS มีทั้ง process และเครื่องมือที่ใช้งาน จึงนำมาสรุปไว้นิดหน่อย มาเริ่มกันเลย
Read More…
ในการทดสอบ iOS app ผ่านระบบ Continuous Integration นั้น จำเป็นต้องทำการทดสอบทั้ง Unit test และ UI test และสร้างผลการทดสอบในรูปแบบ JUnit เพื่อสรุปผลการทดสอบต่าง ๆ ให้ง่ายและชัดเจน ปกติจะใช้ xcpretty ร่วมกับ xcodebuild แต่ว่าจะลำบากขึ้นเมื่อใช้งานร่วมกับ XCode 8 ดังนั้นทางผู้พัฒนา fastlane ก็ได้สร้างเครื่องมือใหม่ชื่อว่า trainer ขึ้นมา ซึ่งใช้ง่ายกว่า และ ทำการได้รวดเร็วกว่า ดังนั้นลองมาใช้งานกันดูหน่อย
Read More…