DevOps

ถาม & ตอบสำหรับวิศวกรซอฟต์แวร์ที่ทำงานเกี่ยวกับการทดสอบอัตโนมัติการส่งมอบอย่างต่อเนื่องการรวมบริการและการตรวจสอบและการสร้างโครงสร้างพื้นฐาน SDLC

2
วิธีการใช้หลักการสี่ตาสำหรับการแก้ไขฉุกเฉิน?
พิจารณาสถานการณ์นี้ (เปรียบเทียบใด ๆ กับสถานการณ์โลกแห่งความเป็นจริงโดยไม่ได้ตั้งใจ): 3:07 am : ฝ่ายสนับสนุนที่โทรเข้ามา " มีบางอย่างในการผลิตลดลงฉันต้องการความช่วยเหลือของคุณ! " 3:12 น. : เชื่อมต่อกับระบบ (ยอมรับการเข้าสู่ระบบ) ... และไม่มีเวลาดื่มกาแฟ 3:15 น. : โชคดีคุณทันทีคุณสามารถตรวจสอบปัญหาผ่านข้อความแสดงข้อผิดพลาดบางแห่ง 3:17 น. : ใช้กล่องเครื่องมือ SCM ของคุณเพื่อคว้ารหัสแก้ไขปัญหาทดสอบได้ดีมาก ... การแก้ไขของฉันใช้งานได้! 3:20 น. : ติดต่อกับทีมDev Ops เพื่อจัดส่งการแก้ไขและเพื่อให้การผลิตทำงานอีกครั้ง 3:21 น. : ธงสีแดง ... " หากต้องการความเคารพต่อสี่ตาเราต้องมีอีก 2 ตาที่จะได้รับการอนุมัติสำหรับการแก้ไขนี้ " 3:22 am : ggggrrrreat …

3
ตัวบ่งชี้ประสิทธิภาพหลัก (KPI) ใดที่ใช้วัด DevOps
ฉันพยายามผลักดันพฤติกรรมที่ดีภายในโปรแกรมการเปลี่ยนแปลง DevOps เพื่อสนับสนุนสิ่งนี้ฉันกำลังมองหาการระบุตัวชี้วัดที่สามารถดำเนินการได้รอบ ๆ สาขาปฏิบัติการ: การจัดการปัญหาและเหตุการณ์ การจัดการความจุ การจัดการการเปลี่ยนแปลงและการวางจำหน่าย เพื่อให้มีความชัดเจนอย่างยิ่งสิ่งเหล่านี้เป็นฟังก์ชั่นที่เคยเป็นขององค์กรการดำเนินงานและตอนนี้เป็นเจ้าของโดยองค์กร Agile / DevOps มีตัวชี้วัดที่มีอยู่ที่ขับเคลื่อนพฤติกรรมที่ไม่ดีคือ: เวลาในการวิเคราะห์สาเหตุรากเสร็จสมบูรณ์: ขับ RCAs ที่ไม่สมบูรณ์เพียงเพื่อให้เข้าสู่ระบบตรงเวลา ระยะเวลาดำเนินการทดสอบ: ปิดใช้งานการทดสอบที่รันนานโดยไม่คำนึงถึงมูลค่าทางธุรกิจ การใช้บริการคลาวด์โดยเฉลี่ย: กระตุ้นความมุ่งมั่นของทรัพยากรการคำนวณมากเกินไปส่งผลให้เวลาตอบสนองช้า ตัวบ่งชี้ประสิทธิภาพหลักใดที่สามารถใช้เพื่อส่งเสริมพฤติกรรมที่ดีในโปรแกรม DevOps
13 culture  metrics  kpi 

