46 คำถามและคำตอบสัมภาษณ์ DevOps ที่พบบ่อย [2023]

ต้องการทราบว่าจะถามคำถามอะไรระหว่างการสัมภาษณ์ DevOps ครั้งต่อไปของคุณหรือไม่ เริ่มต้นใช้งานด้วยคู่มือที่มีประโยชน์ของเรา

คำว่า DevOps ถูกบัญญัติขึ้นในปี 2550-2551 แต่ปัจจุบันกลายเป็นหนึ่งในอาชีพที่ได้รับความนิยมมากที่สุดในวิศวกรรมซอฟต์แวร์ DevOps เป็นการเปลี่ยนแปลงทางวัฒนธรรมที่สัมผัสทุกแง่มุมของการพัฒนาและการดำเนินงาน

ทั้งสองทีม (การพัฒนาและการดำเนินงาน) ทำงานร่วมกันตั้งแต่การวางแผนและการสร้างไปจนถึงการตรวจสอบและทำซ้ำ คำถามเหล่านี้เป็นคำถามที่พบบ่อยที่สุดที่คุณน่าจะเจอหากคุณต้องการตำแหน่งวิศวกร DevOps

สารบัญ

DevOps คืออะไร?

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

อะไรคือขั้นตอนต่างๆ ในระเบียบวิธี DevOps

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

DevOps มีประโยชน์อย่างไร?

  • ส่งสินค้าได้เร็วและดียิ่งขึ้น
  • ความสามารถในการปรับขนาดที่มากขึ้น
  • การแก้ไขปัญหาที่รวดเร็ว
  • การใช้ทรัพยากรที่ดีขึ้น

ตั้งชื่อ KPI ของ DevOps

  • ความถี่ในการปรับใช้
  • เปลี่ยนระดับเสียง
  • เวลาปรับใช้
  • อัตราการปรับใช้ที่ล้มเหลว
  • การตรวจจับเวลา
  • อัตราการหลบหนีของข้อบกพร่อง

ความแตกต่างระหว่าง DevOps และ Agile

DevOps เป็นวัฒนธรรมที่ส่งเสริมการทำงานร่วมกันระหว่างสมาชิกในทีมทั้งหมดที่เกี่ยวข้องกับการพัฒนาและบำรุงรักษาซอฟต์แวร์

  หลักสูตรและการรับรองการเปลี่ยนแปลงทางดิจิทัล 10 หลักสูตรเพื่อก้าวสู่อาชีพการงานของคุณ

Agile เป็นวิธีการพัฒนาที่ออกแบบมาเพื่อทำให้ทีมมีประสิทธิผลและขับเคลื่อนการเปิดตัวตามความต้องการที่เปลี่ยนแปลง

AWS มีบทบาทอย่างไรใน DevOps

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

การใช้ SSH คืออะไร?

SSH (Secure Shell) เป็นโปรโตคอลที่อนุญาตการเชื่อมต่อที่ปลอดภัยระหว่างคอมพิวเตอร์เครื่องต่างๆ SSH ให้บริการตามวัตถุประสงค์ที่แตกต่างกัน เช่น การเสนอขาย; การรับรองความถูกต้องที่แข็งแกร่ง การเข้ารหัสที่แข็งแกร่ง การรักษาความสมบูรณ์ของการเชื่อมต่อ การเชื่อมต่อที่แข็งแกร่ง และความปลอดภัย

การบูรณาการอย่างต่อเนื่องคืออะไร?

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

การจัดการการกำหนดค่าคืออะไร?

เป็นกระบวนการทางวิศวกรรมของระบบในการสร้างและรักษาความสอดคล้องของประสิทธิภาพและคุณสมบัติการทำงานและทางกายภาพของระบบ/ผลิตภัณฑ์ตลอดวงจรชีวิต

การทดสอบอย่างต่อเนื่องคืออะไร?

นี่คือการทดสอบแอปพลิเคชันที่กำหนดไว้ล่วงหน้าและอัตโนมัติเมื่อการพัฒนาดำเนินต่อไป

Git คืออะไร?

นี่เป็นเครื่องมือโอเพ่นซอร์สและฟรีสำหรับการจัดการซอร์สโค้ด เครื่องมือนี้ออกแบบมาเพื่อจัดการโครงการขนาดเล็กและใหญ่

กล่าวถึงคำสั่ง Git พื้นฐานบางคำสั่ง

git clone <https://name-of-the-repository-link>
git branch <branch-name>
git checkout <name-of-your-branch>
git add <file>
git commit -m "commit message"
git push <remote> <branch-name>
git pull <remote>

