DevOps

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

1
“ Push on Green” คืออะไร
ภายใน Google และองค์กร DevOps อื่น ๆ พวกเขาพูดคุยเกี่ยวกับ "Push on Green" ซึ่งฉันเชื่อว่าเป็นวิธีการส่งมอบอย่างต่อเนื่องตามการทดสอบอัตโนมัติที่ประสบความสำเร็จและการปรับใช้กับสภาพแวดล้อมก่อนเกิดเหตุการณ์ "Push on Green" คืออะไรและเกี่ยวข้องกับการนำไปใช้อย่างไร

1
โหลดที่เก็บสิ่งประดิษฐ์ Nexus แบบสมดุล
Load Balancing Nexus ยังไม่ได้รับการสนับสนุนโดย Sonatype ยกเว้นโดยการวางตัวอย่าง Nexus ในด้านหน้าของทั้งสองกับสมาร์ทพร็อกซีเปิดการใช้งานหรือผ่านทางคุณลักษณะใหม่ ถึงกระนั้นฉันก็ให้มันยิงโดยการแบ่งปันระบบไฟล์กับ GlusterFS สำหรับ/storageและพยายามที่จะเปิดใช้งานความเหนียวในการกำหนดค่า Apache Load Balancerและในการกำหนดค่า Nexus สำหรับ UI ด้วย UI ฉันล้มเหลวอย่างน่าสังเวชเนื่องจากดูเหมือนว่าคอนเทนเนอร์ Nexus ไม่เคารพคุณสมบัติสำหรับการตั้งค่าคุกกี้ ใช้การกำหนดค่าต่อไปนี้ในขณะนี้: สำหรับการจัดเก็บดูเหมือนว่าจะทำงานโดย จำกัดGETและHEADขอเท่านั้นยังคงต้องลองเปิดเพื่อPOSTs ฉันไม่แน่ใจเกี่ยวกับผลกระทบที่เป็นไปได้ของงานที่กำหนดดังนั้นทุกอย่างถูกปิดใช้งานในโหนด "รอง" มีใครประสบความสำเร็จในการกำหนดค่าที่เชื่อถือได้ในระดับหนึ่งสำหรับ Nexus-Balancing หรือไม่? UI ไม่สำคัญที่จะต้องมีความสมดุลในการโหลดฉันจะมีความสุขมากกับการจัดเก็บ

2
ฉันควรเก็บตัวแปรสภาพแวดล้อมของฉันอย่างไร
นี่เป็นคำถามที่กว้างขวางเกี่ยวกับวิธีการและคำแนะนำเกี่ยวกับตัวแปร / โครงสร้างสภาพแวดล้อม แต่ท้ายที่สุดฉันกำลังมองหาคำตอบสำหรับคำถามที่เฉพาะเจาะจงของ 'ฉันจะเก็บตัวแปรสภาพแวดล้อมของฉันได้อย่างไร' ประการแรกการชี้แจงบางอย่าง: สภาพแวดล้อมสำหรับฉันอาจมาจากเซิร์ฟเวอร์ 3 ถึง 10 ตัวและเป็นวิธีที่มีโครงสร้างพื้นฐานของลูกค้าเฉพาะราย ภายในแต่ละสภาพแวดล้อมมีตัวแปรบางตัวที่ส่วนใหญ่สร้างขึ้นโดยอัตโนมัติจากอินพุตคีย์บางตัว (ชื่อ, ขนาดและอื่น ๆ ) เนื่องจากมันอยู่ในขณะนี้เรากำลังเก็บตัวแปรสภาพแวดล้อมของเราทั้งหมดในโครงสร้างดังนี้: <playbook>.yml # Various playbooks for deployment roles/windows # Ansible role for Ubuntu roles/ubuntu # Ansible role for Ubuntu config/hosts/<name>.yml # Ansible inventory config/hosts/vars/<name>.json # Environment specific variables ตอนนี้การกำหนดค่าจะเริ่มต้นเป็น submodule ในที่เก็บ git ข้างต้น เนื่องจากไฟล์ตัวแปรเปลี่ยนแปลงค่อนข้างบ่อยสิ่งนี้ทำให้เกิดปัญหากับการเปลี่ยนแปลงข้อมูลครั้งเดียวสองครั้งหรือแม้กระทั่งสามครั้งระหว่างกระทำการเปลี่ยนแปลงยากที่จะติดตามมากขึ้น …

