บทนำ DevOps สำหรับผู้เริ่มต้น

DevOps กลายเป็นคำศัพท์ที่มีความหมายหลากหลายสำหรับผู้คนจำนวนมาก

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

ที่มาของ DevOps

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

คุณอาจสงสัยว่าการพัฒนาซอฟต์แวร์ที่คล่องตัวคืออะไร –

การพัฒนาแบบ Agile เป็นคำที่กว้างเพื่อกำหนดวิธีการพัฒนาซอฟต์แวร์แบบวนซ้ำและแบบเพิ่มหน่วย วิธีการที่นิยมใช้กัน ได้แก่ Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development และ Extreme Programming (XP)

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

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

ภาพโดย Segue

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

ความท้าทายแก้ไขโดย DevOps

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

  วิธีกำจัด Hollow Arrow บน iPhone

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

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

วัตถุประสงค์ DevOps

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

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

สถานการณ์ทั่วไปของ DevOps

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

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

ระยะต่างๆ ของการพัฒนา DevOps

การพัฒนา DevOps มีหลายระยะ นี่คือวลีสำคัญที่คุณต้องรู้

การพัฒนาน้ำตก

ก่อนถึงเวลาของการผสานรวมอย่างต่อเนื่อง ทีมพัฒนาเคยเขียนโค้ดจำนวนมหาศาล จากนั้นจึงรวมโค้ดจากทีมต่างๆ เข้าด้วยกันเพื่อเผยแพร่ โค้ดเวอร์ชันต่างๆ นั้นแตกต่างกันมากจนต้องใช้การเปลี่ยนแปลงจำนวนมาก

ใช้จำนวนการเปลี่ยนแปลงเหล่านี้ -ใช้เวลามากกว่าสองสามเดือน กระบวนการนี้ไม่ได้ผล

บูรณาการอย่างต่อเนื่อง

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

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

การผสานรวมอย่างต่อเนื่องจากมุมมองของ DevOps รวมถึงขั้นตอนต่างๆ เช่น การตรวจสอบโค้ด การคอมไพล์เป็นโค้ดที่ใช้งานได้ และการรันการทดสอบการตรวจสอบที่จำเป็นบางอย่าง ‘

จัดส่งอย่างต่อเนื่อง

เป็นส่วนขยายของการผสานรวมอย่างต่อเนื่องและขั้นตอน DevOps ที่สอง

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

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

การปรับใช้อย่างต่อเนื่อง

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

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

  ฉันต้องการเท่าไหร่ในแต่ละเดือน?

มีบริษัทจำนวนเล็กน้อย เช่น Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google และอื่นๆ ที่พัฒนาอย่างต่อเนื่อง

มูลค่า

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

วัฒนธรรม DevOps

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

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

เครื่องมือ DevOps

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

มารู้จักเครื่องมือและแนวทางปฏิบัติยอดนิยมกันบ้าง

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

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse เป็นต้น เป็นเครื่องมือจัดเก็บโค้ดยอดนิยมบางส่วน

เซิร์ฟเวอร์บิลด์: – เซิร์ฟเวอร์บิลด์เป็นเครื่องมืออัตโนมัติที่ใช้ในการคอมไพล์โค้ดในระบบทางเดินหายใจของซอร์สโค้ดลงในฐานโค้ดที่ปฏิบัติการได้ เครื่องมือเซิร์ฟเวอร์บิลด์ที่มีการใช้งานสูง ได้แก่ Jenkins, SonarQube และ Artifactory

การจัดการการกำหนดค่า – Puppet, Chef, Ansible, SaltStack, Run Deck ฯลฯ ช่วยในการจัดการการกำหนดค่าสำหรับแอปพลิเคชันและโครงสร้างพื้นฐานเพื่อรักษาความสอดคล้องกันในทุกสภาพแวดล้อม

  วิธีการส่งรหัสบน Skype ด้วยการจัดรูปแบบที่เหมาะสม

โครงสร้างพื้นฐานเสมือน – AWS, GCP และ Azure เป็นผู้ให้บริการคลาวด์สาธารณะสามอันดับแรกที่ให้บริการโครงสร้างพื้นฐานเกือบทุกประเภท พวกเขามี API ซึ่งช่วยให้คุณจัดเตรียมโครงสร้างพื้นฐานและจัดการได้เหมือนรหัส

บทสรุป

ฉันหวังว่าสิ่งนี้จะช่วยให้คุณมีแนวคิดเกี่ยวกับ DevOps และหากสิ่งนี้ทำให้คุณตื่นเต้น คุณอาจลองใช้หลักสูตรมาสเตอร์คลาสออนไลน์นี้

บทความโดย Payal Goyal

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

x