อธิบายความแตกต่างระหว่าง Git merge และ Git rebase

คำสั่งผสาน Git ช่วยให้ผู้พัฒนาสามารถผสานสาขา Git ต่างๆ ในขณะที่บันทึกการคอมมิตของสาขาที่เกี่ยวข้องยังคงอยู่

คำสั่ง Git rebase ช่วยให้นักพัฒนารวมการเปลี่ยนแปลงจากสาขาหนึ่งไปยังอีกสาขาหนึ่งได้ และบันทึกจะถูกเปลี่ยนเมื่อกระบวนการเสร็จสิ้น

อธิบายความแตกต่างระหว่าง Git fetch และ Git pull

Git fetch บอกให้ git ดึง/ตรวจสอบข้อมูลเมตาล่าสุดจากต้นฉบับ อย่างไรก็ตาม มันไม่ได้ถ่ายโอนไฟล์ใด ๆ แต่เพียงแค่ตรวจสอบ

Git ดึงการตรวจสอบและนำการเปลี่ยนแปลงจากที่เก็บระยะไกลไปยังโครงการในเครื่อง

ความขัดแย้งในการผสานคืออะไร?

ความขัดแย้งในการผสานเกิดขึ้นเมื่อคุณผสานสองสาขาเข้ากับคอมมิชชันที่แข่งขันกัน ความขัดแย้งในการผสานมักเกิดขึ้นเมื่อนักพัฒนาที่แตกต่างกันเปลี่ยนบรรทัดของรหัสหรือไฟล์เดียวกัน

การควบคุมเวอร์ชันคืออะไร และประเภทต่างๆ มีอะไรบ้าง

การควบคุมเวอร์ชัน (การควบคุมแหล่งที่มา) คือกระบวนการติดตามและจัดการการเปลี่ยนแปลงรหัสซอฟต์แวร์

นี่คือการควบคุมเวอร์ชันประเภทต่างๆ

  • รวมศูนย์– มีสำเนาซอร์สโค้ด “ส่วนกลาง” ชุดเดียวบนเซิร์ฟเวอร์ และการเปลี่ยนแปลงทั้งหมดจะกระทำกับสำเนา ‘ส่วนกลาง’ Subversion (SVN) และ Perforce เป็นตัวอย่างของการควบคุมเวอร์ชันแบบรวมศูนย์
  • แบบกระจาย (DVCS) – ไม่มีเซิร์ฟเวอร์กลางเพื่อจัดเก็บไฟล์ทั้งหมดของโครงการ Git และ Mercurial เป็นตัวอย่างของ DVCS

ประโยชน์ของการใช้การควบคุมเวอร์ชันคืออะไร?

  • ช่วยนักพัฒนารักษาประสิทธิภาพและความคล่องตัว
  • ให้บันทึกที่สมบูรณ์ของการเปลี่ยนแปลงทุกโครงการ/ไฟล์
  • ปรับปรุงการตรวจสอบย้อนกลับ
  • ช่วยในการจัดการการรวมและการแยกสาขา
  • เปิดใช้งานการทำงานร่วมกัน

การแตกแขนงคืออะไร?

การแตกแขนงหมายถึงการสร้างที่เก็บหลักแยกต่างหาก/เวอร์ชันใหม่ สาขาช่วยให้คุณสามารถทำงานในส่วนต่างๆ ของโครงการได้โดยไม่กระทบกับสาขาหลัก

กลยุทธ์การแตกสาขาคืออะไร?

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

การทดสอบอัตโนมัติคืออะไร และจะทำการทดสอบอัตโนมัติใน DevOps ได้อย่างไร

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

การทดสอบระบบอัตโนมัติทำได้โดยใช้เครื่องมือเช่น Selenium และ Katalon

Jenkinsfile คืออะไร

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

อธิบายสถาปัตยกรรมใน Jenkins

Jenkins มีสถาปัตยกรรมหลักและทาส ซึ่งหมายความว่ามี ‘ทาส’ จำนวนมากที่ทำงานให้กับ ‘นายคนเดียว’ Jenkins Distributed Build สามารถเรียกใช้การทดสอบที่เหมือนกันในสภาพแวดล้อมที่แตกต่างกัน โดยมีการรวบรวมผลลัพธ์และรวมกันบนโหนดหลักสำหรับการตรวจสอบ

  8 แอพ / เครื่องมือสแกนใบเสร็จรับเงินที่ดีที่สุดเพื่อติดตามค่าใช้จ่าย

