คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส
สร้างห่วงโซ่ DevOps แรกของคุณในห้าขั้นตอนสำหรับผู้เริ่มต้น

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

บทนำของฉันเกี่ยวกับ DevOps

ฉันเคยทำงานกับระบบคลาวด์ที่ Citi Group และพัฒนาเว็บแอปพลิเคชัน IaaS เพื่อจัดการโครงสร้างพื้นฐานระบบคลาวด์ของ Citi แต่ฉันสนใจเสมอว่าจะปรับห่วงโซ่การพัฒนาให้เหมาะสมและปรับปรุงวัฒนธรรมในหมู่นักพัฒนาได้อย่างไร Greg Lavender CTO ของเราสำหรับ Cloud Architecture and Infrastructure แนะนำหนังสือเล่มนี้ให้ฉัน โครงการฟีนิกซ์. มันอธิบายหลักการของ DevOps ได้อย่างสวยงามและอ่านเหมือนนวนิยาย

ตารางด้านหลังแสดงความถี่ที่บริษัทเปิดตัวเวอร์ชันใหม่:

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

Amazon, Google และ Netflix จัดการเปิดตัวได้มากขนาดนี้ได้อย่างไร? และมันง่ายมาก: พวกเขาค้นพบวิธีสร้างห่วงโซ่ DevOps ที่เกือบจะสมบูรณ์แบบ

ที่ Citi สิ่งต่างๆ แตกต่างออกไปมากจนกระทั่งเราเปลี่ยนมาใช้ DevOps จากนั้นทีมของฉันมีสภาพแวดล้อมที่แตกต่างกัน แต่เราส่งไปยังเซิร์ฟเวอร์การพัฒนาด้วยตนเอง นักพัฒนาทั้งหมดมีสิทธิ์เข้าถึงเซิร์ฟเวอร์การพัฒนาเพียงเซิร์ฟเวอร์เดียวที่ใช้ IBM WebSphere Application Server Community Edition ด้วยความพยายามที่จะส่งมอบพร้อมกัน เซิร์ฟเวอร์จึง “ล้ม” และแต่ละครั้งที่เราต้อง “เจ็บปวด” เจรจากันเอง นอกจากนี้ เรายังครอบคลุมโค้ดไม่เพียงพอกับการทดสอบ กระบวนการจัดส่งด้วยตนเองที่ใช้เวลานาน และไม่มีวิธีติดตามการส่งมอบโค้ดด้วยความช่วยเหลือจากงานบางอย่างหรือความต้องการของลูกค้า

เห็นได้ชัดว่ามีบางอย่างที่ต้องทำอย่างเร่งด่วน และฉันพบเพื่อนร่วมงานที่มีใจเดียวกัน เราตัดสินใจสร้าง DevOps chain แรกร่วมกัน - เขาตั้งค่าเครื่องเสมือนและเซิร์ฟเวอร์แอปพลิเคชัน Tomcat ส่วนฉันดูแล Jenkins การผสานรวมกับ Atlassian Jira และ BitBucket ตลอดจนการครอบคลุมโค้ดพร้อมการทดสอบ โครงการนี้ประสบความสำเร็จ: เราทำให้ห่วงโซ่การพัฒนาเป็นไปโดยอัตโนมัติอย่างสมบูรณ์ ทำให้มีเวลาทำงานเกือบ 100% บนเซิร์ฟเวอร์การพัฒนา สามารถตรวจสอบและปรับปรุงความครอบคลุมของโค้ดด้วยการทดสอบ และสาขา Git สามารถเชื่อมโยงกับการส่งมอบและปัญหาของ Jira และเครื่องมือเกือบทั้งหมดที่เราใช้สร้างห่วงโซ่ DevOps เป็นโอเพ่นซอร์ส

ในความเป็นจริงแล้ว เชนถูกทำให้ง่ายขึ้น เพราะเราไม่ได้ใช้การกำหนดค่าขั้นสูงโดยใช้ Jenkins หรือ Ansible เลยด้วยซ้ำ แต่เราทำสำเร็จ บางทีนี่อาจเป็นผลมาจากหลักการ พาเรโต (หรือที่เรียกว่ากฎ 80/20)

คำอธิบายโดยย่อของ DevOps และ CI/CD Chain

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

