เหตุใด DevOps จึงจำเป็นและใครคือผู้เชี่ยวชาญ DevOps

เมื่อแอปพลิเคชันใช้งานไม่ได้ สิ่งสุดท้ายที่คุณอยากได้ยินจากเพื่อนร่วมงานคือวลี “ปัญหาอยู่ฝั่งคุณ” เป็นผลให้ผู้ใช้ต้องทนทุกข์ทรมาน - และพวกเขาไม่สนใจว่าส่วนใดของทีมที่รับผิดชอบต่อการพัง วัฒนธรรม DevOps เกิดขึ้นอย่างชัดเจนเพื่อนำการพัฒนาและการสนับสนุนมารวมกันโดยมีความรับผิดชอบร่วมกันสำหรับผลิตภัณฑ์ขั้นสุดท้าย

แนวปฏิบัติใดบ้างที่รวมอยู่ในแนวคิดของ DevOps และเหตุใดจึงมีความจำเป็น วิศวกร DevOps ทำอะไรและพวกเขาควรทำอะไรได้บ้าง? ผู้เชี่ยวชาญจาก EPAM ตอบคำถามเหล่านี้และคำถามอื่นๆ: Kirill Sergeev วิศวกรระบบและผู้เผยแพร่ DevOps และ Igor Boyko วิศวกรระบบชั้นนำและผู้ประสานงานของทีม DevOps หนึ่งในบริษัท

เหตุใด DevOps จึงจำเป็นและใครคือผู้เชี่ยวชาญ DevOps

เหตุใด DevOps จึงจำเป็น?

ก่อนหน้านี้ มีสิ่งกีดขวางระหว่างนักพัฒนาและฝ่ายสนับสนุน (ที่เรียกว่าการดำเนินการ) ฟังดูขัดแย้งกัน แต่พวกเขามีเป้าหมายและ KPI ที่แตกต่างกัน แม้ว่าพวกเขาจะทำสิ่งเดียวกันก็ตาม เป้าหมายของการพัฒนาคือการนำข้อกำหนดทางธุรกิจไปใช้โดยเร็วที่สุดและเพิ่มลงในผลิตภัณฑ์ที่ใช้งานได้ ฝ่ายสนับสนุนมีหน้าที่รับผิดชอบในการตรวจสอบให้แน่ใจว่าแอปพลิเคชันทำงานได้อย่างเสถียร และการเปลี่ยนแปลงใดๆ ก็ตามอาจทำให้เสถียรภาพตกอยู่ในความเสี่ยง มีความขัดแย้งทางผลประโยชน์ - DevOps ดูเหมือนจะแก้ไขได้

DevOps คืออะไร?

เป็นคำถามที่ดี และยังเป็นข้อถกเถียงอยู่ว่าในที่สุดโลกก็ยังไม่เห็นด้วยกับเรื่องนี้ EPAM เชื่อว่า DevOps ผสมผสานเทคโนโลยี กระบวนการ และวัฒนธรรมของการมีปฏิสัมพันธ์ภายในทีม สมาคมนี้มีจุดมุ่งหมายเพื่อส่งมอบคุณค่าให้กับผู้ใช้อย่างต่อเนื่อง

คิริลล์ เซอร์เกฟ: “นักพัฒนาเขียนโค้ด ผู้ทดสอบตรวจสอบ และผู้ดูแลระบบปรับใช้ผลิตภัณฑ์ขั้นสุดท้ายเพื่อการใช้งานจริง เป็นเวลานานที่ส่วนต่างๆ ของทีมเหล่านี้ค่อนข้างกระจัดกระจาย และจากนั้นก็มีแนวคิดที่จะรวมพวกเขาเข้าด้วยกันผ่านกระบวนการทั่วไป นี่คือลักษณะที่แนวทางปฏิบัติของ DevOps ปรากฏขึ้น”

วันนั้นมาถึงเมื่อนักพัฒนาและวิศวกรระบบเริ่มสนใจงานของกันและกัน อุปสรรคระหว่างการผลิตและการสนับสนุนเริ่มหายไป นี่คือวิธีที่ DevOps เกิดขึ้น ซึ่งรวมถึงแนวทางปฏิบัติ วัฒนธรรม และปฏิสัมพันธ์ในทีม

เหตุใด DevOps จึงจำเป็นและใครคือผู้เชี่ยวชาญ DevOps

สาระสำคัญของวัฒนธรรม DevOps คืออะไร?

ความจริงก็คือความรับผิดชอบต่อผลลัพธ์สุดท้ายนั้นขึ้นอยู่กับสมาชิกในทีมแต่ละคน สิ่งที่น่าสนใจและยากที่สุดในปรัชญา DevOps คือการเข้าใจว่าบุคคลใดบุคคลหนึ่งไม่ได้รับผิดชอบเฉพาะขั้นตอนการทำงานของตนเองเท่านั้น แต่ยังต้องรับผิดชอบต่อวิธีการทำงานของผลิตภัณฑ์ทั้งหมดด้วย ปัญหาไม่ได้อยู่ที่ใคร แต่เป็นปัญหาร่วมกัน และสมาชิกในทีมแต่ละคนก็ช่วยกันแก้ไข

