DevOps on AWS ช่วยให้องค์กรทำงานง่ายขึ้นอย่างไร

17 พ.ย. 2565

ทำไมถึงต้องมี DevOps เข้ามาช่วยในการพัฒนาระบบที่เป็นที่นิยมในปัจจุบัน คงต้องเท้าความถึงการผลิต Product หรือ Service ในสมัยก่อนที่ทีมงานผู้พัฒนาระบบ Developer จะต้องทำการเขียน source code ตามความต้องการต่างๆ เมื่อเสร็จเรียบร้อยแล้วก็จะทำตรวจสอบโดยวาง source code ไว้ในเครื่องของตัวเองว่าสามารถใช้งานได้หรือไม่ หากสามารถใช้งานได้ จึงจะแจ้งให้ทีม Operation ทำการสร้างเครื่องเซิร์ฟเวอร์ให้รองรับกับซอฟต์แวร์ที่เขียนขึ้นมา รวมไปถึงการขอสิทธิ์ในการเข้าถึงระบบ โดยกว่าจะรอขั้นตอนการ Provisioning, Deploying, Testing  และอนุมัติเรื่องการกำหนดสิทธิ์ให้เสร็จสิ้น อาจจะใช้เวลาหลายเดือน ซึ่งไม่เหมาะกับการดำเนินธุรกิจในยุคปัจจุบันที่ต่างต้องเร่งส่งมอบผลิตภัณฑ์ให้ถึงมือลูกค้าให้เร็วที่สุด ดังนั้นจึงได้เกิด DevOps ขึ้นมาเพื่อมาปิดช่องว่างนี้ ทำให้ทีมงาน Developer และ Operation ได้ทำงานคล่องตัวมากขึ้น ด้วยการนำเครื่องมือ Automation เข้ามาช่วยลดข้อผิดพลาดให้น้อยลง ส่งมอบงานได้รวดเร็วและมีประสิทธิภาพมากที่สุด

DevOps คืออะไร

Dev ย่อมาจาก “Development team” คือ ฝ่ายที่รับผิดชอบในการพัฒนาระบบให้กับธุรกิจเพื่อเพิ่มประสิทธิภาพ ความสามารถในการแข่งขัน และตามการเปลี่ยนแปลงของตลาดได้ทันต่อเหตุการณ์

Ops ย่อมาจาก “Operation team” คือ ฝ่ายที่รับผิดชอบในการทำให้ระบบมีประสิทธิภาพต่อการใช้งาน ดูแลให้ระบบมีความ เพื่อส่งมอบให้กับลูกค้าได้ภายในเวลาที่กำหนด รวมถึงการตรวจสอบปัญหาของระบบด้วย


DevOps on AWS

เพื่อให้องค์กรสามารถส่งมอบผลิตภัณฑ์และบริการได้ดีกว่าเดิม ทาง AWS จึงจัดเตรียมชุดของการบริการที่มีความยืดหยุ่น สามารถออกแบบได้อย่างอิสระ ปรับเปลี่ยนได้อย่างเหมาะสม เพื่อส่งเสริมช่วยให้องค์กรหรือธุรกิจต่างๆ สามารถสร้างและส่งมอบผลิตภัณฑ์โดยใช้บริการหลายๆประเภทของ AWS และ DevOps ได้อย่างรวดเร็ว โดยมีความปลอดภัย น่าเชื่อถือ และมีประสิทธิภาพมากขึ้น บริการเหล่านี้ช่วยให้การจัดเตรียมและจัดการโครงสร้างพื้นฐาน การปรับใช้ source code ของแอปพลิเคชัน การทำให้กระบวนการเผยแพร่ซอฟต์แวร์เป็นระบบอัตโนมัติ และการตรวจสอบประสิทธิภาพของแอปพลิเคชันและโครงสร้างพื้นฐานให้ง่าย และสะดวกมากยิ่งขึ้น