แม้ว่าเครื่องมือเพียงอย่างเดียวจะไม่เพียงพอสำหรับการสร้างสภาพแวดล้อม DevOps แต่ก็เป็นสิ่งที่ขาดไม่ได้ สิ่งที่สำคัญที่สุดคือการรวมอย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่อง (CI/CD) มีขั้นตอนที่แตกต่างกันในห่วงโซ่สำหรับแต่ละสภาพแวดล้อม (เช่น DEV (การพัฒนา), INT (การรวมระบบ), TST (การทดสอบ), QA (การรับประกันคุณภาพ), UAT (การทดสอบการยอมรับของผู้ใช้), STG (การเตรียมการ), PROD (การใช้งาน)) งานแบบแมนนวลจะเป็นไปโดยอัตโนมัติ นักพัฒนาสามารถสร้างโค้ดที่มีคุณภาพ ส่งมอบ และสร้างใหม่ได้อย่างง่ายดาย

บันทึกนี้อธิบายวิธีสร้างเชน DevOps ในห้าขั้นตอน ดังที่แสดงในภาพด้านล่าง โดยใช้เครื่องมือโอเพ่นซอร์ส

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

มาทำธุรกิจกันเถอะ

ขั้นตอนที่ 1: แพลตฟอร์ม CI/CD

ก่อนอื่น คุณต้องมีเครื่องมือ CI/CD Jenkins เป็นเครื่องมือ CI/CD แบบโอเพ่นซอร์สที่ได้รับใบอนุญาตจาก MIT ซึ่งเขียนด้วยภาษา Java ซึ่งทำให้การเคลื่อนไหวของ DevOps เป็นที่นิยมและกลายเป็นมาตรฐานโดยพฤตินัยสำหรับ CICD

เจนกินส์คืออะไร? ลองนึกภาพว่าคุณมีแผงควบคุมวิเศษสำหรับบริการและเครื่องมือต่างๆ ด้วยตัวของมันเอง เครื่องมือ CI/CD เช่น Jenkins นั้นไร้ประโยชน์ แต่ด้วยเครื่องมือและบริการที่แตกต่างกัน เครื่องมือนี้จึงมีประสิทธิภาพทั้งหมด

นอกจาก Jenkins แล้วยังมีเครื่องมือโอเพ่นซอร์สอื่น ๆ อีกมากมายให้เลือก

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

นี่คือลักษณะของกระบวนการ DevOps ด้วยเครื่องมือ CI/CD

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

คุณมีเครื่องมือ CI/CD ใน localhost แต่ยังไม่มีอะไรให้ทำมากนัก ไปที่ขั้นตอนต่อไปกันเถอะ

ขั้นตอนที่ 2: การควบคุมเวอร์ชัน

วิธีที่ดีที่สุด (และอาจง่ายที่สุด) ในการทดสอบความมหัศจรรย์ของเครื่องมือ CI/CD คือการรวมเข้ากับเครื่องมือการจัดการการควบคุมแหล่งที่มา (SCM) ทำไมคุณถึงต้องการการควบคุมเวอร์ชัน สมมติว่าคุณกำลังสร้างแอปพลิเคชัน คุณเขียนในภาษา Java, Python, C++, Go, Ruby, JavaScript หรือภาษาอื่นๆ ที่เป็นเกวียนและเกวียนเล็กๆ สิ่งที่คุณเขียนเรียกว่าซอร์สโค้ด ในตอนแรก โดยเฉพาะอย่างยิ่งถ้าคุณทำงานคนเดียว คุณสามารถบันทึกทุกอย่างลงในไดเร็กทอรีในเครื่องได้ แต่เมื่อโครงการเติบโตขึ้นและมีคนเข้าร่วมมากขึ้น คุณต้องมีวิธีแชร์การเปลี่ยนแปลงโค้ด แต่หลีกเลี่ยงความขัดแย้งเมื่อรวมการเปลี่ยนแปลง และคุณต้องกู้คืนเวอร์ชันก่อนหน้าด้วยวิธีการใดวิธีหนึ่งโดยไม่ต้องใช้การสำรองข้อมูลและใช้วิธีการคัดลอกและวางสำหรับไฟล์โค้ด

และที่นี่ไม่มี SCM ทุกที่ SCM จัดเก็บโค้ดในที่เก็บข้อมูล จัดการเวอร์ชันของโค้ด และประสานงานระหว่างนักพัฒนา

