DevOps Engineer VS SRE มีความแตกต่างกันอย่างไร?

สวัสดีครับ เพื่อน ๆ ชาว IT กลับมาพบกันอีกครั้งนะครับ สำหรับ Blog ในเดือนกุมภาพันธ์ 2021 หลังจากที่เราอ่าน Blog เกี่ยวกับเทคนิคกันไปค่อนข้างเยอะแล้ว วันนี้ผมจะมาเล่าเกี่ยวกับอาชีพในสายงาน IT กันบ้างดีกว่า วันนี้เราจะเจาะลึกกันว่า DevOps กับ Site Reliability Engineer (SRE) เค้าทำหน้าที่เหมือนกัน หรือ แตกต่างกันอย่างไรนะครับ
DevOps และ SRE ทั้ง 2 ตำแหน่งนี้จะรับผิดชอบงานที่เกี่ยวข้องกับการพัฒนา Software ครับ ซึ่งจะค่อนข้างมีหน้าที่ที่คล้ายคลึงกัน เรามาดูในส่วนของ DevOps Engineer กันก่อนครับ


DevOps Engineer คืออะไร?


คำว่า DevOps  คือการเอาคำ 2 คำ มาผสมกันระหว่าง Dev ที่มาจากคำว่า Development และ Ops มาจากคำว่า Operations ดังนั้น DevOps Engineer จะเป็นตำแหน่งที่มีความสามารถในการ Coding และสามารถทำงานด้าน Operations ได้เช่นกันครับ


ความสามารถที่ต้องมีในการจะเป็น DevOps Engineer

  • มีความรู้และความเชี่ยวชาญหลากหลายแบบเกี่ยวกับ Operations และ Automation tools ต่าง ๆ
  • สามารถเขียน Script ได้
  • รับมือกับการ Test เพื่อทดสอบและแก้ไขงานบ่อย ๆ ได้
  • เข้าใจจุดประสงค์ของการทำ Operation และรู้ว่าตัวเองควรจะอยู่จุดไหนของการออกแบบและการพัฒนางาน
  • มี Soft Skills ในการทำงานร่วมกับทีมอื่น ๆ

Site Reliability Engineer (SRE) คืออะไร?

SRE คือตำแหน่งที่มีหน้าที่ในการนำความสามารถเกี่ยวกับ Software Engineering ไปปรับใช้กับปัญหาทางด้าน IT Operations ต่าง ๆ จุดประสงค์หลักของตำแหน่งนี้คือ สร้างระบบ Software ที่สามารถ Scale ได้และทนทานต่อการใช้งานทุกสถานการณ์

ความสามารถที่ต้องมีในการจะเป็น SRE

  • มีความสามารถในการรับมือกับปัญหาที่เกิดโดยไม่คาดคิดและแก้ไขได้
  • มีทักษะในการประเมินช่องทางการใช้งานใหม่ ๆ รวมไปถึงการทำ Capacity Planning
  • มีใจในการทำงานด้าน Operation, การ Monitor และรับมือกับระบบการแจ้งเตือนที่จะเข้ามาตลอดเวลาที่เกิดปัญหา
  • มีความรู้และประสบการณ์ในการสร้างและพัฒนาการดำเนินการแบบ Automation เพื่อช่วยเหลือทีมงานอื่น ๆ ภายในบริษัท
  • สามารถบอกทีมงานได้ว่าเราขาดอะไรและควรจะทำอะไร

เราพอจะทราบหน้าที่และความสามารถที่ต้องมีสำหรับทั้ง 2 ตำแหน่งกันไปแล้ว ต่อมาเรามาดูความแตกต่างกันครับ

ความแตกต่างระหว่าง DevOps และ SRE มีอะไรบ้าง?

  1. จริง ๆ แล้ว DevOps ไม่ได้เป็นตำแหน่งเฉพาะของคนใดคนหนึ่งในองค์กร ควรจะมองให้เป็นการทำงานแบบทีมมากกว่า อย่างไรก็ตามการที่จะทำ DevOps ได้ เราต้องใช้ Tools เข้ามาช่วย ในขณะที่ SRE จะทำหน้าที่ในการสร้างและดูแลให้ระบบมีความพร้อมใช้งานตลอดเวลา หน้าที่นี้จะถือว่าเป็นความผิดชอบกับคนที่มีความเป็นมืออาชีพในด้าน Software
  2. SRE ก็สามารถเรียนรู้การทำ DevOps ได้ บางครั้งตำแหน่ง DevOps Engineer เป็นเพียงแค่ชื่อตำแหน่งที่ใช้ในการจ้าง Sysadmins เฉย ๆ ในขณะที่ DevOps จะ Focus ไปที่ส่วนที่เป็น Automation แต่  SRE จะ Focus ไปส่วนอื่นมากกว่า เช่น ความพร้อมใช้ของระบบ, การ Monitor และการ Scale
  3. DevOps Engineer ควรจะต้องเข้าใจเรื่องของ SDLC (Software Development Life Cycle) เป็นอย่างดีและต้องลงมือปฏิบัติจริงได้เพื่อช่วยในการพัฒนาระบบขององค์กร ซึ่งความสามารถที่ว่าจะต้องใช้ประสบการณ์ในการทำงานด้าน Sysadmin และ Developer  มาเกี่ยวข้องทำให้ผลลัพธ์ที่ได้ออกมาเป็นระบบที่มีการเขียน Code ที่ดี แต่งานของ SRE จะเป็นการทอย่างไรก็ได้ให้ระบบสามารถทำงานได้เป็นปกติทุกสถานการณ์
  4. DevOps มีหน้าที่ทำให้ Developer สามารถทำงานได้ง่ายขึ้น ซึ่งน้อยคนที่จะสามารถทำได้เพราะต้องใช้ความสามารถของ Software Engineer, System Engineer, Architect และประสบการณ์ในการทำงาน สำหรับ SRE จะต้อง Monitor Application หรือระบบหลังจากที่ Deploy ไปแล้ว โดยการใช้ Automation tools เข้ามาช่วยในการ Monitor ระบบให้พร้อมใช้อยู่เสมอ ซึ่งจะเป็นหน้าที่หลังจากที่ Software Developer เขียน Code เรียบร้อยแล้ว

ถึงแม้ว่า DevOps และ SRE จะมีบางส่วนที่ทำงานคล้ายกันแต่ความจริงแล้วก็ขึ้นอยู่กับว่าแต่ละองค์กรจะให้คำนิยามของตำแหน่งอย่างไร ตำแหน่งกับชื่ออาจจะปรับเปลี่ยนได้แต่สิ่งที่จำเป็นต้องมีเลยคือความสามารถนั่นเอง สุดท้ายแล้ว Solution และเทคโนโลยีก็จะเปลี่ยนแปลงไปเรื่อยในทุก ๆ วัน ประสบการณ์และการเรียนสำคัญมากกับการทำทุกสิ่งอย่างครับ
เป็นอย่างไรกันบ้างสำหรับการเปรียบเทียบของ DevOps และ SRE หวังว่าจะเป็นประโยชน์ต่อชาว IT นะครับ ขอบคุณทุกท่านที่ติดตามกันนะครับ

— Cloud HM