4 เคล็ดลับ DevOps สำหรับทีมขนาดเล็ก
เผยแพร่แล้ว: 2020-02-08สงสัยว่าจะปรับใช้ DevOps สำหรับทีมขนาดเล็กได้อย่างไร DevOps เป็นสาขาที่กำลังเติบโตของกลยุทธ์และการดำเนินการในบริษัททุกขนาด ช่วยเพิ่มความเร็วในการออกสู่ตลาด ช่วยให้เปิดตัวได้เร็วยิ่งขึ้น และทำให้นักพัฒนา ผู้จัดการฝ่ายปฏิบัติการ และลูกค้ามีความสุขมากขึ้น
เราจะพูดถึงสิ่งที่ DevOps คืออะไร บริษัทขนาดใหญ่ปรับใช้อย่างไร และบทเรียนและเคล็ดลับใดบ้างที่บริษัทขนาดเล็กสามารถรวบรวมและปรับใช้ได้ในขณะนี้
DevOps คืออะไร?
DevOps เป็นคำที่อธิบายได้ยาก ส่วนใหญ่เป็นเพราะว่ามันครอบคลุมแนวปฏิบัติต่างๆ โดยทั่วไป DevOps เป็นการรวมกันของสองสิ่งเพื่อวัตถุประสงค์ในการสื่อสารที่ดีขึ้น: "Dev" ย่อมาจาก "developers" และ "Ops" สำหรับการดำเนินงาน
DevOps มักจะเป็นกลุ่มของทั้งนักพัฒนาโค้ดและผู้จัดการฝ่ายปฏิบัติการระบบที่ทำงานร่วมกันเพื่อทำลายคลังความรู้ โดยพื้นฐานแล้ว เพื่อให้แน่ใจว่าพวกเขาจะเข้าใจตรงกันเสมอเมื่อต้องพัฒนาและปรับใช้โค้ดอย่างมีประสิทธิภาพ
DevOps หมายถึงการสื่อสารที่มีประสิทธิภาพระหว่างแผนกต่างๆ หมายถึงการทำงานร่วมกันเพื่อสร้างกลยุทธ์สำหรับแผนกหนึ่งที่ทำให้ชีวิตง่ายขึ้นสำหรับแผนกอื่น โดยทั่วไปยังหมายถึงโค้ดอัตโนมัติที่มากขึ้น โค้ดที่เล็กลง ระบบควบคุมต้นทาง และอาจต้องมีการประชุมอีก 2-3 ครั้ง
แต่จะเกิดอะไรขึ้นหากไม่มี DevOps
เหตุใดจึงต้องมี DevOps
ตามเนื้อผ้าผู้จัดการฝ่ายปฏิบัติการจะรักษาสภาพแวดล้อมการผลิต นั่นคือทุกอย่างที่ลูกค้าและลูกค้าโต้ตอบด้วย
ในทางกลับกัน นักพัฒนาทำงานเบื้องหลัง โดยสร้างโค้ดในสภาพแวดล้อมการทดสอบ ซึ่งเป็นพื้นที่ที่ปิดล้อมจากสภาพแวดล้อมการผลิต สภาพแวดล้อมการพัฒนานี้ จำลองสภาพแวดล้อมการผลิตและการทำงานของโค้ดหรือแอปในโลกแห่งความเป็นจริง
ในทางปฏิบัติ นี่หมายความว่านักพัฒนาเขียนโค้ดในบับเบิลแล้วส่งออกไปปรับใช้ในสภาพแวดล้อมที่ใช้งานจริง ซึ่งผู้จัดการฝ่ายปฏิบัติการต้องหาวิธีทำให้ทุกอย่างทำงานและเสถียรในขณะที่รวมโค้ดใหม่เข้าด้วยกัน และนักพัฒนามักจะยุ่งเกินไปกับการเขียนโค้ดคุณสมบัติใหม่ และผู้จัดการปฏิบัติการก็ยุ่งเกินไปที่จะพยายามทำให้ทุกเพลทหมุน ดังนั้นเวลาสำหรับการสื่อสารและการปรับสภาพแวดล้อมใหม่จึงสั้น
และในขณะที่ DevOps ใช้เวลาเพียงเล็กน้อยในการตั้งค่าและดำเนินการ ผลลัพธ์สามารถทำให้บริษัทใดๆ ไม่ว่าจะใหญ่หรือเล็ก มีความคล่องตัวและแข่งขันได้มากขึ้น
DevOps ที่บริษัทขนาดใหญ่
DevOps เป็นที่นิยมอย่างมากในบริษัทขนาดใหญ่ ด้วยนักพัฒนาจำนวนมากและฐานโค้ดที่ใหญ่เพียงพอ การพัฒนาและการปรับใช้โค้ดอาจเป็นเรื่องยุ่งยาก
บริษัทขนาดใหญ่มีลูกค้ามากขึ้น ลูกค้าจำนวนมากขึ้นหมายถึงเซิร์ฟเวอร์ที่มากขึ้น มักจะมีคุณสมบัติมากขึ้นและภาระในเครือข่ายมากขึ้น สิ่งนี้จะสร้าง codebase ที่ใหญ่ขึ้น ซึ่งหมายความว่าแม้การปรับแต่งเพียงเล็กน้อยก็สามารถสร้างผลกระทบต่อสิ่งแวดล้อมได้ และเนื่องจากบริษัทขนาดใหญ่มักจะพยายามหาคุณสมบัติใหม่ๆ เพื่อรักษาความสามารถในการแข่งขันในตลาด พวกเขาต้องการสภาพแวดล้อมการพัฒนาและสภาพแวดล้อมการผลิตเพื่อให้อยู่ในขั้นตอนที่ล็อค
บริษัทต่างๆ เช่น Netflix, Amazon และ Target ได้นำ DevOps มาใช้เพื่อปรับปรุงบริการของตน การผสานรวมสภาพแวดล้อมการพัฒนาเข้ากับสภาพแวดล้อมการผลิต (ควบคู่ไปกับระบบอัตโนมัติขนาดใหญ่) ทำให้ Netflix และ Amazon ปรับใช้ได้หลายพัน ครั้ง ต่อวัน
Amazon ใช้ระบบการปรับใช้อย่างต่อเนื่องและการควบคุมแหล่งที่มาแบบอัตโนมัติเพื่อตรวจสอบการแก้ไขโดยอัตโนมัติ โดยจะผ่านกระบวนการสร้างและทดสอบโดยปราศจากการแทรกแซงของมนุษย์
NASA ใช้ระบบที่คล้ายคลึงกัน โดยใช้การผสมผสานระหว่างบริการ AWS ของ Amazon และระบบข้อมูลแบบคอนเทนเนอร์ เพื่อให้ผู้เชี่ยวชาญด้านข้อมูลของ NASA แชร์ข้อมูลและการวิเคราะห์ทางไกลกับวิศวกรของตนได้อย่างรวดเร็ว
แต่บริษัทและองค์กรเหล่านั้นมีขนาดใหญ่มาก ทีมเล็ก ๆ จะเข้าถึงระดับองค์กรและระบบอัตโนมัติได้อย่างไร? DevOps สำหรับทีมขนาดเล็กทำงานอย่างไรในธรรมชาติ
โซลูชัน DevOps ที่ทีมขนาดเล็กยอมรับได้
ทีมขนาดเล็กไม่มีแบนด์วิดท์เท่ากับบริษัทขนาดใหญ่ ทั้งในด้านจำนวนบุคลากร แผนก และทรัพยากร อย่างไรก็ตาม นั่นกลายเป็นดาบสองคมเพราะโดยทั่วไปแล้ว ทีมที่มีขนาดเล็กกว่านั้นใช้โซลูชัน DevOps จำนวนมากอยู่แล้ว แม้จะไม่ได้ตั้งใจก็ตาม
อย่างไรก็ตาม นั่นไม่ได้หมายความว่าไม่มีงานให้หยุดทำงาน ตอนนี้มีเพียง 25% ของอุตสาหกรรมซอฟต์แวร์เท่านั้นที่ดึง DevOps ในระดับสูง
และเครื่องมือและกลยุทธ์ DevOps อื่นๆ ก็สามารถดึงมาจากบริษัทขนาดใหญ่และนำไปใช้อย่างมีประสิทธิภาพได้เช่นกัน
1. สร้างทีม DevOps
หากคุณไม่มีทีมนักพัฒนาจำนวนมาก การสร้างทีม DevOps แบบสแตนด์อโลนอาจเป็นไปไม่ได้ หากคุณมีนักพัฒนาซอฟต์แวร์หนึ่งคนและผู้จัดการระบบหนึ่งคน หรือบทบาทเหล่านั้นเต็มไปด้วยบุคคลคนเดียวกัน แนวคิดของ "ทีม" อาจดูงี่เง่า
และก็ไม่เป็นไร ไม่จำเป็นต้องเกี่ยวกับการสร้างกองกำลังเฉพาะกิจบางประเภท แต่เกี่ยวกับการสื่อสารเท่านั้น แม้ว่าคุณจะมีนักพัฒนาซอฟต์แวร์หนึ่งคนและผู้จัดการด้านไอทีหนึ่งคน แต่รูปแบบ "ทีม" ของ DevOps อาจเป็นการประชุมรายสัปดาห์และการอัปเดตแบบอะซิงโครนัสรายวันเพื่อให้อีกฝ่ายทราบถึงสิ่งที่เกิดขึ้น
เป้าหมายหลักของทีมควรเป็นการจัดสภาพแวดล้อมการพัฒนาให้สอดคล้องกับสภาพแวดล้อมการผลิต เขียน (และปรับใช้) ส่วนย่อยของโค้ดให้บ่อยขึ้น และเพิ่มระบบอัตโนมัติและการควบคุมแหล่งที่มา
มาพูดถึงความหมายของสิ่งเหล่านั้นและวิธีที่สามารถทำได้
2. แนวปฏิบัติและสภาพแวดล้อมที่สอดคล้อง
แม้แต่ทีมเล็กๆ ก็สามารถเริ่มปรับสภาพแวดล้อมของตนได้โดยให้นักพัฒนาเข้าถึงสภาพแวดล้อมการผลิตได้มากขึ้น แม้กระทั่งเพียงเพื่อตรวจสอบว่าการแก้ไขส่งผลต่อผลิตภัณฑ์ขั้นสุดท้ายอย่างไร
ลองให้ข้อมูลสถานะเครือข่ายแก่ทีมนักพัฒนาซอฟต์แวร์ของคุณ แม้ว่าจะอยู่บนจอภาพตรงมุมก็ตาม พวกเขาสามารถเห็นได้ทันทีว่าโค้ดที่ปรับใช้อาจส่งผลต่อทราฟฟิกอย่างไร หรือทราบหากมีการตกอย่างกะทันหันซึ่งอาจเป็นปัญหาใหญ่
คุณจะต้องใช้ทีม DevOps เพื่อสร้างกลยุทธ์ในการสร้างสภาพแวดล้อมการทดสอบการพัฒนาและสภาพแวดล้อมการผลิตจริงให้ใกล้เคียงที่สุดเท่าที่จะเป็นไปได้ มันจะเกี่ยวข้องกับการประชุมจำนวนมากและโครงการเอกสารที่แข็งแกร่งที่ไม่เพียงแต่ทำให้สภาพแวดล้อมอยู่ในแนวเดียวกัน แต่ยัง รักษา สภาพแวดล้อมให้สอดคล้องกับการเปลี่ยนแปลงที่เกิดขึ้นเมื่อเวลาผ่านไป
การปรับสภาพแวดล้อมทั้งสองให้สอดคล้องกันหมายความว่าทีมปฏิบัติการใช้เวลาน้อยลงในการพยายามปรับปรุงโค้ดของนักพัฒนาให้เข้ากับความเป็นจริงของผลิตภัณฑ์ขั้นสุดท้าย
3. ปรับใช้โค้ดที่เล็กลง
ขั้นตอนที่สามคือการออกจากความคิดของการอัพเดทครั้งใหญ่ การแก้ไขโค้ดจำนวนมากอาจใช้เวลาเป็นสัปดาห์หรือเป็นเดือนในการทดสอบ อนุมัติ และปรับใช้ การดำเนินการนี้จะทำให้การเปิดตัวคุณลักษณะช้าลงและโดยทั่วไปทำให้คุณสามารถแข่งขันในตลาดซื้อขายได้น้อยลง นอกจากนี้ยังทำให้คุณคล่องตัวน้อยลงในกรณีที่มีแนวโน้มใหม่ที่น่าตื่นเต้นหรือปัญหาร้ายแรง
กุญแจสำคัญประการหนึ่งในการขยาย DevOps สำหรับทีมขนาดเล็กในบริษัทของคุณคือการมีความคิดในการเขียนโค้ดชิ้นเล็กๆ และทำให้ใช้งานได้เร็วขึ้น สิ่งเหล่านี้ควรมีขนาดเล็กพอที่จะทดสอบและใช้งานได้ภายในเวลาไม่กี่ชั่วโมง
4. โอบรับระบบอัตโนมัติและการควบคุมแหล่งที่มา
เส้นทางสุดท้ายสู่ DevOps ที่ประสบความสำเร็จสำหรับทีมขนาดเล็กคือการใช้ระบบอัตโนมัติอย่างหนัก
ทำไมต้องอัตโนมัติ? ประการแรก ระบบอัตโนมัติช่วยเพิ่มความเร็วในการทดสอบโค้ดและการปรับใช้ นอกจากนี้ยังช่วยให้ทั้งนักพัฒนาและผู้จัดการฝ่ายปฏิบัติการมีเวลามากขึ้นในการออกกลยุทธ์ DevOps ที่ระบุไว้ข้างต้น เวลาพิเศษนี้ยังช่วยให้ทีม Dev และ Ops ของคุณมุ่งเน้นไปที่สิ่งที่ช่วยปรับปรุงธุรกิจ แทนที่จะเพียงแค่ดับไฟ และสุดท้ายนี้ ช่วยเพิ่มประสิทธิภาพและความถูกต้องของเอกสาร ซึ่งทั้งสองมีข้อดีในการเริ่มต้นใช้งาน การศึกษา และการปฏิบัติตามข้อกำหนด
ก่อนอื่นคุณต้องมีบางอย่างที่ช่วยคุณสร้างและทดสอบโค้ดได้ตลอดเวลา ทุกเวลา แอพอย่าง Jenkins หรือ Bitrise สามารถช่วยอำนวยความสะดวกในการรวมและส่งมอบอย่างต่อเนื่อง
จากนั้น คุณจะต้องมีแพลตฟอร์มควบคุมแหล่งที่มาเพื่อติดตามและจัดการการแก้ไขในโค้ด แพลตฟอร์มเช่น GitHub และ SourceForge สามารถช่วยคุณได้ที่นี่
ขั้นตอนต่อไปในห่วงโซ่คือระบบการจัดการการกำหนดค่าเพื่อรักษาความสม่ำเสมอและคุณภาพทั่วทั้งกระดาน เครื่องมืออย่าง Chef หรือ SaltStack เป็นจุดเริ่มต้นที่ดี
New Relic สร้างแพลตฟอร์มสำหรับการสังเกตระบบทั้งหมดของคุณและมีประโยชน์อย่างมากสำหรับการตรวจสอบการทำงานอัตโนมัติของโค้ดแบบ end-to-end ประเภทนี้
อาจเป็นความคิดที่ดีที่จะพิจารณาการกำหนดค่าแบบไดนามิก ในกรณีที่คุณจำเป็นต้องหมุนระบบอัตโนมัติทั้งหมดไปในทิศทางใหม่อย่างรวดเร็ว
การนำ DevOps ไปใช้งานสำหรับทีมขนาดเล็กและองค์กรขนาดเล็ก
อย่ากังวลว่าทีมหรือบริษัทของคุณเล็กเกินกว่าจะปรับใช้ DevOps ได้อย่างมีประสิทธิภาพ ให้คิดว่าเครื่องมือเหล่านี้เป็นโต๊ะบุฟเฟ่ต์ซึ่งคุณสามารถดึงแนวคิดขององค์กรได้
ไม่มีองค์กรใดที่จะได้รับผลกระทบจากการสื่อสารที่มากขึ้น ความรับผิดชอบที่มากขึ้น และการติดตามการแก้ไขที่ละเอียดและละเอียดยิ่งขึ้น