สิ่งที่สำคัญที่สุดในวัฒนธรรม DevOps คือการแก้ปัญหา ไม่ใช่แค่ใช้แนวทางปฏิบัติของ DevOps เท่านั้น ยิ่งไปกว่านั้น แนวทางปฏิบัติเหล่านี้ไม่ได้ถูกนำมาใช้ "กับใครบางคน" แต่รวมถึงผลิตภัณฑ์ทั้งหมด โปรเจ็กต์ไม่ต้องการวิศวกร DevOps เพียงอย่างเดียว แต่จำเป็นต้องมีวิธีแก้ไขปัญหา และบทบาทของวิศวกร DevOps สามารถแบ่งให้กับสมาชิกในทีมหลายคนที่มีความเชี่ยวชาญต่างกันได้

แนวทางปฏิบัติ DevOps ประเภทใดบ้าง

แนวปฏิบัติ DevOps ครอบคลุมทุกขั้นตอนของวงจรชีวิตซอฟต์แวร์

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

ต่อไปเราจะเข้าสู่ขั้นตอนการพัฒนา แนวทางปฏิบัติที่ใหญ่ที่สุดประการหนึ่งที่นี่คือการสร้าง CI/CD: คุณต้องช่วยให้นักพัฒนารวมการเปลี่ยนแปลงเข้ากับผลิตภัณฑ์ได้อย่างรวดเร็ว ในส่วนเล็กๆ บ่อยขึ้นและไม่ลำบาก CI/CD ครอบคลุมถึงการตรวจสอบโค้ด การอัปโหลดต้นแบบไปยังฐานโค้ด และการปรับใช้แอปพลิเคชันเพื่อทดสอบและสภาพแวดล้อมการใช้งานจริง

ในขั้นตอน CI/CD รหัสจะผ่านประตูคุณภาพ ด้วยความช่วยเหลือของพวกเขา พวกเขาตรวจสอบว่าโค้ดที่ออกมาจากเวิร์กสเตชันของนักพัฒนานั้นตรงตามเกณฑ์คุณภาพที่ระบุ เพิ่มการทดสอบหน่วยและ UI ที่นี่ เพื่อการปรับใช้ผลิตภัณฑ์ที่รวดเร็ว ไม่เจ็บปวด และมุ่งเน้น คุณสามารถเลือกประเภทการใช้งานที่เหมาะสมได้

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

แนวทางปฏิบัติ DevOps มีประโยชน์อย่างไร?

หากเรากำลังเขียนตำราเรียนเกี่ยวกับแนวปฏิบัติ DevOps สมัยใหม่ จะมีประเด็นสามประการในหน้าแรก: ระบบอัตโนมัติ การเร่งการเผยแพร่ และการตอบรับอย่างรวดเร็วจากผู้ใช้

คิริลล์ เซอร์เกฟ: “สิ่งแรกคือระบบอัตโนมัติ เราสามารถทำให้การโต้ตอบทั้งหมดในทีมเป็นไปโดยอัตโนมัติ: เขียนโค้ด - ใช้งาน - ตรวจสอบ - ติดตั้ง - รวบรวมข้อเสนอแนะ - กลับสู่จุดเริ่มต้น ทั้งหมดนี้เป็นไปโดยอัตโนมัติ

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

ประการที่สามคือการเร่งความคิดเห็นของผู้ใช้ หากเขามีความคิดเห็นเราก็สามารถปรับเปลี่ยนและอัพเดตแอพพลิเคชั่นได้ทันที”

เหตุใด DevOps จึงจำเป็นและใครคือผู้เชี่ยวชาญ DevOps

แนวคิดของ “วิศวกรระบบ”, “วิศวกรสร้าง” และ “วิศวกร DevOps” เกี่ยวข้องกันอย่างไร

พวกมันทับซ้อนกัน แต่อยู่ในพื้นที่ที่แตกต่างกันเล็กน้อย

วิศวกรระบบที่ EPAM ดำรงตำแหน่ง พวกเขามาในระดับที่แตกต่างกัน: จากรุ่นน้องไปจนถึงหัวหน้าผู้เชี่ยวชาญ

วิศวกรด้านการสร้างมีบทบาทที่สามารถทำได้ในโครงการมากกว่า นี่คือสิ่งที่เรียกว่าผู้รับผิดชอบ CI/CD

วิศวกร DevOps เป็นผู้เชี่ยวชาญที่ใช้แนวทางปฏิบัติ DevOps ในโครงการ

