Fundamental
ก่อนที่เราจะไปพูดถึง CI/CD และ Jenkins เรามาดูปัญหาที่มักเกิดขึ้นในการพัฒนา Software กันก่อน
เมื่อเราพัฒนา Software เสร็จแล้ว ขั้นตอนต่อไปคือการนำ Software ไป Deploy บน Server ซึ่งโดยทั่วไปอาจมีหลายขั้นตอน เช่น
flowchart LR
A[Build] --> B[Test]
B --> C[นำไฟล์ไปวางบน Server]
C --> D[Start Application]
ถ้าเราต้องทำขั้นตอนเหล่านี้ด้วยตัวเองทุกครั้ง นอกจากจะเสียเวลาแล้ว ยังมีโอกาสเกิด Human Error เช่น Build ผิด Version, ลืม Run Test
และเมื่อทีมมีการแก้ไขและ Deploy Software บ่อยขึ้น กระบวนการ Deploy ก็อาจเริ่มกลายเป็น คอขวดของการพัฒนา Software
จะสังเกตุว่ากระบวนการเหล่านี้เป็นงานที่เราต้องทำซ้ำๆ แทบทุกครั้ง ไม่ว่าเราจะ release software กี่เวอร์ชั่นก็ตาม ถ้าเราสามารถทำให้ขั้นตอนเหล่านี้เป็น automate ได้ก็คงดีนะ