1
จะอัปเกรดไฟล์ job-dsl เป็น Jenkins 2 pipelines ได้อย่างไร
มีวิธีปฏิบัติทั่วไปสำหรับการย้ายที่เก็บขนาดใหญ่ของ Jenkins job-dsl ไปยัง Jenkins2 pipelines หรือไม่? ฉันกำลังมองหาวิธีในการทดสอบพฤติกรรมของการสร้างที่ไปไกลกว่าการเปรียบเทียบของสิ่งประดิษฐ์ที่สร้างขึ้นจากฐานรหัสเดียวกัน จริงๆแล้วเรามีโครงสร้างพื้นฐานที่ค่อนข้างใหญ่ติดตั้งผ่าน Ansible และเรามีสภาพแวดล้อมการตรวจสอบที่เทียบเท่ากับการผลิตทอพอโลยีดังนั้นจึงไม่เป็นปัญหา ฉันสนใจวิธีการตรวจสอบที่เราสามารถทำได้โดยอัตโนมัติในขณะที่เราสร้างมากกว่า 300 ที่เก็บโครงการ

1
วิธีสร้างโฮสต์บนทีม DigitalOcean ด้วย Terraform
ทีมในมหาสมุทรดิจิตอลมีที่ผ่านมามากและมีไม่มีเอกสารเกี่ยวกับการใช้พวกเขาด้วยterraform ข้อมูลทั้งหมดที่ฉันสามารถพบคือวิธีการทำงานกับพวกเขาด้วยตนเอง ฉันหวังว่าฉันจะพูดอะไรบางอย่างเช่น: resource "digitalocean_droplet" "host" { image = "${var.image}" name = "${var.host_name}" region = "${var.region}" size = "${var.size}" private_networking = "${var.private_networking}" ssh_keys = ["${var.ssh_fingerprint}"] team = "${var.team}" } สังเกตteam = "${var.team}"ที่ท้าย เนื่องจาก Terraform เป็นเพียง wrapper ที่อยู่ด้านบนของ API ผู้ให้บริการฉันจึงดูเอกสารที่พยายามหาจุดสิ้นสุดของฟิลด์เกี่ยวกับเรื่องนี้ แต่ไม่พบอะไรเลย ฉันจะใช้ทีม Digital Ocean กับ Terraform ได้อย่างไร หรือฉันกำลังติดอยู่กับmainบัญชีถ้าฉันต้องการที่จะทำให้สิ่งอัตโนมัติด้วย Terraform?
11 terraform 

1
คาถาของ Kubernetes คืออะไร?
คำถาม อะไรคือสิ่งที่สะกดของคิดในใจขึ้นใน Kubernetes? พื้นหลัง ติดตามKubernetes บน Ubuntuและเรียกใช้kubernetes conjure-upซึ่งแสดงสแน็ปช็อตถามว่าควรเลือกคาถาใด แต่ไม่แน่ใจว่าสิ่งนี้ถามอะไร การเลือกการสะกดในเอกสาร Conjure-upจะบอกถึงคาถาและการเลือก แต่ไม่ชัดเจนว่ามันยังอยู่ด้วยเหตุใดจึงมองหาคำอธิบายและข้อเสนอแนะที่จะเลือก (แกนกลางหรือมาตรฐาน) และสิ่งที่พวกเขาเป็น

2
รับบันทึกการเปลี่ยนแปลงทั้งหมดตั้งแต่สร้างสำเร็จครั้งสุดท้ายใน Jenkins Pipeline
ในท่อส่งเจนกินส์ของฉันฉันจะได้รับบันทึกการเปลี่ยนแปลงของการสร้างปัจจุบันโดยสิ่งนี้ def changeLogSets = currentBuild.changeSets มีวิธีรับบันทึกการเปลี่ยนแปลงทั้งหมดหรือไม่ตั้งแต่สร้างสำเร็จครั้งล่าสุด