3
จะไม่“ ดับไฟและลืม” เมื่อทำทริกเกอร์ระยะไกลของเจนกินส์สร้างได้อย่างไร
ฉันพยายามที่จะทริกเกอร์เจนกินส์ที่มีพารามิเตอร์จาก Bamboo ทำตามด้านล่าง: โพสต์ - http://jenkins-url.com/job/jobname/buildWithParameters?ENVIRONMENT=dev&APPLICATION=hello-world แต่ฉันจะได้ 201 ทันทีซึ่งบอกฉันว่าการสร้างถูกสร้างขึ้น ฉันจะทำให้คำขอนี้รอและคืนสถานะความสำเร็จของการสร้างแทนที่จะเป็นไฟและลืมได้อย่างไร เห็นได้ชัดว่ามันเป็นไปได้ตามParameterized-Remote-Trigger-Plugin : แก้ไข: สร้างสิ่งนี้ในท้ายที่สุดหากคุณต้องการ https://github.com/owenmorgan/jenkins-remote-builder

6
องค์กรของฉันต้องการใช้ Agile Soft หรือไม่ dev ก่อนที่จะใช้ DevOps
การพัฒนาซอฟต์แวร์ Agileเป็นวิธีการที่เหมาะสมสำหรับร้านค้าซอฟต์แวร์ในปัจจุบัน แต่ยังมีองค์กรที่ไม่ได้ฝึกฝน Agile ในการพัฒนาซอฟต์แวร์ซึ่งอาจสนใจที่จะใช้ DevOps เมื่อฉันบอกว่าการพัฒนาซอฟต์แวร์เปรียวผมหมายถึงลูกหลานใด ๆ ที่ออกมาของการประกาศสำหรับการพัฒนาซอฟต์แวร์เปรียว เช่นExtreme Programming , Scrum , Lean Software Developmentและอื่น ๆ การพัฒนาซอฟต์แวร์ Agile เป็นข้อกำหนดเบื้องต้นของการใช้ DevOps ในระดับองค์กรหรือไม่
13 culture  agile 

1
คุณจะจัดการสินค้าคงคลังของ Spot อินสแตนซ์บน AWS ด้วย Ansible ได้อย่างไร
ฉันยังใหม่กับ Ansible ด้วยประสบการณ์บางอย่างใน Chef ฉันกำลังพิจารณาเรียนรู้และใช้ Ansible เพื่อจัดการสภาพแวดล้อม ฉันสงสัยว่าวิธีใดที่จะเป็นวิธีที่ดีที่สุดในการจัดการสินค้าคงคลังของจุดอินสแตนซ์ของ AWS ตัวอย่างเช่นเมื่ออินสแตนซ์จุดถูกปิด IP เก่าไม่เกี่ยวข้องอีกต่อไปในสินค้าคงคลังของโฮสต์ มีวิธีการทางเลือกอื่น ๆ สำหรับกรณีการใช้งานของสภาพแวดล้อมยืดหยุ่นหรือไม่?

4
ฉันควรใช้ปลั๊กอินตัวใดเพื่อเริ่มต้นกับเจนกินส์เพื่อจัดการองค์ประกอบเมนเฟรมในรูปแบบ PDS
สมมติว่ามีคนคุ้นเคยกับ DevOps และเมนเฟรม แต่ใหม่สำหรับเจนกินส์ต้องการเริ่มต้นกับเจนกินส์เช่นไปที่: ตรวจสอบความเป็นไปได้ของการจัดการข้อมูลที่เก็บไว้ในไฟล์ส่วนบุคคล (PDS เช่นชุดข้อมูลที่แบ่งพาร์ติชัน ) บนเมนเฟรม (ดังนั้นยังไม่ได้จัดการโดยโซลูชัน SCMทั่วไปใด ๆ ที่มีอยู่สำหรับการจัดการซอฟต์แวร์เมนเฟรม ) เพื่อเรียกใช้ Jenkins ในสภาพแวดล้อมการพัฒนาส่วนบุคคลบางประเภทเช่นในสภาพแวดล้อม Linux ใน Virtual Box (หากมีเหตุผล) หลังจากการติดตั้งและกำหนดค่าเจนกินส์ (น้อยที่สุด) เสร็จสิ้นแล้วคำถามที่แท้จริงจะกลายเป็น " Which of the typical Jenkins plugins, if any, would be needed?" จากปลั๊กอินต่าง ๆ ของเจนกินส์ที่ดูเหมือนจะสมเหตุสมผลในกรณีของฉันดูเหมือนว่าสิ่งเหล่านี้เป็นตัวเลือกที่เป็นไปได้ (อัญประกาศมาจากหน้าที่เชื่อมโยง): ไอบีเอ็ม Zos เชื่อมต่อ ... จัดเตรียมฟังก์ชันผ่านการเชื่อมต่อ FTP กับ IBM z …