บริการของ AWS สำหรับ DevOps

  • สามารถเริ่มต้นใช้งานหรือดำเนินการได้อย่างรวดเร็ว ด้วยส่วนประกอบต่างๆ ที่พร้อมให้บริการ เพื่อให้ส่งมอบผลิตภัณฑ์ หรือสามารถสร้างสรรค์นวัตกรรม การคิดค้นใหม่ๆได้รวดเร็ว
  • บริการที่มีการจัดการเต็มรูปแบบ บริการเหล่านี้จะช่วยให้สามารถใช้ประโยชน์จากทรัพยากร AWS ได้รวดเร็วยิ่งขึ้น ลดความกังวลเกี่ยวกับการตั้งค่า การติดตั้ง และการดำเนินงานโครงสร้างพื้นฐานด้วยตนเอง ซึ่งจะช่วยให้ธุรกิจสามารถมุ่งเน้นไปที่การผลิตผลิตภัณฑ์ออกมาได้อย่างมีประสิทธิภาพ รวดเร็ว เพิ่มความสามารถในการแข่งขัน
  • สามารถสร้างระบบและปรับขนาดได้ตลอดเวลา สามารถจัดการ instance เดี่ยวหรือปรับให้เป็นหลายพัน instance โดยใช้บริการของ AWS ได้ ด้วยบริการเหล่านี้ช่วยให้สามารถใช้ทรัพยากรการประมวลแบบยืดหยุ่นได้อย่างเต็มที่โดยการจัดเตรียมล่วงหน้า การกำหนดค่า และการปรับขนาดง่ายขึ้น
  • สามารถตั้งโปรแกรมได้ โดยมีตัวเลือกในการใช้แต่ละบริการผ่านทาง AWS Command Line Interface หรือผ่านทาง API และ SDK นอกจากนี้ สามารถจำลองและจัดหาทรัพยากร AWS และโครงสร้างพื้นฐาน AWS ได้ทั้งหมด โดยใช้ AWS CloudFormation (Infrastructure as Code)
  • ระบบการทำงานอัตโนมัติของ AWS ช่วยให้สามารถสร้างทรัพยากรต่างๆ ได้เร็วขึ้นและมีประสิทธิภาพมากขึ้น การใช้บริการของ AWS ช่วยให้สามารถปรับเปลี่ยนการทำงานหรือกระบวนการต่างๆ จากที่ต้องจัดการตัวตนเอง ก็จะแทนด้วยระบบอัตโนมัติได้ เช่น การปรับใช้ การพัฒนา การทดสอบขั้นตอนการทำงาน การจัดการคอนเทนเนอร์ และการจัดการการกำหนดค่าตามความต้องการทางธุรกิจ
  • มีปลอดภัยสูง โดยใช้ AWS Identity and Access Management (IAM) เพื่อตั้งค่าสิทธิ์และนโยบายของผู้ใช้ สิ่งนี้จะช่วยให้สามารถควบคุมผู้ที่จะเข้าถึงทรัพยากรต่างๆ และวิธีการเข้าถึงทรัพยากรเหล่านั้นได้อย่างละเอียด และสามารถตรวจสอบได้
  • มีระบบนิเวศของคู่ค้าขนาดใหญ่ AWS สนับสนุนระบบนิเวศของคู่ค้าขนาดใหญ่ที่ผสานรวมกันและขยายบริการของ AWS โดยใช้เครื่องมือร่วมกับบริษัทอื่นได้ และเครื่องมือ Opensource กับ AWS เพื่อสร้างโซลูชันให้ครอบคลุมกับความต้องการทางธุรกิจ
  • ค่าบริการคิดตามการใช้งานจริง เนื่องด้วยบริการของ AWS สามารถวางแผนได้ และคิดค่าบริการในช่วงเวลาที่จะใช้บริการเท่านั้น การกำหนดราคาของ AWS จะไม่มีการคิดค่าธรรมเนียมล่วงหน้า หรือไม่มีค่าปรับเมื่อยกเลิกการใช้งาน

AWS DevOps CI/CD Tools


