9. Continuous DeliveryContinuous Delivery
Cทีมเราใช้เป็นแบบ Continuous Delivery นั่นเองแต่ของเราทั้ง
Step deploy to Staging Environment และ
deploy to Production Environment เป็น
manual One Click Deployp y
Staging อํานาจการตัดสินใจอยู่ในมือ QA เป็นคน Click ส่วน
Production ยกให้ Business เป็นคนตัดสินใจProduction ยกให Business เปนคนตดสนใจ
Tanapat Limsaiprom
10. ชดทดสอบระบบชุดทดสอบระบบ
Qส่วนของการทําชุดทดสอบระบบนั้น QA เราจะทําการ เลือกชุด test
case ที่เป็น Smoke test , Regression test
ขึ้นมา สําหรับแต่ละ component หรือ service ย่อยๆ การ
เพิ่มเติมเขียน script automated testing ใช้ Git ผ่านp g
Source Tree ในการ จัดการ source code
automated test case และ ใช้ Jenkins ในการ
config ให้ Trigger สั่งให้ Run ชุดทดสอบ automated
testing ในแต่ละ environmenttesting ในแตละ environment
Tanapat Limsaiprom
12. Automated testAutomated test
A d ใ ใแล้ว เรานํา Automated test ไปใช้ทดสอบในช่วงไหนของ
กระบวนการ CI/CD กันหล่ะ?
Automated testing ถูกนําไปใช้ใน Process ของ CI
นั่นเอง..!!นนเอง..!!
กล่าวคือ ทุกการเปลี่ยนแปลงหนึ่งในนั้นคือ การทดสอบนั่นเอง แน่นอนว่า ต้อง
ป็ ั โ ั ิ ่ ่ (Automatedเป็นการทดสอบแบบอตโนมตอยางแนนอน (Automated
testing) ไม่ว่าจะเป็น Unit testing, Integration
t ti F ti l t titesting และ Functional testing
Tanapat Limsaiprom
13. Developer environmentDeveloper environment
ขออธิบายตั้งแต่เรื่องพัฒนาของ Developer กันเลย
ทางทีมพัฒนาระบบของเราจะแบ่ง environment เป็น 4 ส่วนคือ
Local , Alpha , Staging , Production มีขั้นตอน
ดังนี้ดงน
1. Developer เมื่อทําการพัฒนา feature เสร็จ จะทําการ
build test run ื่ ั (Local) ื่ ํ ใ ้build, test และ run บนเครองของตวเอง (Local) เพอทําให
แน่ใจว่าระบบทํางานได้ถูกต้องและให้แน่ใจว่าสิ่งที่เปลี่ยนแปลงไม่กระทบส่วนอื่น ๆ
Tanapat Limsaiprom
15. มีระบบ CI ทําการ buildมระบบ CI ทาการ build
C3. เมื่อ Repository กลางมีการเปลี่ยนแปลง จะต้องมีระบบ CI ทํา
การ build, หลังจาก build จะส่งต่อไป run unit testing
ก่อนถ้าผ่านหมดถึงจะส่งต่อไปยังระบบ Continuous Delivery
เพื่อ deploy to alpha environment (:p y p (
Tanapat Limsaiprom
17. เมื่อ source code ถก deployเมอ source code ถูก deploy
4. to alpha environment แล้วจะ trigger ไปสั่งให้
run job automated testing ใน level ของเทสเคส
smoke test ซึ่งเป็นชุดเทสเคสย่อยๆไม่เยอะมากเฉพาะในส่วนของ
feature code ที่ถูก deploy มาเท่านั้นp y
Tanapat Limsaiprom
18. หลังจาก run smoke testหลงจาก run smoke test
5. หลังจาก run smoke test เสร็จแล้วถ้าเกิดว่า run มี
บางส่วนไม่ผ่านทั้งหมดจะไม่ส่งต่อไปยังระบบ Continuous
Delivery เพื่อ deploy to staging
environment QA จะทําการ investigate ว่าเกิดจากg
อะไร เป็นที่ระบบมี Bug เกิดขึ้นจริงหรือไม่ ถ้ามี bug ก็ให้ dev แก้ไข
และ deploy มาใหม่ วน loop ใหม่p y p
Tanapat Limsaiprom
19. Continuous DeliveryContinuous Delivery
ี ั run smoke test ่ ั้ ่ ่ ไ ั6. กรณีหลังจาก run smoke test ผ่านทังหมดจะส่งต่อไปยังระบบ
Continuous Delivery เพื่อ deploy to Staging
environment เมื่อ source code ถูก deploy top y
staging แล้ว จะ trigger ไปสั่งให้ run job automated
testing ใน level ของเทสเคส regression test และ QA ก็ทําการ
ทดสอบ Acceptance testing ไปด้วยพร้อมๆกันที่ Stagingทดสอบ Acceptance testing ไปดวยพรอมๆกนท Staging
environment นี้ เมื่อมีการ deploy ซํา◌้ ๆ เพื่อ fixed bug จากที่
QA เจอ หรือที่พบเจอจากการ run regression test แล้ว fail ก็จะเป็น
loop ั้ ่ ้ ั้ ่ ่ Business ฟั !!การวน loop ตงแตตนจนจบ จนกระทง ทุกอยางผานหมด Business ฟนธง!!
มาว่าเอาขึ้น production ได้ เป็นการ confirm ว่าเราจะเอา code
version สุดท้ายนี้ขึ้นไปที่ production environment
Tanapat Limsaiprom