2
วิธีการเปิดใช้งานแคช NPM ใน Jenkins สร้างทาสที่ทำงานใน Docker?
ฉันมีภาพนักเทียบท่าเรียกมันfrontend.imageว่าฉันใช้สำหรับเจนกินส์สร้างทาส ปลั๊กอิน Jenkins Dockerจะหมุนคอนเทนเนอร์จากภาพนี้และสร้างสิ่งประดิษฐ์ภายในคอนเทนเนอร์ ทั้งหมดนี้ใช้งานได้ดี ในกรณีfrontend.imageนี้ใช้เพื่อสร้างแอป AngularJs ส่วนหนึ่งของการสร้างแอปพลิเคชันเชิงมุมนี้คือการติดตั้งแพคเกจ npm ที่แอปต้องการ กระบวนการนี้ติดตั้ง npm ดูเหมือนจะใช้เวลานาน 3 นาทีดูเหมือนว่า npm จะติดตั้งทุกแพ็คเกจทุกครั้ง ดังนั้นฉันจึงเพิ่มวอลลุ่มสำหรับทาสของฉันมันเป็นโวลุ่มที่เมาท์โฮสต์ปลั๊กอินนักเทียบท่าจะใช้วอลลุ่มนี้ทุกครั้งที่เรียกใช้คอนเทนเนอร์ส่วนหน้า: ผู้ใช้ที่รันคำสั่งคือnpm install jenkinsNPM เก็บแคชซึ่งคุณสามารถหาได้ด้วยคำสั่งnpm config get cacheที่เอาต์พุต/home/jenkins/.npm นั่นคือเหตุผลที่ฉันมีไดรฟ์ข้อมูลโฮสต์/slaves/volumes/tsl.frontend:/home/jenkinsติดตั้งกับทาสเว็บคอนเทนเนอร์ของฉัน ฉันสร้างแอปพลิเคชัน Angular ของฉันโดยใช้โครงการ Jenkins สร้างไม่มีปัญหาติดตั้งแพคเกจ npm จำนวนมาก ถ้า ssh เข้าสู่โฮสต์ Docker ของฉันและเรียกใช้ cmd ls /slaves/volumes/tsl.frontendฉันเห็นแพ็คเกจ npm มากมาย นี่หมายความว่าเมานต์วอลลุ่มของฉันสำหรับทาสทำงาน ตอนนี้ฉันสร้างโครงการเจนกินส์อีกครั้ง npm ติดตั้งทุกแพ็คเกจเดียวอีกครั้งแม้ว่าคอนเทนเนอร์สร้างทาสของนักเทียบท่าจะใช้เมานต์โฮสต์ปริมาณ ฉันยังสามารถยืนยันได้ด้วยการทุบตีลงในคอนเทนเนอร์ทาสด้วย cmd docker …
13 docker  jenkins  npm 

4
มีแนวทางปฏิบัติที่ดีที่สุดและ / หรือเครื่องมือในการทำความสะอาดอิมเมจ Docker แบบเก่าเป็นประจำหรือไม่?
มีวิธีที่สง่างามหรือการปฏิบัติที่ดีที่สุดเมื่อพูดถึงการลบภาพเก่าออกจาก Registry Docker หรือไม่? ฉันเห็นคำขอ / ปัญหามากมายที่นี่: https://github.com/docker/docker-registry/labels/deleteแต่ไม่พบโซลูชันที่ดี / เป็นที่นิยมสำหรับมัน ดังนั้นมีเครื่องมือหรือเทคนิคที่จะช่วยฉันทำสิ่งนั้นหรือไม่? นอกจากนี้ยังมีแนวปฏิบัติที่ดีที่สุดที่คุณทำตามในขณะที่ทำมันหรือไม่?
13 docker  toolchain 