AWS CodePipeline เป็นตัวจัดการตั้งแต่ CodeCommit, CodeBuild, CodeDeploy สำหรับแต่ละแอปพลิเคชันที่มีการเปลี่ยนแปลงบ่อยๆ เพื่อให้มีการทำงานได้อย่างต่อเนื่อง และมีประสิทธิภาพมากยิ่งขึ้น  โดยสามารถทำงานร่วมกับผู้ให้บริการอื่นได้ เช่น Github หรือ Bitbucket เป็นต้น เป็นบริการการผสมผสานรวมกันและการส่งมอบอย่างต่อเนื่องสำหรับการอัปเดตแอปพลิเคชันและโครงสร้างพื้นฐานที่รวดเร็วและเชื่อถือได้ โดย CodePipeline ช่วยสร้าง ทดสอบ และปรับใช้ source code โดยขึ้นอยู่กับโมเดลกระบวนการตามที่เรากำหนด ซึ่งช่วยให้สามารถส่งมอบแอปพลิเคชันและการอัปเดตต่างๆ ได้อย่างรวดเร็วและมีความน่าเชื่อถือมากที่สุด

AWS CodeCommit เป็น Private Repository ในการเก็บซอร์สโค้ด คล้ายๆกับ Github Repository ที่เป็นแบบ Control System (VCS) สามารถแบ่งเป็น Branch ในแต่ละส่วนของ Production, SIT, UAT environment ได้หลายๆ เวอร์ชันสามารถกำหนดสิทธิ์ด้วย AWS IAM สามารถทำงานร่วมกับ CloudWatch Event, SNS, KMS ในการทำการเข้ารหัส มี Highly Available เนื่องจากมีพื้นฐานมาจากบริการของ AWS S3 โดย AWS CodeCommit สามารควบคุมแหล่งที่มาที่มีการจัดการเต็มรูปแบบซึ่งช่วยทำให้งานต่างๆ ง่ายขึ้นสำหรับองค์กรที่จะทำการโฮสต์พื้นที่จัดเก็บ Git แบบส่วนตัวที่ต้องการความปลอดภัยและปรับขนาดได้

AWS CodeBuild จะนำ source code มาทำการรวบรวมและสามารถทำการทดสอบได้ ก่อนจะเริ่มดำเนินการในขั้นตอนถัดไป  ถ้าหากตรวจพบเจอข้อผิดพลาดเกิดขึ้น ก็จะทำการหยุดเพื่อตรวจสอบและแก้ไขปัญหา เมื่อทำงานได้ตามปกติแล้ว จึงจะดำเนินการต่อในส่วนของการ Deploy ซึ่งสามารถทำงานร่วมกับ CloudWatch Event, Jenkins, Gitlab, Bamboo, Circle CI, Travis ได้  โดย AWS CodeBuild เป็นบริการที่คอยประมวลผล source code ดำเนินการทดสอบ และผลิตแพคเกจซอฟต์แวร์ที่พร้อมนำไปปรับใช้ โดยไม่จำเป็นต้องจัดเตรียม จัดการ หรือปรับขนาดของเซิร์ฟเวอร์  ซึ่ง CodeBuild จะปรับขนาดให้เองโดยอัตโนมัติ และประมวลผลหลายรายการพร้อมกันได้ จึงทำให้ไม่ต้องรอคิว

AWS CodeDeploy หลังจากที่มีการประมวลผลซอร์สโค้ด ดำเนินการทดสอบ และผลิตแพคเกจซอฟต์แวร์ เรียบร้อยแล้ว ในส่วนของ CodeDeploy จะนำไปปรับใช้บนทรัพยากรปลายทาง เช่น ECS, Amazon EC2 หรือ Fargate, Lambda รวมถึงเครื่องเซิร์ฟเวอร์แบบ On-Premise ก็สามารถทำการติดตั้งได้เช่นกัน โดยมีหลากหลายกลยุทธ์ในการ Deploy อาทิเช่น  Blue/Green, Canary, Linear Deployment ทำให้การปรับใช้โค้ดกับ instance ใดๆ เป็นแบบอัตโนมัติ ได้อย่างรวดเร็วและง่ายดาย สามารถหลีกเลี่ยงการหยุดทำงานระหว่างการปรับใช้แอปพลิเคชัน และจัดการการอัปเดตแอปพลิเคชันที่ซับซ้อนได้  

