ตอนนี้ผมได้ทดสอบการทำ Continuous Delivery ด้วยโปรเจคที่ทำ Proof of Concept ให้กับธนาคารเพื่อรายย่อยแห่งนึง ที่ไปที่มาก็คือ เนื่องจาก Frontend ซึ่งเป็น Native Mobile Application นั้นช่วงทำการ Integrate กันกับ Backend ซึ่งเป็น REST API พบว่าเราเสียเวลากันไปในขั้นตอนการ Build, Test และส่งมอบ Build Package (Backend) เพื่อนำไปส่งมอบให้กับผู้ที่รับผิดชอบการ Integrate กับ Frontend นำไปรันที่เครื่องของตนเองเพื่อใช้ทดสอบ

ตอนนี้สิ่งที่ทำคือ เมื่อมีการ Push ชุด Source Code เข้ามายัง Git ซึ่งเป็น Source Code Repository ตัว Jenkins ซึ่งทำหน้าที่เป็น Continuous Integration Server จะทำการดึง Code มาทำการ Test โดยอัตโนมัติ ถ้าพบว่าทดสอบแล้วผ่าน จึงจะทำการ Build เพื่อให้ได้มาซึ่ง Artifact (jar, war, etc) ต่อไปคือการนำ Artifact ไปทำการ Deploy โดยสามารถกำหนดได้ว่า Policy ในการ Deploy เป็นอย่างไร เช่น จำเป็นที่จะต้องทดสอบให้ผ่านทุก Test Case เป็นต้น หลังจากนั้นก็ทำการ Deploy ลง Application Server

ซึ่งตัวที่ผมใช้ทดสอบคือ JBoss WildFly 8.2

wildfly_logo_stacked_600px

ประโยชน์คือผมใช้เวลาแค่ 1 นาทีในการ Build, Test และ Deploy ลง Test Environment เท่านั้น ลดเวลาที่เสียเปล่าๆ จากการใช้วิธี Manual ลงไป ลด Human Error ลงไป

 

 

ในคราวหน้าจะทดสอบการ Deploy แยกลงแต่ละ Staging เช่น UAT, SIT และ Production ต่อไปเนื่องจาก Environment แต่ละที่นั้นต่างกัน จำเป็นต้องแยก Configuaration …