2
“ โครงสร้างพื้นฐานเป็นรหัส” คืออะไร?
วลี "โครงสร้างพื้นฐานเป็นรหัส" ถูกกล่าวถึงหลายครั้งในช่วงสองสัปดาห์ที่ผ่านมาในบริบทที่แตกต่างกัน ในความเป็นจริงแล้วการมีโครงสร้างพื้นฐานเป็นจรรยาบรรณหมายความว่าอย่างไร

2
วิธีการใช้ขั้นตอนแบบแมนนวลเมื่อสิ้นสุดการจัดส่งอย่างต่อเนื่อง?
คำตอบที่ได้รับการยอมรับคำถามของฉันเกี่ยวกับ " วิธีการที่ไม่รวมอย่างต่อเนื่องที่เกี่ยวข้องกับการส่งมอบอย่างต่อเนื่อง / การใช้งาน? " นอกจากนี้ยังอธิบายถึงความแตกต่างเล็ก ๆระหว่างการส่งมอบอย่างต่อเนื่องและการใช้งานอย่างต่อเนื่อง ดูเหมือนจะเกี่ยวข้องกับคำตอบของคำถามเช่น "คุณต้องการปรับใช้กับการผลิตอย่างไรในขณะที่ตัวเลือกเหล่านี้เป็นตัวเลือก (พิเศษ) ที่จะเลือกจาก: อัตโนมัติ). คู่มือ. ฉันไม่สามารถจินตนาการได้ว่าจะมี "ผู้ดำเนินการ" ที่น่าสงสารที่อีกด้านหนึ่งของกำแพง DevOps ซึ่งจะต้องทำอะไรบางอย่างที่สอดคล้องกับสิ่งที่ "คู่มือ" หมายถึง ... คำถามของฉัน: การอ้างอิงของฉัน (ในคำถามของฉัน) เพื่อ "แจกจ่าย" กับ "ติดตั้ง" ใกล้เคียงกับการใช้งานที่เป็นไปได้ของ "คู่มือ" - ทุกอย่าง? นี่คือคำพูดที่เกี่ยวข้องกับคำถามที่เกี่ยวข้องของฉัน: แจกจ่ายไปยังสภาพแวดล้อมเป้าหมายโดยใช้บางอย่างเช่น FTP (หากสำเนามาตรฐานไม่สามารถเชื่อมช่องว่าง) แต่ยังไม่เปิดใช้งานในเป้าหมาย นั่นคือสิ่งที่ควรจะคล้าย / ใกล้เคียงกับการจัดส่งอย่างต่อเนื่องหรือไม่? ติดตั้ง (หรือเปิดใช้งาน ) ในบางสภาพแวดล้อมเป้าหมายรวมกับสิ่งต่าง ๆ เช่นการผูกการหยุด / เริ่มการทำงานเป็นต้นนั่นคือสิ่งที่ควรจะคล้าย / …

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

