รู้จักกับ “DevSecOps Flow & Components” – Template สำคัญที่ทีม Dev, ทีม Operation และทีม Security ต้องเข้าใจ และคงหนีไม่พ้นหากต้องการเริ่มต้นทำ DevSecOps ในองค์กรให้สมบูรณ์ยิ่งขึ้น
ซึ่งภายใน DevSecOps Flow นี้ ประกอบด้วย Components อะไรบ้างที่องค์กรจะต้องมีให้ครบ ลองไปดูกันเลย

6 Checklists ช่วยออกแบบ DevSecOps Flow ให้ครบทุกส่วน

1. Version Control System (VCS)

Componentes แรกคือ Version Control ซึ่งเป็นเครื่องมือที่จะช่วยทำการ Record Changes เก็บข้อมูลการปรับปรุงแก้ไขไฟล์ส่วนไหน ใครเป็นคนแก้ไข แก้ไขเมื่อไหร่ เป็นต้น โดยซอฟต์แวร์ Version Control ที่นิยมใช้ได้แก่ Git Version Control ซึ่ง Git Version Control มีการควบรวมฟีเจอร์ที่ทำให้นักพัฒนาทำงานได้สะดวกมากขึ้น สามารถทำงานได้ตั้งแต่ขั้นตอนการพัฒนา ไปจนถึงการ Deploy งานขึ้นใช้งานบน Server ซึ่งเป็น Stage ถัดไปที่กำลังจะกล่าวถึงนั่นเอง

2. CI/CD & Artifacts

ในส่วนที่ 2 นี้จะประกอบไปด้วย 3 Components สำคัญ ได้แก่
CI (Continuous Integration) คือขั้นตอนตั้งแต่การ Build&Compile โค้ด, Run Test และทำ Security Scan จนถึงการทำ Package > ออกมาเป็น Artifacts หรือ Output ที่ได้ของการ Build และ Test ทำการตรวจสอบว่าโค้ดนั้นสามารถทำงานร่วมกันได้จริงอย่างไม่มีปัญหาและส่งต่อไปยัง Stage ถัดไปคือ > CD (Continous Delivery/Deploy) คือขั้นตอนตั้งแต่การ Release Version จนถึง Configure หรือการนำโค้ดไปทดสอบและติดตั้ง Branch Master ในระบบพร้อมกับทำการตรวจสอบคุณภาพ หากผ่านการตรวจสอบคุณภาพแล้ว จะทำการนำไปใช้งานจริง

ซึ่งทั้ง 3 Components มีการทำงานที่ใกล้ชิดกัน ซึ่งแต่ละองค์กรมีวิธีการเลือกใช้เครื่องมือที่แตกต่างออกไปตามลักษณะของงาน โดยเครื่องมือที่นิยมใช้ทำ CI/CD บนรูปแบบ On-Premise ได้แก่ GitLab, Jenkins และ ArgoCD หรือ รูปแบบ On-Cloud ได้แก่ CircleCI, TravisCI หรือ Azure DevOps เป็นต้น

3. Modern Infrastructure

Key หลักที่สำคัญสำหรับการทำ DevSecOps โดยปัจจุบันนิยมใช้ Infrastructure ในรูปแบบ Cloud, Docker Container และ Kubernetes โดยการสร้าง Modern Infrastructure เหล่านี้ให้มีประสิทธิภาพที่สุดต้องคำนึงถึงเรื่องความปลอดภัย และ Scaling ได้ และรวมไปถึงการทำ Automation Infrastructure ที่เข้ามาช่วยจัดการและเติมเต็มการทำ Infrastructure ให้สมบูรณ์ยิ่งขึ้นในการทำ DevSecOps โดยมีคอนเซ็ปต์สำคัญคือการทำ Infrastructure as Code (IaC) มีเครื่องมือที่นิยมใช้ได้แก่ Ansible, Terraform

4. Monitoring

