ตั้งแต่วันที่ 29 กันยายน ถึง 1 ตุลาคม มีโอกาศมาแบ่งปันที่เชียงใหม่
ในงาน Give and Take :: Agile for Software Development
ซึ่งครั้งที่จัดที่ CAMT (College of Arts, Media and Technology )
โดยครั้งนี้ทำการติดตั้งและ configuration ระบบ Continuous Integration Server ด้วย Jenkins ไว้
เลยนำมาสรุปไว้นิดหน่อย
เริ่มจาก Infrastructure ที่ใช้คือ Digital Ocean
ซึ่งใช้เพียง 1 instance หรือ 1 droplet เท่านั้น โดยสิ่งที่นำมาใช้เพิ่มเติมคือ Docker สำหรับการสร้าง container ของส่วนต่าง ๆ ในระบบงาน ประกอบไปด้วย- Container Jenkins Server
- Container Nginx สำหรับ deploy ระบบ web application ที่พัฒนาด้วย React
- Container NodeJS สำหรับ deploy ระบบ backend ที่พัฒนาด้วย NodeJS
- Container MongoDB สำหรับ database ของระบบ
- Container Google Chrome สำหรับการทดสอบ UI testing บน Google Chrome
ทำการสร้าง Job หรือขั้นตอนการทำงานแบบอัตโนมัติง่าย ๆ ดังนี้
1. Frontend ที่พัฒนาด้วย React 2. Backend ที่พัฒนาด้วย NodeJS 3. ทำการสร้าง MongoDB Database ขึ้นมาใหม่ 4. ทำการทดสอบ UI Test ผ่าน Google Chrome ด้วย Robotframework ทั้ง 4 ข้อนี้จะทำตามลำดับดังนี้1. ทำการสร้าง MongoDB container ขึ้นมา
โดยสร้างแบบน่าเกลียดสุด ๆ ดังนี้ [code] $docker container run -d --name mongo mongo:3.5.13-jessie [/code] ปล. อย่าไปใช้บน production server นะ !!2. ทำการสร้าง Backend container สำหรับ NodeJS
ในส่วนนี้เป็น RESTFul API พัฒนาด้วย NodeJS ซึ่งในครั้งนี้ทีมเลือกใช้ expressjs library มีข้อตกลงกันคือ ต้องทำการเขียนชุดการทดสอบด้วย ดังนั้นจึงทำการสร้าง Docker Image ใหม่ขึ้นมา เขียนใน Dockerfile ได้ดังนี้ [gist id="b1f9126d00619f7e0951e2234299788e" file="Dockerfile_backend"] คำอธิบาย- ทำการ copy ไฟล์ package.json ซึ่งเป็นไฟล์ config สำหรับ project
- ทำการ copy ไฟล์ต่าง ๆ จาก folder src
- ทำการ install library ต่าง ๆ ด้วย npm install
- ทำการทดสอบด้วย npm test
- ทำการ start ระบบงานแบบง่าย ๆ ถ้างานจริงแนะนำให้ใช้ pm2 นะ