Key
พัฒนาซอฟแวร์โปรเจคจบอย่างเป็นระบบ ด้วย Software ที่บริษัทใช้กัน
- Git
- Docker Container
- CI/CD (Jenkins)
ปัจจุบันการพัฒนาโปรแกรมหรือชอฟแวร์โปรเจคจบที่มีคุณภาพเพียงพอในการเอาไปใช้สมัครงาน แค่การทำซอฟแวร์ให้ออกมาสำเร็จใช้งานได้ไม่เพียงพออีกต่อไปแล้ว บริษัทชั้นนำไม่ได้ต้องการแค่คนที่สามารถพัฒนาเขียนซอฟแวร์ขึ้นมาได้ แต่ต้องรู้จักและใช้กระบวนการพัฒนาซอฟแวร์ที่ดีด้วย เพราะบริษัทชั้นนำต่างๆ ต้องการพัฒนาซอฟแวร์ที่สามารถนำไปใช้ต่อยอดในอนาคต หรือรองรับการขยายขนาด อีกทั้งยังต้องการลดเวลาการพัฒนาซอฟแวร์ให้สั้นและมีประสิทธิภาพที่สุดอีกด้วย เพราะฉะนั้น เราจึงต้องมาหัดใช้กระบวนการพัฒนาซอฟแวร์ที่ดีโดยเริ่มจากโปรเจคจบของเรา ก็จะช่วยให้เรามีแต้มนำคนอื่นในตอนสมัครงานได้
ภาพนี้คือตัวอย่างลักษณะของการพัฒนาซอฟแวร์โดยการนำ DevOps มาใช้
1 เริ่มตั้งแต่นักพัฒนาซอฟแวร์ เขียนโค๊ดขึ้นมา ในตอนแรกเน้นที่ทำยังไงก็ได้ให้มันทำงานได้ก่อน ตามฟรีเจอร์ที่ต้องการ จากนั้นทำการดูว่าเราสามารถ แก้ให้โค๊ดมันสวย อ่านง่ายขึ้น หรือมีประสิทธิภาพมากขึ้นได้ไหม (Code Refactoring)
2 จากนั้นทำการ Push เข้าไปบน Gitlab โดยปกติการทำโปรเจคจบก็จะทำร่วมกัน 2-3 คน เราก็จะสามารถฝึกการพัฒนา Software ร่วมกันได้ ขอแนะนำคือแรกๆควรแบ่งการกันให้ชัดเจนก่อนรับผิดชอบคนล่ะฟรีเจอร์คนล่ะไฟล์ ค่อยเอามาประกอบกัน ไม่อย่างนั้นจะเจอการทำงานที่ไฟล์เดียวกันแล้วเกิด Conflict แก้กันไม่ได้ สุดท้ายได้ลบโปรเจค Git มาสร้างใหม่กัน
การใช้ Git นอกจากจะได้ฝึกการทำงานแล้ว อาจารย์ก็ยังสามารถติดตามงานของนักศึกษา ดูการทำงานของแต่ล่ะคนผ่าน Git Commit ได้ ใครที่ไม่ถนัดเขียนโค๊ดก็สามารถมาเน้นที่การเขียนเอกสารอธิบายต่างๆในโปรเจคได้
3 เมื่อ Push ตัว Source Code แล้วจะเข้ากระบวนการของ CI/CD ต่อ ด้วยโปรแกรม Jenkins ในขั้นตอนนี้หลักๆ คือจะเป็นการบิ้วตัว Source Code ออกมาเป็น Artifacts หรือตัว Software หรือ Application ที่จะส่งมอบให้ลูกค้า
อันที่จริงในขั้นตอนนี้ จริงๆแล้วจะต้องมีการ Review Sourcecode ด้วย เช่นการใช้ Sonarqube ในการตรวจสอบว่าโค๊ดที่เราเขียนไปอีกแล้วหรือยัง มีช่องโหว่อันตรายไหม (White box testing)
4 การส่งมอบ Software ขึ้นไปบนระบบ โดยทั่วไปอย่างน้อยจะต้องมี Server ที่เป็น Dev Server และ Production Server ในขึ้นตอนนี้เราต้องฝึกการใช้งาน Docker Container ซึ่งบริษัทส่วนใหญ่ใช้ใน Product ของบริษัทกันแล้ว อย่างน้อยถ้าเราทำเสร็จต้องรู้คำสำคัญๆ Docker Image , Docker Container, Docker Registry และก็อธิบายถึงคีย์ฟรีเจอร์ Build Ship Run ของ Docker ได้
แถม
การพัฒนาซอฟแวร์นอกจากเรื่องกระบวนการที่ดีแล้ว อีกอย่างที่ต้องเสริมเข้าไปคือ Security อย่างจากDevOps ตอนนี้ก็มีการเพิ่มเป็น DevSecOps คือการใช้กระบวนตรวจสอบเช็คความปลอดภัยของ Software ที่พัฒนาขึ้นมาด้วย เบื้องต้นสามารถเริ่มศึกษาจาก OWASP Top Ten ซึ่งถ้าเป็นการพัฒนาเว็บเบื้องต้นแนะนำว่า เป็น OWAP Top Ten 2017 เพราะพอเป็น OWAP Top Ten 2021 การโจมตีส่วนใหญ่นั้นจะเป็นไปทาง Infrastructure ภาพที่กว้างขึ้น คนทำ Software แรกๆอาจจะมองภาพตามไม่ออก ถ้าเป็น 2017 จะเห็นมีในส่วนของช่องโหว่ที่เกิดจากการพัฒนาเขียนโค๊ดที่ไม่ปลอดภัยมากกว่าทำให้ เราเห็นภาพและป้องกันโค๊ดที่เราเขียนไม่ให้มีช่องโหว่เหล่านั้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น