1
วิธีการสื่อสารความล่าช้าในการประมวลผลตามคิวให้กับสมาชิกที่ไม่ใช่ด้านเทคนิค?
ฉันรับผิดชอบชุดงานการประมวลผลคิว SQS ด้วยนโยบายการปรับขนาดในApproximateNumberOfMessagesVisibleตัวชี้วัด CloudWatch งานเหล่านี้อาจล้มเหลวในการติดตามจำนวนข้อความที่ส่งด้วยเหตุผลหลายประการ: การลดลงของบริการลดความสามารถของข้อความที่สามารถประมวลผลได้ AutoScaling ถึงขีด จำกัด สูงสุดในขณะที่ความลึกของคิวยังคงเพิ่มขึ้น S3 Outage ส่งผลกระทบต่อบริการ AWS อื่น ๆ ( AutoScalingบริการ) ที่งานการประมวลผลคิวใช้เพื่อตอบสนองความต้องการ เมื่อพูดถึงการขาดหายกับสมาชิกในทีมที่ไม่ใช่ด้านเทคนิคฉันต้องการสื่อสารความล่าช้าเฉพาะของการประมวลผลคิวที่สามารถแปลเป็นความเสื่อมโทรมที่ลูกค้าเห็นได้ ฉันจะทำสิ่งนี้กับ SQS queues ได้อย่างไร

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

2
ในการออกแบบสีเขียวสีน้ำเงินปรับใช้วิธีการเผยแพร่ปริมาณการใช้งาน websocket จากเซิร์ฟเวอร์สดไปเป็น hot swap
การปรับใช้สีน้ำเงินสีเขียวเกี่ยวข้องกับการปั๊มกระแสข้อมูล prod สด (สีน้ำเงิน) ในสภาพแวดล้อม hot swap non prod (สีเขียว) ในการเตรียมการปรับใช้เพื่อใช้งานสภาพแวดล้อมสีเขียวเช่นสีเขียวมีการซิงค์ข้อมูลแบบเต็มกับสภาพแวดล้อมสีน้ำเงิน prod ก่อนหน้า ฉันสงสัยว่าสิ่งที่ผู้คนกำลังใช้เพื่อคัดลอกปริมาณการเข้าชม websocket อย่างต่อเนื่องจากสีฟ้าเป็นสีเขียวฉันจะเขียนของตัวเองหรือมีห้องสมุด websocket ที่เผยแพร่ / สมัครสมาชิกหรืออาจเป็นวิธีที่แตกต่างจากสีเขียวสีน้ำเงิน? แอพของฉันมีเซิร์ฟเวอร์ REST ของ nodejs ซึ่งจัดการปริมาณการใช้งาน websocket จากอุปกรณ์มือถือ ... เซิร์ฟเวอร์ mongodb และอื่น ๆ ... ในแต่ละคอนเทนเนอร์ใน GCE / AWS ฉันรู้ว่าฉันสามารถทำให้ mongodb ซิงค์จากสีน้ำเงินเป็นสีเขียวได้ แต่นั่นจะไม่ใช้เซิร์ฟเวอร์ nodejs สีเขียวที่มีปริมาณการใช้งานสดซึ่งเป็นการตรวจสอบการถดถอยที่ดีฉันกำลังมองหา อาจเป็นไปได้ถ้าฉันเพิ่งส่งต่อ HTTP ปริมาณการใช้ websocket ที่ทำงานบน HTTP จะดูแลตัวเองและไม่ต้องการตั้งค่าสีเขียวสีน้ำเงินที่เฉพาะเจาะจง

3
ดำเนินการงาน Ansible หลายรายการด้วยรายการที่เหมือนกัน
ฉันใช้เพลย์ลิสต์ ansible เพื่อกำหนดค่า Apache สำหรับรายการไซต์ playbook ต้องคัดลอกเทมเพลตการกำหนดค่าโฮสต์เสมือนสำหรับแต่ละไซต์ไว้แล้วเปิดใช้งานแต่ละไซต์โดยใช้a2ensite: - name: Install apache site conf template: src=apache-sites-{{item}}-conf.j2 dest=/etc/apache2/sites-available/{{item}}.conf mode=0644 with_items: - sitea - siteb - sitec - sited - name: Enable site apache conf command: a2ensite {{item}} args: creates: /etc/apache2/sites-enabled/{{item}}.conf with_items: - sitea - siteb - sitec - sited ฉันไม่ชอบที่จะต้องทำซ้ำรายการเดียวกันสำหรับแต่ละงาน ฉันจะกำหนดค่า playbook …
13 ansible 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.