หากเราสรุปทั้งหมด เราจะได้สิ่งนี้: บุคคลที่ดำรงตำแหน่งวิศวกรระบบมีบทบาทเป็นวิศวกรสร้างในโครงการและมีส่วนร่วมในการนำแนวทางปฏิบัติ DevOps ไปใช้ที่นั่น

วิศวกร DevOps ทำอะไรกันแน่?

วิศวกร DevOps รวบรวมชิ้นส่วนทั้งหมดที่ประกอบกันเป็นโปรเจ็กต์ พวกเขารู้ถึงลักษณะเฉพาะของงานของโปรแกรมเมอร์ ผู้ทดสอบ ผู้ดูแลระบบ และช่วยให้งานของพวกเขาง่ายขึ้น พวกเขาเข้าใจความต้องการและข้อกำหนดของธุรกิจ บทบาทในกระบวนการพัฒนา และสร้างกระบวนการโดยคำนึงถึงผลประโยชน์ของลูกค้า

เราได้พูดคุยกันมากมายเกี่ยวกับระบบอัตโนมัติ - นี่คือสิ่งที่วิศวกร DevOps จัดการเป็นอันดับแรกและสำคัญที่สุด นี่เป็นจุดใหญ่มาก ซึ่งรวมถึงการเตรียมสภาพแวดล้อมด้วย

คิริลล์ เซอร์เกฟ: “ก่อนที่จะใช้การอัปเดตกับผลิตภัณฑ์ จะต้องได้รับการทดสอบในสภาพแวดล้อมของบุคคลที่สาม จัดทำโดยวิศวกร DevOps พวกเขาปลูกฝังวัฒนธรรม DevOps ให้กับโปรเจ็กต์โดยรวม: พวกเขาแนะนำแนวทางปฏิบัติ DevOps ในทุกเลเยอร์ของโปรเจ็กต์ของพวกเขา หลักการสามประการนี้: ระบบอัตโนมัติ ลดความซับซ้อน การเร่งความเร็ว - สิ่งเหล่านี้จะนำพาไปทุกที่ที่สามารถเข้าถึงได้”

วิศวกร DevOps ควรรู้อะไรบ้าง

โดยทั่วไปแล้ว เขาจะต้องมีความรู้จากสาขาต่างๆ เช่น การเขียนโปรแกรม การทำงานกับระบบปฏิบัติการ ฐานข้อมูล ระบบการประกอบและการกำหนดค่า สิ่งเหล่านี้เสริมด้วยความสามารถในการทำงานกับโครงสร้างพื้นฐานคลาวด์ ระบบการจัดการและการตรวจสอบ

1. ภาษาโปรแกรม

วิศวกร DevOps รู้ภาษาพื้นฐานหลายภาษาสำหรับระบบอัตโนมัติและสามารถบอกโปรแกรมเมอร์ได้: "แล้วคุณติดตั้งโค้ดที่ไม่ใช้ด้วยมือ แต่ใช้สคริปต์ของเราซึ่งทำให้ทุกอย่างเป็นอัตโนมัติ? เราจะเตรียมไฟล์กำหนดค่าให้ จะสะดวกสำหรับทั้งคุณและเราในการอ่าน และเราจะสามารถเปลี่ยนแปลงได้ตลอดเวลา นอกจากนี้เรายังจะเห็นว่าใคร เมื่อใด และเพราะเหตุใดจึงทำการเปลี่ยนแปลง”

วิศวกร DevOps สามารถเรียนรู้ภาษาเหล่านี้ได้ตั้งแต่หนึ่งภาษาขึ้นไป: Python, Groovy, Bash, Powershell, Ruby, Go ไม่จำเป็นต้องรู้ในระดับลึก - พื้นฐานของไวยากรณ์หลักการ OOP และความสามารถในการเขียนสคริปต์อย่างง่ายสำหรับระบบอัตโนมัติก็เพียงพอแล้ว

2. ระบบปฏิบัติการ

วิศวกร DevOps จะต้องเข้าใจว่าผลิตภัณฑ์จะติดตั้งบนเซิร์ฟเวอร์ใด สภาพแวดล้อมใดที่จะรัน และบริการใดบ้างที่ผลิตภัณฑ์จะโต้ตอบ คุณสามารถเลือกมีความเชี่ยวชาญใน Windows หรือตระกูล Linux

3. ระบบควบคุมเวอร์ชัน

หากไม่มีความรู้เกี่ยวกับระบบควบคุมเวอร์ชัน วิศวกร DevOps ก็ไม่มีที่ไหนเลย Git เป็นหนึ่งในระบบที่ได้รับความนิยมมากที่สุดในขณะนี้

4. ผู้ให้บริการคลาวด์

AWS, Google, Azure - โดยเฉพาะอย่างยิ่งหากเรากำลังพูดถึงทิศทางของ Windows