ปลั๊กอิน Jenkins อันดับต้น ๆ คืออะไร?

  • ปลั๊กอิน Blue Ocean สำหรับเจนกินส์
  • ปลั๊กอิน Mailer สำหรับเจนกินส์
  • ปลั๊กอิน Git สำหรับเจนกินส์
  • ปลั๊กอิน Jira สำหรับเจนกินส์
  • ปลั๊กอินนักเทียบท่าสำหรับเจนกินส์
  • ปลั๊กอินการรวม Maven สำหรับ Jenkins
  • ปลั๊กอิน Kubernetes สำหรับ Jenkins
  • ปลั๊กอิน SonarQube สำหรับเจนกินส์
  • ปลั๊กอิน Amazon EC2 สำหรับ Jenkins

ซีลีเนียม IDE คืออะไร?

Selenium IDE เป็นเครื่องมือที่บันทึกการโต้ตอบของเบราว์เซอร์สำหรับกรณีทดสอบ คุณสามารถตั้งค่าเบรกพอยต์และตรวจสอบและหยุดตัวแปรชั่วคราวเมื่อเกิดข้อผิดพลาดขึ้นด้วย Selenium Integrated Development Environment

ส่วนประกอบของซีลีเนียมต่างกันอย่างไร?

การทดสอบซีลีเนียมประเภทต่าง ๆ มีอะไรบ้าง?

  • การทดสอบแบบ end-to-end
  • การทดสอบการถดถอย
  • การทดสอบระบบ
  • การทดสอบประสิทธิภาพ
  • การทดสอบความเข้ากันได้

อะไรคือข้อยกเว้นที่แตกต่างกันในซีลีเนียม?

  • ElementNotSelectableException
  • ไม่มีAlertPresentException
  • SelectorException ไม่ถูกต้อง
  • ไม่มีข้อยกเว้นเซสชันดังกล่าว
  • StaleElementReferenceException
  • ไม่มีข้อยกเว้นหน้าต่างดังกล่าว
  • ไม่มีข้อยกเว้นของเฟรมดังกล่าว
  • NoSuchElementException
  • ข้อยกเว้นการหมดเวลา
  • ElementNotVisibleException

driver.close() และ driver.quit() ใน WebDriver คืออะไร

คำสั่ง driver.close() ปิดหน้าต่างเบราว์เซอร์ที่โฟกัส หากเปิดเพียงเบราว์เซอร์เดียว จะเป็นการปิดเซสชันของเบราว์เซอร์ทั้งหมด

คำสั่ง driver.quit() ปิดเซสชันเบราว์เซอร์ทั้งหมดด้วยป๊อปอัป แท็บ และหน้าต่างเบราว์เซอร์

Dockerfile คืออะไร?

Dockerfile เป็นเอกสารข้อความที่มีคำสั่งทั้งหมดที่ผู้ใช้สามารถใช้ในบรรทัดคำสั่งเพื่อประกอบรูปภาพ

ความแตกต่างระหว่าง docker image และ docker container

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

คอนเทนเนอร์นักเทียบท่าคือกล่องที่เรียกใช้เทมเพลตอิมเมจนักเทียบท่า

อธิบายสถาปัตยกรรมของ Docker

Docker เป็นไปตามสถาปัตยกรรม Client-Server และประกอบด้วย Docker Client, Docker Host และ Docker Registry

Docker Client ใช้ REST API และคำสั่งเพื่อสื่อสารกับเซิร์ฟเวอร์ (Docker Daemon)

Docker Client ใช้ CLI เพื่อรันคำสั่งเหล่านี้

docker build

docker pull

docker run
  • Docker Host จัดเตรียมสภาพแวดล้อมเพื่อดำเนินการและเรียกใช้แอปพลิเคชัน ประกอบด้วย docker daemon ที่เก็บข้อมูล อิมเมจ คอนเทนเนอร์ และเครือข่าย
  • Docker Registry จัดการและจัดเก็บอิมเมจ Docker

แพลตฟอร์มคลาวด์ที่รองรับนักเทียบท่า

แพลตฟอร์มที่รองรับ docker hosting ได้แก่

Nagios คืออะไร?

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

