DevOps

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

4
วิธีการโครงสร้าง DevOps รหัสที่เกี่ยวข้องและกำหนดค่าในที่เก็บรหัส?
เรากำลังเติบโตในฐานะ บริษัท ผลิตภัณฑ์ของเรากำลังขยายตัวและกิจกรรมที่เกี่ยวข้องกับ DevOps และความพยายามของเราก็เพิ่มขึ้นเช่นกัน - เราได้เปลี่ยนจาก Bamboo เป็นเจนกินส์ที่ยืดหยุ่นและสามารถกำหนดค่าได้มากขึ้นโดยใช้ท่อส่งและปลั๊กอินอื่น ๆ เปลี่ยนเป็น Ansible และเริ่มใช้ Docker ที่นี่และที่นั่นภายใน ทุกสิ่งเหล่านี้ต้องการการเขียนโค้ดหรือการกำหนดค่าในระดับหนึ่ง - สคริปต์และการกำหนดค่า Ansible, สคริปต์ Groovy Jenkins, Dockerfiles และ YAML configs สำหรับตอนนี้เราได้สร้างแยกต่างหาก "ปฏิบัติการ" พื้นที่เก็บข้อมูลกับไดเรกทอรีระดับสูงสำหรับjenkins, ansible, dockerและother(ซึ่งเป็นชื่อที่น่ากลัว แต่สำหรับตอนนี้ทุกสิ่ง "อื่น ๆ" DevOps อัตโนมัติจะมี) วิธีการของเราไม่ถูกต้องและอาจไม่ขยายตัว แต่แนวทางปฏิบัติที่ดีที่สุดและคำแนะนำในการเก็บรหัสที่เกี่ยวข้องกับ DevOps ในที่เก็บรหัสหรือที่เก็บคืออะไร

2
จะติดตามการเปลี่ยนแปลงการตั้งค่า AWS ได้อย่างไร?
มีวิธีติดตามการเปลี่ยนแปลงที่เราทำกับระบบ AWS หรือไม่? ตัวอย่างเช่นการเปลี่ยนแปลงการตั้งค่าเครือข่ายย่อยจากการใช้natเป็นiwg - สิ่งเหล่านี้แสดงข้อความแล้วหายไป มีวิธีในการรับ AWS เพื่อสร้างบันทึกเพื่อให้สามารถติดตามการเปลี่ยนแปลงที่ทำกับสิ่งที่และเมื่อใด สิ่งที่ใกล้เคียงที่สุดที่เรามีในขณะนี้คือเหตุการณ์ ElasticBeanstalk - แต่แม้เพียงแค่บอกสิ่งที่ AWS ทำเท่านั้นไม่ใช่การเปลี่ยนแปลงการตั้งค่าที่จะทำให้เกิดเหตุการณ์

2
หน่วยความจำที่ถูกปลดปล่อยอย่างฉับพลันทุกวันในเวลาเดียวกัน
ฉันมี VMs บางส่วนบน Windows Azure ที่ใช้งานเว็บไซต์อีคอมเมิร์ซของเราและเมื่อไม่นานมานี้เราเริ่มใช้ Telegraf, InfluxDb และ Grafana เพื่อจับตาดูเครื่องเหล่านี้ หลังจากสองสามสัปดาห์ของการรวบรวมข้อมูลฉันสังเกตเห็นรูปแบบแปลก ๆ ที่เกี่ยวข้องกับตัวชี้วัดหน่วยความจำที่มีอยู่ : เกือบทุกวันในช่วงเวลาเดียวกันของวันฉันสังเกตเห็นว่ามีหน่วยความจำจำนวนมากที่ถูกปลดปล่อยซึ่งเนื่องจากทักษะ DevOp ที่ จำกัด มากของฉันฉันไม่สามารถเข้าใจได้ว่าอะไรเป็นสาเหตุของสิ่งนี้ นี่คือแผนภูมิที่แสดงรูปแบบนี้: คำถามของฉันคืออะไรจะนำไปสู่อะไรเช่นนี้? ฉันรู้สึกอยากจะสงสัยว่า Memory Leak กำลังจะตำหนิ แต่ ... หน่วยความจำฟรีไม่เคยลดลงต่ำกว่า 70% และเกิดขึ้นกับ VMs สองตัวที่มีปริมาณการใช้งานมากที่สุด! ฉันควรกังวลเมื่อเห็นสิ่งนี้หรือไม่ ป.ล. : ฉันได้รวบรวมการวัดสำหรับ Private e Virtual bytes สำหรับแต่ละบริการ windows ที่เราใช้และกระบวนการ w3wp ... แม้ว่าฉันได้อ่านแล้วว่า metrics นี้ไม่น่าเชื่อถือมากนักหากคุณมีหน่วยความจำรั่ว แต่อย่างน้อยฉันจะพยายามหาแนวโน้มบางอย่างและดูว่ามันมีความสัมพันธ์กับรูปแบบที่แสดงด้านบนหรือไม่
10 azure  windows 