Components ที่สำคัญหากขาดไป ทีมจะไม่สามารถทำ Feedback ได้เลย โดย Monitoring เป็นส่วนการทำ Feedback ตั้งแต่ Dev Environment, UAT จนถึง Production โดยมีการเชื่อมต่อกับ Infrastructure หรือ CI/CD Pipeline โดยแบ่งชนิดของข้อมูลออกเป็น 4 ชนิดได้แก่ Check, Metrics, Logs และ Traces ซึ่งปัจจุบันมีเครื่องมือมากมายในการทำ Monitoring ซึ่งแนะนำให้เลือกใช้เครื่องมือตาม Monitoring Components ที่เหมาะสมกับงาน ตัวอย่างเช่น Prometheus หรือ Grafana Loki นิยมใช้ดู Metric บน Monitor Database เป็นต้น รวมไปถึงการทำ Application Performance Monitoring เพื่อทำ Feedback ในจุดของ Development เพื่อสามารถปรับแก้ไขได้รวดเร็วที่สุด ซึ่งมีเครื่องมือที่นิยมใช้ได้แก่ Jaeger หรือ Splunk เป็นต้น

5. Automated Performance Load Testing

แม้ว่า DevSecOps ไม่ได้เป็นคอนเซ็ปต์ที่เข้ามาช่วยเขียน Test แต่ต้องอาศัยทีมเข้ามาเขียน Load Testing โดยมีเครื่องมือยอดนิยมได้แก่ TSUNG, Apache JMeter หรือ Locust ที่สามารถเลือกใช้ได้ จุดประสงค์ของการทำ Automated Performance Load Testing เพื่อส่ง Feedback เพื่อให้ทีมสามารถแก้ไข Performance และสามารถ Scaling ระบบได้อย่างรวดเร็วที่สุดก่อนขึ้น Production จริงได้

6. Automation Security

แนวคิด DevSecOps เป็นแนวคิดที่นำเรื่อง Security เข้ามามีส่วนร่วมกับการพัฒนาซอฟต์แวร์หรือระบบตั้งแต่วันที่เริ่มเขียนโค้ดจนจบกระบวนการนำส่งขึ้น Production ในรูปแบบ Automation โดยถูกแบ่งออกเป็น 3 Stage หลักบน DevSecOps Flow ได้แก่

– Pre Commit Stage : เริ่มต้นสร้าง Security ตั้งแต่ในช่วงการเขียนโค้ด Build โค้ด
– Acceptance Stage : เริ่มตั้งแต่ช่วงการทำ Test, Secret และ Release
– Production Stage : ส่วนของการ Monitor หรือ Audit และ Maintenance ระบบซอฟต์แวร์

สรุป

เราจะเริ่มได้เห็นภาพรวมของการทำ DevSecOps ได้ชัดเจนยิ่งขึ้น ซึ่งการทำ DevSecOps เรียกได้ว่าเป็นการพัฒนา Process การทำงานเดิมของทีมนักพัฒนาไม่ว่าจะเป็นทีม Dev ทีม Operatoion หรือ ทีม Security ให้มีความเป็น Automation ช่วยทำให้ทีมสามารถทำงานได้รวดเร็วและมีความปลอดภัยมากยิ่งขึ้น

โดยสิ่งสำคัญคือเทคโนโลยีเครื่องมือตัวช่วยต่าง ๆ ที่จะมีบทบาทเข้ามาทำ DevSecOps ให้กลายเป็นจริงมากยิ่งขึ้น รวมไปถึงสิ่งที่สำคัญกว่าคือต้องใช้เวลาเพื่อปรับตัวเรียนรู้ Learning Curve ของทีมพัฒนา แนวคิด DevSecOps จึงเป็นรูปแบบ Continous Improvement ที่สร้างระบบการทำงานที่พัฒนาต่อเนื่องไปเรื่อย ๆ ให้ทีมและระบบขององค์กรมีประสิทธิภาพสูงสุด

หากใครกำลังสนใจเรียนรู้การทำ DevSecOps กับเนื้อหาที่ครบที่สุดในไทยกับผู้เชี่ยวชาญตัวจริง เราขอแนะนำ  The Complete DevSecOps Program ครบทุกเรื่อง จบทุกขั้นตอน ลงมือทำจริงกับระบบ CloudLabs ฉบับ Best Practices  คลิก


Reference: DEVSECOPS PLATFORM – Opsta

 

More in:Technology

Comments are closed.