💻Road To DevSecOps ☁️ : Part 1
Terraform & Google Cloud Platform (GCP) | Code Free

เนื่องจากต้องการออกแบบระบบสำหรับจัดการข้อมูลแบบอัตโนมัติด้วย Dataflow + Cloud Scheduler + BigQuery + Google Storage เลยได้มีการศึกษา Tools เกี่ยวกับ Infrastructure as Code (IaC) เลยได้รู้จักกับเครื่องมือหลักๆ 2 ตัวคือ
- Ansible
- Terraform
โดยได้เลือก Terraform มาใช้งานเพราะคิดว่าเหมาะกับระบบที่ต้องการมากกว่าในด้านการขึ้น Infrastructure (ยังไม่เคยลองใช้ Ansible แต่เท่าที่ศึกษาคร่าวๆ Ansible เหมาะกับการจัดการ Configuration มากกว่า) ซึ่งตัวอย่างส่วนใหญ่ที่เจอจะเป็นการใช้กับ AWS มากกว่า ทำให้ต้องไปอ่าน Doc. โดยตรงเอง 😂 ตามอ่านได้จากตรงนี้

เมื่อเราได้ Infrastructure จาก Terraform แล้วแต่ระบบก็ยังต้องจัดการกับ Application อยู่ดี ถึงจะไม่ได้เลือกใช้ Ansible แต่บน GCP ก็มี Cloud Build ให้ใช้งาน (แนะนำให้ศึกษา Docker & Kubernetes ก่อนใช้งาน) โดยเราสามารถเขียน Layer การทำงานของระบบในด้าน Infrastructure & Application ไว้ใน Cloud Build ได้ โดยแบ่งเป็น step คร่าวๆ ตามนี้เช่น
- Step 0 : Create & Config Infrastructure
- Step 1: Install Environment & Run Application
เท่านี้เท่าก็จะได้ระบบที่ต้องการแล้ว แต่มีข้อควรระวังในการใช้ IaC คือระบบความปลอดภัย เช่น การตั้งค่าสิทธิ์การเข้าถึงของ Service โดย Service ที่สร้างมาควรให้สิทธิ์แค่ที่ระบบต้องการจะใช้งานไม่ควรให้สิทธิ์เทียบเท่า Admin

ส่วนใครจะลองใช้ Cloud Build Trigger ร่วมกับ Github หรือ Version Control Software ตัวอื่นเพื่อช่วยในการจัดการเพิ่มเติมก็ได้ ถ้าได้ลองใช้ Terraform + Ansible หรือ Terraform + Other Cloud จะมารีวิวใหม่ 😊