2
ดูเหมือนว่า Git จะรู้จักคุณสมบัติ http.sslcainfo จาก. gitconfig แต่ไม่สนใจในการประมวลผลหรือไม่ SEC_E_UNTRUSTED_ROOT
ทั้งหมดฉันมีห่วงโซ่ใบรับรองที่ใช้งานได้ (ทดสอบได้กับ OpenSSL) แต่อย่างใดฉันไม่สามารถจัดการเพื่อบอก Git ให้โหลดใบรับรองเหล่านี้ได้ ฉันจะได้รับเหมือนกัน "ผู้มีอำนาจรากที่ไม่น่าเชื่อถือ" ข้อผิดพลาด (SEC_E_UNTRUSTED_ROOT) อิสระว่าจุดที่กำหนดค่าคอมไพล์ของฉันไปยังไฟล์หรือห่วงโซ่ใบรับรองปลอมที่มีอยู่ สำหรับรายละเอียดโปรดตรวจสอบภาพหน้าจอที่แนบมา การตั้งค่าที่ฉันใช้.gitconfigเป็นไฟล์ปลอม: sslCAInfo = C:/tmp/foobar.crt หรือสำหรับไฟล์จริงที่ทำงานกับ OpenSSL: sslCAInfo = C:/tmp/ca-bundle.crt ทรานสคริปต์คอนโซล: C:\tmp>openssl version OpenSSL 0.9.8h 28 May 2008 C:\tmp>git --version git version 2.12.2.windows.2 C:\tmp>git config --list http.sslverify=true http.sslcainfo=C:/tmp/ca-bundle.crt C:\tmp>dir 24.04.2017 13:45 10.875 ca-bundle.crt c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile …
10 git  windows  ssl 

2
วิธีหลีกเลี่ยง“ ลองพายุอีกครั้ง” ในบริการแบบกระจายได้อย่างไร
"พายุลองใหม่" เกิดขึ้นเมื่อไคลเอ็นต์ได้รับการกำหนดค่าให้ลองใหม่จำนวนครั้งก่อนที่จะยกเลิกนโยบายการลองใหม่เป็นสิ่งจำเป็นเนื่องจากการสูญเสียแพ็กเก็ตจะเกิดขึ้นในการทำงานปกติของบริการ ใช้ตัวอย่างนี้: หากตัวอย่างเช่นบริการโดยรวมได้รับการปรับขนาดเพื่อรองรับ 80,000 คำขอต่อวินาทีและทำงานที่ความจุประมาณ 80% การรับส่งข้อมูลที่ขัดขวางการรับบริการที่ได้รับ 101,000 คำขอต่อวินาทีจะทำให้ 1,000 คำขอเหล่านั้นล้มเหลว เมื่อนโยบายลองใหม่เริ่มต้นขึ้นคุณจะจบลงด้วยการร้องขอมากกว่า 1,000+ ครั้งขึ้นอยู่กับที่ตรวจพบความล้มเหลวซึ่งจะผลักดันบริการโดยรวมสูงสุดถึง 102,000 คำขอต่อวินาที - จากนั้นบริการของคุณจะทวีความรุนแรงขึ้นเป็นสองเท่า คำขอที่ล้มเหลวทุกวินาที นอกเหนือจากการให้บริการที่มากเกินขนาดใหญ่เกินกว่าการทำธุรกรรมสูงสุดที่คาดการณ์ไว้ซึ่งจะไม่มีประสิทธิภาพ คุณสามารถใช้กลยุทธ์ใดในการหลีกเลี่ยง "ลองพายุอีกครั้ง"

1
ฉันควรใช้การป้อนข้อมูลแบบหลายครั้งใน Logstash หรือไม่
หลังจากงานวิจัยรอบbeatsปลั๊กอินอินพุตและเขียนพิเศษนี้ฉันสงสัยว่าฉันควรใช้อินพุตจังหวะเดียวหรือหลายรายการเพื่อจัดการประเภทรายการทวีคูณ ฉันจะมีกิจกรรมที่มาจากเครื่องจักรประมาณ 500 เครื่องโดยมีการกระจาย 20/80 windows / linux ฉันวางแผนที่จะใช้ผู้ส่งหลายจังหวะ , filebeat, metricbeat และ packetbeat มีความสนใจในการใช้หนึ่งอินพุตต่อประเภท / คู่ os หรือจะเพียงหนึ่งอินพุตและ "if type = ... " ในไปป์ไลน์ตัวกรองจะเพียงพอหรือไม่

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