AWS CloudWatch เป็นบริการเฝ้าติดตามทรัพยากรบน AWS Cloud และแอปพลิเคชันที่ใช้งานบน AWS โดยมุ่งเน้นในส่วนของ Infrastructure ช่วยงานฝั่งทีมงาน Operation สามารถดู Resource, Performance, Utilization, และ Error Code และยังสามารถใช้ Amazon CloudWatch เก็บรวบรวมและติดตามตัววัด เก็บรวบรวมและดูแลไฟล์บันทึก ตั้งค่าสัญญาณเตือน และตอบสนองกับการเปลี่ยนแปลงในทรัพยากรบน AWS โดยอัตโนมัติ

AWS X-Ray ตัวช่วยของทีมงาน Developer ในการวิเคราะห์และแก้จุดบกพร่องของการผลิตผลิตภัณฑ์ โดยสามารถวิเคราะห์ให้ลึกลงไปในส่วนของแอปพลิเคชันได้ สามารถทำ  MAP Hierarchy ว่าแต่ละแอปพลิเคชัน มีอะไรเชื่อมต่อกับอะไรบ้าง จาก Frontend มา Backend ทำให้สามารถมองเห็นสถานะได้ทั้งหมดตั้งแต่ต้นทางไปจนถึงปลายทาง ทำให้สามารถแก้ไขปัญหาได้ตรงจุด อย่างรวดเร็วและทันท่วงที เช่น แอปพลิเคชันที่สร้างโดยใช้สถาปัตยกรรม microservice ด้วยความสามารถของ AWS X-Ray จะเข้าใจวิธีที่แอปพลิเคชันและบริการพื้นฐานทำงานเป็นอย่างไร ทำให้สามารถระบุและแก้ไขสาเหตุของปัญหาและข้อบกพร่องได้อย่างมีประสิทธิภาพ

Amazon Code Guru คือบริการที่ขับเคลื่อนโดย machine learning (ML) เข้ามาช่วยตรวจเช็คและ Optimize source code พร้อมกับช่วยแนะนำโดยใช้ ML ช่วยในการตรวจสอบ เพื่อเพิ่มประสิทธิภาพในการเขียนโค้ดที่ออกแบบมา ให้สามารถปรับปรุงการดำเนินงาน และความพร้อมใช้งานของแอปพลิเคชันได้ง่าย ก่อนที่จะส่งผลกระทบต่อลูกค้า

AWS CloudFormation คือระบบการสร้างทรัพยากรอัตโนมัติ ด้วย command line ของ JSON หรือ YAML ทำให้การติดตั้งมีความรวดเร็ว ลดข้อผิดพลาดจากการติดตั้งด้วยตนเอง รวมทั้งสามารถติดตั้งได้ในหลายๆ region โดยใช้สคริปต์ที่ทำขึ้นมาเพียงครั้งเดียว สามารถทำซ้ำได้หลายครั้ง และสามารถลบทรัพยากรได้แบบอัตโนมัติ ทำให้สามารถควบคุมทรัพยากรได้อย่างมีประสิทธิภาพมากยิ่งขึ้น ช่วยให้ทีมงาน Developer และผู้ดูแลระบบมีวิธีง่ายๆ ในการสร้างและจัดการทรัพยากรบน AWS รวมถึงเข้ามาช่วยให้สามารถจัดเตรียม และอัปเดตในรูปแบบที่เป็นลำดับขั้นตอน และสามารถคาดการณ์ได้ นอกจากนี้ยังสามารถใช้ AWS CloudFormation จากตัวอย่างที่ AWS เตรียมไว้ให้ หรือสร้างขึ้นมาเองได้ตามความต้องการทางธุรกิจ


บทความโดย: นิรันดร์ โสหินกอง Professional Service Manager, True IDC

ข้อมูลเพิ่มเติม:  https://aws.amazon.com/devops/

ก่อนหน้า