4
ดูถัง AWS S3 ทั้งหมดและรายการที่เก็บข้อมูลถังแต่ละอันที่ใช้
ฉันมีบัญชีAWSหลายบัญชีและฉันต้องการรายการS3ถังทั้งหมดต่อบัญชีจากนั้นดูขนาดรวมของถังทั้งหมด ปัจจุบันฉันสามารถดูขนาดการจัดเก็บของที่เก็บS3เดียวได้ด้วย: aws s3 ls s3://mybucket --recursive --human-readable --summarize

2
วิธีในการ DevOps จ้างกระบวนการเพิ่มประสิทธิภาพผ่านกระบวนทัศน์ CALMS?
การสรรหาบุคลากร DevOps ส่วนใหญ่เกิดขึ้นตามมาในการจับคู่คำหลักซึ่งนำไปสู่ความคิดของฉันในการมุ่งเน้นเทคโนโลยีเพียงอย่างเดียว ตอนนี้ DevOps เป็นอะไรที่มากกว่าแค่เทคโนโลยีและวิศวกร DevOps ไม่ใช่แค่ผู้ดูแลระบบที่เก่งกว่าด้วยทักษะการเขียนโค้ด บทบาท / โปรไฟล์อาวุโส DevOps หมายถึงฉันยังเสนออาวุโสในรากฐานและการปฏิบัติอื่น ๆ อีกมากมายนอกเหนือจากทักษะด้านโครงสร้างพื้นฐานและวิศวกรรมซอฟต์แวร์เช่น Lean, การวัดและการเปิดกว้างและการสื่อสาร (ผู้ที่ขอ DevOps ว่าจ้างสำหรับทักษะการสื่อสารของพวกเขา ดังนั้นโฆษณาหางาน / สัมภาษณ์จะมีประสิทธิภาพมากขึ้นในบางด้าน - ตัวอย่างเช่นโดยใช้คำถามหมวดหมู่CALMSด้วยหรือไม่ - นำไปสู่คำถามเช่น "ตอนนี้คุณจะนำหลักการลีนมาใช้อย่างไรได้อย่างไรด้านวัฒนธรรมได้รับการกล่าวถึงในโครงการ DevOps ล่าสุดของคุณอย่างไร" รายละเอียดเพิ่มเติม: C ulture (เช่นกลยุทธ์สำหรับการจัดการความขัดแย้งและทัศนคติต่อความล้มเหลวของตนเองและของผู้อื่น) A utomation (ที่นี่คุณถามเกี่ยวกับทักษะหุ่นเชิด / นักเทียบท่า ฯลฯ ) L ean (รากฐานของ Lean ประเภทของขยะ) M easurement (ขอเครื่องมือเช่น JMeter …
11 culture 

2
ความพยายามที่รู้จักกันในการสร้างรูปแบบอภิปรัชญาของ DevOps คืออะไร?
วันนี้สำหรับโดเมนจำนวนมากมี ontology ความหมายสำหรับการทำให้ข้อมูลเครื่องโดเมนสามารถอ่านได้ มีข้อกำหนดจำนวนมากใน DevOps และโดเมนที่เกี่ยวข้องซึ่งมักจะสร้างโดยผู้ขาย แต่ใช้กับเครื่องมืออื่น ๆ เช่นท่อส่งที่ประกาศในเจนกินส์ อะไรคือความพยายามในปัจจุบันในการสร้าง ontology ของโดเมน DevOps อ้างอิง / อ่านเพิ่มเติม: การพัฒนาอภิปรัชญา 101: คำแนะนำเกี่ยวกับการสร้างอภิปรัชญาคนแรกของคุณ อภิปรัชญา (วิทยาการสารสนเทศ) ที่เก็บอภิปรัชญา อภิปรัชญาสำหรับทรัพยากรสื่อ 1.0

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

1
แนวทางปฏิบัติที่ดีที่สุดเมื่อทำการติดตั้ง Drupal (หรือซอฟต์อื่น ๆ ) โดยอัตโนมัติเกี่ยวกับการตั้งค่าฐานข้อมูล
สมมติว่าฉันมีการติดตั้ง Drupal และ CiviCRM เพื่อทำให้เป็นอัตโนมัติ อย่างไรก็ตามสิ่งเหล่านี้ต้องการการกำหนดค่าเฉพาะสำหรับการทำงานร่วมกัน (การแก้ไขไฟล์และการกำหนดค่าฐานข้อมูลบางอย่าง) ฉันควรทำการติดตั้งรุ่นคงที่ (เช่นDrupal 4.7.5 + CiviCRM 4.5.6) ติดตั้งและกำหนดค่าแล้วบันทึกไฟล์ที่แก้ไขพร้อมฐานข้อมูลหรือไม่ หรือฉันควรใช้ความพยายามมากขึ้นในการสร้างสคริปต์ของฉันและทำแบบสอบถามและ seds เพื่อแก้ไขการตั้งค่าเหล่านั้นในฐานข้อมูลและไฟล์?

1
วิธีรวมข้อความ Slack ที่กำหนดเองเมื่อทำเสร็จแล้วเท่านั้น?
เรากำลังทำงานเจนกินส์กับประกาศหย่อนปลั๊กอิน มีวิธีการส่งข้อความที่กำหนดเองเท่านั้นเมื่อเสร็จสมบูรณ์ไม่ใช่ที่เริ่ม? เพื่อความชัดเจนฉันไม่ต้องการปิดใช้งานข้อความเริ่มต้นการสร้างฉันต้องการให้ข้อความที่กำหนดเองแสดงเมื่อเสร็จสิ้นแล้วเท่านั้น (สำเร็จ) ใช้กรณีเป็นงานเช่นลบสแต็ค เราใช้ข้อความที่กำหนดเองเพื่อให้ชัดเจนว่าสแต็คงานที่ลบ แต่คุณท้ายด้วยข้อความหย่อนเช่น (ถอดความ) Delete job started Deleted Alex stack Delete job finished Deleted Alex stack เห็นได้ชัดว่าคุณสามารถดูว่าสิ่งนี้ทำให้เกิดความสับสน ฉันอยากได้ Delete job started Delete job finished Deleted Alex stack "ไม่สามารถทำได้" เป็นคำตอบที่ยอมรับได้หากเป็นเช่นนั้น ฉันรู้ว่าฉันสามารถแก้ไขปัญหาท่อส่งได้ แต่ฉันชอบการแก้ไขด่วนสำหรับงานที่เรายังไม่ได้แปลง
11 jenkins  slack 

1
มีวิธีการปิดการใช้งานปลั๊กอินเจนกินส์สำหรับงานเดียวหรือไม่?
ฉันใช้ปลั๊กอิน Build timeoutเพื่อแจ้งเตือนเมื่องานค้าง ฉันมีงานหนึ่งที่ก่อให้เกิดการแจ้งเตือนนี้เพราะมันมีขั้นตอนที่มีเวลาดำเนินการนาน ฉันต้องการปิดใช้งานปลั๊กอินหมดเวลาบิลด์ แต่สำหรับงานนั้นเท่านั้นมีวิธีทำเช่นนั้นหรือไม่ ฉันใช้ Jenkins v2.22 เราไม่ใช้ตัวเลือกในตัวสำหรับงานที่จะไม่ยุติในการหมดเวลาเราใช้ sensu ปลั๊กอินเพื่อตรวจสอบสถานะของตัวแปรน่าจะติด

1
วิธีการลบโหนดที่ตายโดยอัตโนมัติจากคลัสเตอร์ RabbitMQ
ฉันวางแผนที่จะสร้างคลัสเตอร์ RabbitMQ โดยใช้ Ansible บน AWS VPC กับ Amazon load balancer เป็นส่วนหน้าเพื่อเชื่อมต่อกับมัน ข้อเสนอแนะวิธีการลบโหนดที่ตายแล้วจากคลัสเตอร์ RabbitMQ ตามกฎการปรับค่าอัตโนมัติที่โหนดสามารถขึ้นและลงหรือถ้าคุณใช้อินสแตนซ์จุด? เมื่อโหนดล่ม RabbitMQ จะไม่ลบมันออกจากรายการการจำลองแบบอัตโนมัติฉันเห็นได้Node not runningใน UI การจัดการ ฉันจัดการเพื่อเข้าร่วมกลุ่มอินสแตนซ์ที่ปรับขนาดได้โดยอัตโนมัติผ่าน Ansible และ userdata

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