สิ่งที่น่าสนใจในการพัฒนา 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…
กระบวนการส่งมอบ Software (Delivery) ไปยัง Production server นั้น มันเป็นสิ่งที่มีความท้าทายและความเสี่ยงอย่างมาก ทั้งฝ่าย business ต้องคิดและวางแผนของ product ทั้งฝ่าย architect ต้องวางโครงสร้างและ technical solution ทั้งฝ่าย development ต้องสร้าง product ที่มีคุณภาพออกมา แน่นอนว่าต้องผ่านการทดสอบในรูปแบบต่าง ๆ มาอย่างหนักหน่วง ถึงแม้จะมีการเตรียมการและลงมือทำดีอย่างไรก็ตาม กระบวนการส่งมอบ Software ยังคงยากและอันตรายอย่างมาก
Read More…
หลังจากอ่านบทความเรื่อง Infrastructure as Code ที่ bliki ของคุณ Martin Fowler เป็นอีกหนึ่งแนวคิด และ เทคนิคที่น่าสนใจอย่างมาก สำหรับจัดการ infrastructure ของระบบ ทั้ง server และ network ยิ่งในยุคของ Cloud computing ด้วยแล้วยิ่งน่าสนใจขึ้นมาอีก จึงนำมาแปล และ สรุปไว้นิดหน่อย
Read More…
วันนี้นั่งสรุปการนำ Fastlane มาใช้กับการพัฒนา Android application โดยในตอนนี้จะมีชุดเครื่องมืออยู่ 2 ตัวคือ Supply สำหรับการแก้ไข Android app บน Google Play เช่น APK และ metadata ต่าง ๆ Screengrab สำหรับการบันทึกรูป screenshot การทำงานของ app ซึ่งทำงานร่วมกับ Espresso หรือ UI Testing ดังนั้น เราลองนำเครื่องมือทั้งสองมาใช้งานร่วมกันดีกว่า
Read More…
เมื่อมีการพูดถึงคำว่า Continuous Integration (CI) และ Continuous Delivery (CD) แล้ว คนส่วนใหญ่มักจะคิดถึง หรือ พูดถึงเครื่องมือต่าง ๆ ก่อน ไม่ว่าจะเป็น Jenkins บ้างล่ะ ไม่ว่าจะเป็น Bamboo บ้างล่ะ ไม่ว่าจะเป็น Travis CI บ้างล่ะ ไม่ว่าจะเป็น Circle CI บ้างล่ะ ไม่ว่าจะเป็น Docker บ้างล่ะ ไม่ว่าจะเป็น Ansible บ้างล่ะ
Read More…
เรามักจะได้ยินคำว่า Fail Fast Lea[r]n Fast ในการพัฒนา software แบบ incremental และ interactive นั้นเราต้องการ feedback ที่รวดเร็วที่สุดเท่าที่จะทำได้ เพื่อทำให้เรารู้ว่า สิ่งที่ทำอยู่นั้นมันถูกต้อง และ เป็นสิ่งที่ต้องการ ในการพัฒนา software เราต้องการรู้สิ่งต่าง ๆ เหล่านี้อย่างรวดเร็ว สิ่งที่เราสร้างทำงานได้อย่างถูกต้อง ? สิ่งที่คนอื่นสร้างทำงานได้อย่างถูกต้อง ? เมื่อ deploy ระบบงานแล้วยังทำงานได้ ? สิ่งที่พัฒนานั้นมันตรงกับความต้องการของลูกค้า ? ทำให้ business มันดีขึ้น ? ดังนั้นเรามาตอบคำถามต่าง ๆ เหล่านี้กันดีกว่า
Read More…
ตอนนี้ Jenkins 2.0 Preview ถูกปล่อยออกมาเพื่อให้ทดสอบใช้งานกันแล้ว โดยใน version ใหม่นี้ทำการปรับปรุงความสามารถหลายอย่าง ทั้งเรื่องของ Delivery pipeline ซึ่งจัดการด้วย code กันเลย การติดตั้งแบบใหม่ มีให้เลือก plugin ก่อนด้วย ทำการปรับปรุง User Interface และ Usability ต่าง ๆ อีกด้วย ยังทำงานกับ version เก่า ๆ ได้ ดังนั้นมาดูรายละเอียดในแต่ละข้อกันดีกว่า
Read More…
Fastlane คืออะไร ? เป็นกลุ่มของเครื่องมือ สำหรับช่วยทำให้สิ่งต่าง ๆ เหล่านี้ง่ายขึ้น ขั้นตอนการ deploy และ release app สร้างระบบการทำงานแบบอัตโนมัติ สร้างระบบการพัฒนาระบบงานแบบอัตโนมัติ ถูกสร้างมาตามแนวคิด Continuous Delivery (CD) นั่นเอง ซึ่งแต่ละขั้นตอนของทำงาน หรือ การ build นั้น เราสามารถจัดเรียงลำดับการทำงานได้เอง โดยจะเรียกว่า Lane
Read More…
แนวคิด Continuous Delivery นั้นช่วยเหลือทุก ๆ คน ส่งผลดีทั้งฝ่าย business ส่งผลดีทั้งฝ่าย development ส่งผลดีต่อองค์กร โดยแนวคิดหลักของ Continuous Delivery คือ ทำการเปลี่ยนแปลง แก้ไข เล็ก ๆ บ่อย ๆ จากนั้นทำการทดสอบในทุกระดับ เพื่อลดความเสี่ยงจากการ deploy code ใหม่ ๆ
Read More…