มีเครื่องมือ SCM มากมาย แต่ Git สมควรได้รับมาตรฐานโดยพฤตินัย ฉันแนะนำให้คุณใช้ แต่มีตัวเลือกอื่น

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

นี่คือลักษณะของไปป์ไลน์ DevOps หลังจากเพิ่ม SCM

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

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

ขั้นตอนที่ 3: สร้างเครื่องมือการทำงานอัตโนมัติ

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

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

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

สมบูรณ์แบบ! ตอนนี้ เรามาแทรกไฟล์คอนฟิกูเรชันของ build automation tool ลงใน source control เพื่อให้เครื่องมือ CI/CD สร้างมันขึ้นมา

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

มันรู้สึกดี. แต่ทั้งหมดนี้จะเปิดตัวที่ไหน

ขั้นตอนที่ 4: เว็บแอปพลิเคชันเซิร์ฟเวอร์

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

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

มีเว็บแอ็พพลิเคชันเซิร์ฟเวอร์ที่เปิดอยู่หลายตัว

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

เรามีห่วงโซ่ DevOps ที่ใช้งานได้เกือบหมดแล้ว เยี่ยมมาก!

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

โดยหลักการแล้ว คุณสามารถหยุดที่นี่ จากนั้นคุณสามารถจัดการได้ด้วยตัวเอง แต่ควรพูดถึงคุณภาพของโค้ด

ขั้นตอนที่ 5: ทดสอบความครอบคลุม

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

การทดสอบแบ่งออกเป็นสองส่วน: เฟรมเวิร์กการทดสอบสำหรับการเขียนและการดำเนินการทดสอบ และเครื่องมือพร้อมคำใบ้เพื่อปรับปรุงคุณภาพโค้ด

กรอบการทดสอบ

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

เครื่องมือพร้อมเคล็ดลับคุณภาพ

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

เครื่องมือและเฟรมเวิร์กเหล่านี้ส่วนใหญ่เขียนขึ้นสำหรับ Java, Python และ JavaScript เนื่องจาก C++ และ C# เป็นกรรมสิทธิ์ (แม้ว่า GCC จะเป็นโอเพ่นซอร์สก็ตาม)

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

ขั้นตอนเพิ่มเติม

ตู้คอนเทนเนอร์

ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ เซิร์ฟเวอร์แอปพลิเคชันสามารถโฮสต์ในเครื่องเสมือนหรือเซิร์ฟเวอร์ได้ แต่คอนเทนเนอร์เป็นที่นิยมมากกว่า

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

สำหรับคอนเทนเนอร์มักจะใช้ Docker และ Kubernetes แม้ว่าจะมีตัวเลือกอื่น

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

อ่านบทความเกี่ยวกับ Docker และ Kubernetes ได้ที่ Opensource.com:

เครื่องมืออัตโนมัติมิดเดิลแวร์

ห่วงโซ่ DevOps ของเรามุ่งเน้นไปที่การสร้างและส่งมอบแอปพลิเคชันร่วมกัน แต่ยังมีสิ่งที่น่าสนใจอื่นๆ ที่คุณสามารถทำได้ด้วยเครื่องมือ DevOps ตัวอย่างเช่น ใช้เครื่องมือ Infrastructure as Code (IaC) หรือที่เรียกว่าเครื่องมือระบบอัตโนมัติมิดเดิลแวร์ เครื่องมือเหล่านี้ช่วยให้การติดตั้ง การจัดการ และงานอื่นๆ สำหรับมิดเดิลแวร์เป็นแบบอัตโนมัติ ตัวอย่างเช่น เครื่องมือการทำงานอัตโนมัติสามารถนำแอปพลิเคชัน (เว็บแอปพลิเคชันเซิร์ฟเวอร์ ฐานข้อมูล เครื่องมือตรวจสอบ) ที่มีการกำหนดค่าที่ถูกต้อง และส่งไปยังแอปพลิเคชันเซิร์ฟเวอร์

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

คู่มือ Dummies: การสร้าง DevOps Chains ด้วยเครื่องมือโอเพ่นซอร์ส

รายละเอียดในบทความ Opensource.com:

ตอนนี้อะไร?

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

ต่อไปนี้เป็นบทความเกี่ยวกับ DevOps ที่ดีสำหรับผู้เริ่มต้น:

คุณยังสามารถรวม DevOps เข้ากับเครื่องมือแบบเปิดที่คล่องตัว:

ที่มา: will.com

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