Nagios ทำงานอย่างไร

  • การตรวจสอบ เจ้าหน้าที่ไอทีกำหนดค่า Nagios เพื่อตรวจสอบโปรโตคอลเครือข่าย เมตริกระบบ แอปพลิเคชัน โครงสร้างพื้นฐานเครือข่าย บริการ และเซิร์ฟเวอร์
  • การแจ้งเตือน Nagios ส่งการแจ้งเตือนเมื่อส่วนประกอบสำคัญล้มเหลว การแจ้งเตือนสามารถผ่าน SMS, รหัสที่กำหนดเองหรืออีเมล
  • การตอบสนอง. ทีมไอทีรับทราบการแจ้งเตือนและดำเนินการ
  • รายงาน รายงานที่ให้บันทึกประวัติของการแจ้งเตือน การหยุดทำงาน การตอบกลับการแจ้งเตือน และเหตุการณ์สำหรับการตรวจสอบในภายหลังจะถูกสร้างขึ้น
  • การซ่อมบำรุง. เวลาหยุดทำงานตามกำหนดเวลาจะป้องกันไม่ให้มีการส่งการแจ้งเตือนระหว่างการบำรุงรักษา

พูดถึงปลั๊กอินบางตัวใน Nagios

  • ปลั๊กอินอย่างเป็นทางการของ Nagios ที่พัฒนาและดูแลโดยทีมงานอย่างเป็นทางการ
  • ปลั๊กอินที่กำหนดเอง – เขียนโดยบุคคล/ธุรกิจเพื่อให้เหมาะกับความต้องการของแต่ละบุคคล
  • ปลั๊กอินชุมชน – พัฒนาโดยสมาชิกของชุมชน Nagios
  วิธีการหรี่ลักษณะที่ปรากฏของข้อความใน PowerPoint

อธิบายการจำลองเสมือนด้วย Nagios

Nagios นำเสนอความสามารถในการตรวจสอบเมตริกต่างๆ บนแพลตฟอร์มการจำลองเสมือนที่หลากหลาย Nagios สามารถเรียกใช้จากแพลตฟอร์มการจำลองเสมือนต่างๆ เช่น Xen, Amazon EC2, VMware และ Microsoft Virtual PC

Nagios ช่วยตรวจสอบได้อย่างไร?

Nagios ใช้ตัวแทนเช่น NRPE, check_mk หรือ SNMP เพื่อรวบรวมสถิติบนเซิร์ฟเวอร์ของคุณ และส่งการแจ้งเตือนหากตัวชี้วัดอยู่เหนือเกณฑ์ที่กำหนดไว้ล่วงหน้า

Nagios ใช้หมายเลขพอร์ตใดเพื่อการตรวจสอบ

SNMP พอร์ต 161 และ 162

ตัววิเคราะห์เครือข่าย Nagios คืออะไร?

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

ตัวแปรที่ส่งผลต่อการสืบทอดและการเรียกซ้ำใน Nagios

  • ชื่อ-เทมเพลต ‘ชื่อ’ ที่สามารถสืบทอดตัวแปร/คุณสมบัติของวัตถุ
  • ใช้- ระบุชื่อวัตถุของเทมเพลตที่คุณต้องการสืบทอดตัวแปร/คุณสมบัติ
  • Register ระบุว่าชื่อของวัตถุเทมเพลตควร ‘registered’ กับ Nagios หรือไม่

หุ่นคืออะไร?

Puppet เป็นเครื่องมือโอเพ่นซอร์สสำหรับการจัดการการกำหนดค่าซอฟต์แวร์และการปรับใช้

รายการหุ่นกระบอกคืออะไร?

Puppet Manifest เป็นไฟล์ที่มีภาษาการกำหนดค่า Puppet ซึ่งอธิบายวิธีการกำหนดค่าทรัพยากร

รหัสหุ่นคืออะไร?

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

เชฟคืออะไร?

Chef เป็นเครื่องมือจัดการการกำหนดค่าที่แปลงโครงสร้างพื้นฐานเป็นโค้ด เครื่องมือนี้มุ่งเน้นไปที่การเขียนโค้ดแทนกระบวนการด้วยตนเอง

เชฟทำงานอย่างไร?

งานของเชฟเริ่มต้นเมื่อผู้ดูแลระบบหรือนักพัฒนากำหนดให้งานเป็นแบบอัตโนมัติ ตำราอาหารและสูตรอาหาร (โปรแกรมขนาดเล็กที่เขียนด้วยภาษาเฉพาะโดเมน) จะถูกบันทึกและทดสอบโดยใช้เครื่องมือต่างๆ เช่น Test Kitchen, ChefSpec และ Foodcritic

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

สรุป

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

คุณยังสามารถสำรวจหลักสูตรออนไลน์ดีๆ เพื่อเรียนรู้ DevOps

เรื่องล่าสุด

x