คิริลล์ เซอร์เกฟ: “ผู้ให้บริการคลาวด์มอบเซิร์ฟเวอร์เสมือนที่เหมาะกับ CI/CD อย่างสมบูรณ์แบบ

การติดตั้งฟิสิคัลเซิร์ฟเวอร์ XNUMX เซิร์ฟเวอร์ต้องใช้การดำเนินการด้วยตนเองประมาณ XNUMX รายการ แต่ละเซิร์ฟเวอร์จะต้องเปิดใช้งาน ติดตั้ง และกำหนดค่าระบบปฏิบัติการที่จำเป็นด้วยตนเอง ติดตั้งแอปพลิเคชันของเราบนเซิร์ฟเวอร์ทั้ง XNUMX ตัวนี้ จากนั้นตรวจสอบทุกอย่างอีกครั้งสิบครั้ง บริการคลาวด์แทนที่ขั้นตอนนี้ด้วยโค้ดสิบบรรทัด และวิศวกร DevOps ที่ดีควรจะสามารถดำเนินการกับบริการเหล่านั้นได้ ซึ่งช่วยประหยัดเวลา ความพยายาม และเงิน ทั้งสำหรับลูกค้าและบริษัท”

5. ระบบออร์เคสตรา: Docker และ Kubernetes

คิริลล์ เซอร์เกฟ: “เซิร์ฟเวอร์เสมือนแบ่งออกเป็นคอนเทนเนอร์ ซึ่งแต่ละเซิร์ฟเวอร์สามารถติดตั้งแอปพลิเคชันของเราได้ เมื่อมีคอนเทนเนอร์จำนวนมาก คุณต้องจัดการคอนเทนเนอร์เหล่านี้: เปิดคอนเทนเนอร์หนึ่ง ปิดอีกคอนเทนเนอร์หนึ่ง ทำการสำรองข้อมูลที่ไหนสักแห่ง สิ่งนี้ค่อนข้างซับซ้อนและต้องใช้ระบบออร์เคสตรา

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

6. ระบบการกำหนดค่า: Chef, Ansible, Puppet

เมื่อคุณต้องการดูแลรักษาเซิร์ฟเวอร์ทั้งหมด คุณจะต้องดำเนินการประเภทเดียวกันหลายอย่าง ใช้เวลานานและยาก และการทำงานด้วยตนเองยังเพิ่มโอกาสที่จะเกิดข้อผิดพลาดอีกด้วย นี่คือจุดที่ระบบการกำหนดค่าเข้ามาช่วยเหลือ ด้วยความช่วยเหลือของพวกเขา พวกเขาสร้างสคริปต์ที่อ่านง่ายสำหรับโปรแกรมเมอร์ วิศวกร DevOps และผู้ดูแลระบบ สคริปต์นี้ช่วยในการดำเนินการเดียวกันบนเซิร์ฟเวอร์โดยอัตโนมัติ ซึ่งจะช่วยลดการดำเนินการด้วยตนเอง (และทำให้เกิดข้อผิดพลาด)

วิศวกร DevOps สามารถสร้างอาชีพประเภทใดได้บ้าง

คุณสามารถพัฒนาได้ทั้งแนวนอนและแนวตั้ง

อิกอร์ บอยโก้: “จากมุมมองของการพัฒนาในแนวนอน วิศวกร DevOps มีแนวโน้มที่กว้างที่สุด ทุกอย่างเปลี่ยนแปลงอยู่ตลอดเวลา และคุณสามารถสร้างทักษะได้ในด้านต่างๆ ตั้งแต่ระบบควบคุมเวอร์ชันไปจนถึงการตรวจสอบ จากการจัดการการกำหนดค่าไปจนถึงฐานข้อมูล

คุณสามารถเป็นสถาปนิกระบบได้หากพนักงานสนใจที่จะทำความเข้าใจวิธีการทำงานของแอปพลิเคชันในทุกขั้นตอนของวงจรชีวิต ตั้งแต่การพัฒนาไปจนถึงการสนับสนุน”

จะเป็นวิศวกร DevOps ได้อย่างไร

  1. อ่านคู่มือ Phoenix Project และ DevOps สิ่งเหล่านี้คือเสาหลักที่แท้จริงของปรัชญา DevOps โดยส่วนแรกนั้นเป็นงานแต่ง
  2. เรียนรู้เทคโนโลยีจากรายการด้านบน: ด้วยตัวคุณเองหรือผ่านหลักสูตรออนไลน์
  3. เข้าร่วมเป็นวิศวกร DevOps สำหรับโครงการโอเพ่นซอร์ส
  4. ฝึกฝนและเสนอแนวทางปฏิบัติ DevOps ในโครงการส่วนตัวและงานของคุณ

ที่มา: will.com

เพิ่มความคิดเห็น