2
คุณสามารถใช้ `aws-sdk` เพื่อเก็บวัตถุใน Google Storage ได้หรือไม่?
Google Storage อ้างว่าพวกเขาสนับสนุนการทำงานร่วมกันในการแก้ปัญหาด้วย Amazon AWS S3 และ API ระบบยูคาลิปตัส แหล่งที่มา: https://cloud.google.com/storage/docs/interoperability สามารถใช้aws-sdkสำหรับ Java หรือ Node.js หรือ Python เพื่อจัดเก็บและดึงข้อมูลวัตถุด้วย Google Storage API ได้หรือไม่

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

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

2
“ การแปลง DevOps” ประกอบด้วยอะไร?
บริษัท ที่ปรึกษาบางแห่งกำลังส่งเสริมบริการที่เรียกว่า "DevOps Transformation" บริษัท ขนาดใหญ่หลายแห่งกำลังพูดถึงเรื่องนี้ในการประชุมและพบปะทั่วโลก "การเปลี่ยนแปลง DevOps" เช่นนี้นำมาซึ่งอะไร? มันมีลักษณะอย่างไรในเงื่อนไขที่สามารถดำเนินการได้ทั้งการแปลงที่สำเร็จและการล้มเหลว

1
จะเก็บไฟล์การกำหนดค่าโดยอัตโนมัติในระหว่างการอัพเกรดหรือติดตั้ง apt-get ได้อย่างไร?
เมื่อดำเนินการและapt-get update; apt-get upgrade -yบนเซิร์ฟเวอร์ฉันพบข้อความ: Setting up sudo (1.8.16-0ubuntu1.5) ... Configuration file '/etc/sudoers' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package …

2
จะปิดการใช้งานบางสาขาใน Multibranch Jenkins Builds ได้อย่างไร
ฉันมีงานหลายสาขาตั้งค่าให้ทำงานสาขาใด ๆ กับ Jenkinsfile ฉันมีตัวเลือกบางอย่างที่ฉันสามารถนึกได้ว่าถ้าฉันต้องการลบสาขาออกจากรายการงานที่กำลังทำงานสำหรับไปป์ไลน์แบบหลายสาขา ฉันสามารถลบสาขา ฉันสามารถลบเจนกินส์ไฟล์ในสาขานั้นได้ วิธีที่สองนั้นดียกเว้นฉันต้องยอมรับและผลักดันมันไปที่ repo git สำหรับสาขาของฉันและถ้าสาขานั้นถูกรวมเข้ากับสาขาอื่นมันจะทำให้ Jenkinsfile หายไป วิธีที่ดีที่สุดในการปิดการใช้งานท่อส่งหลายสาขาเพียงบางสาขาคืออะไร?

4
Terraform: มีไวยากรณ์ที่กระชับสำหรับการระบุหลายแท็กสำหรับทรัพยากรหรือไม่
ในการแนบหลายแท็กเข้ากับทรัพยากรฉันใช้หลายtagบล็อคในปัจจุบัน: resource "aws_autoscaling_group" "instance" { ... tag { key = "Name" value = "${var.cluster_prefix}" propagate_at_launch = true } tag { key = "Owner" value = "${var.tag_Owner}" propagate_at_launch = true } tag { key = "Project" value = "${var.tag_Project}" propagate_at_launch = true } } มันใช้งานได้ แต่ฉันสงสัยว่ามีไวยากรณ์ที่กระชับมากกว่านี้หรือไม่ มันเป็นข้อผิดพลาดเล็กน้อยที่คุณต้องระบุpropagate_at_launchสำหรับแต่ละแท็ก ปรับปรุง:คำถามถูกเขียนขึ้นก่อน Terrafrom v0.12 ออกมา …
10 terraform 

2
อะไรคือความแตกต่างระหว่างสถาปนิก DevOps และที่ปรึกษาของ DevOps Vs DevOps สถาปนิก?
อะไรคือความแตกต่างระหว่างสถาปนิก DevOps และที่ปรึกษาของ DevOps Vs DevOps สถาปนิก? พิจารณาบทบาทที่ชาญฉลาดและเงินเดือนที่ชาญฉลาดและผู้อาวุโสที่ฉลาดและความต้องการงานที่ฉลาด ฯลฯ

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