DevOps

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

5
DevOps ถูก จำกัด ให้กับ บริษัท ที่มีผลิตภัณฑ์ SaaS หรือไม่
แนวทางปฏิบัติที่อธิบายถึง DevOps เช่นการส่งมอบอย่างต่อเนื่องการดำเนินการอัตโนมัติและอื่น ๆ ที่เกี่ยวข้องกับผลิตภัณฑ์ที่ให้บริการอย่างต่อเนื่องเช่นผลิตภัณฑ์ SaaS ตัวอย่างเช่น บริษัท พัฒนาซอฟต์แวร์ที่ส่วนใหญ่ทำโครงการสำหรับลูกค้ารายอื่นอาจไม่สามารถดูแลสิ่งเหล่านี้ได้หลังจากโครงการเสร็จสิ้น และโครงการของลูกค้าจะไม่ถูกแชร์กับลูกค้ารายอื่นเพราะไม่เกี่ยวข้อง DevOps ใช้กับ บริษัท ที่พัฒนาหลายโครงการที่เป็นแบบครั้งเดียวหรือไม่? สิ่งใดที่ใช้กับ DevOps ในกรณีนี้ถ้าทั้งหมด?

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

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

4
มีวิธีใดบ้างในการวัด ROI สำหรับ DevOps
DevOps นั้นซับซ้อนและเกี่ยวข้องกับแง่มุมที่ไม่สามารถกำหนดได้มากมายเช่นวัฒนธรรมและกระบวนการ มีวิธีใดบ้างในการวัดความคิดริเริ่ม DevOps เพื่อความสำเร็จ คุณพิสูจน์ให้เห็นถึงธุรกิจที่การลงทุนที่พวกเขาทำนั้นคืน (หรือบันทึก) ดอลลาร์จริงหรือไม่?
24 metrics  roi 

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

2
จะใช้ cloud-init กับ Terraform ได้อย่างไร?
ฉันทำงานกับ Digital Ocean และ Terraform และฉันสามารถทำให้โดเมน, โดเมนย่อย, ค่ากำหนดเครือข่ายและโฮสต์ได้โดยอัตโนมัติ แต่มีส่วนที่เรียกUser dataว่ามีลักษณะดังนี้: Allows the use of Cloud-init to configure your dropletรายละเอียดของข้อมูลที่ระบุว่า มองไปรอบ ๆ ผมพบว่าเอกสาร คำถามของฉันคือวิธีการใช้ประโยชน์จากสิ่งนี้ในขณะที่ใช้Terraform ?

2
เหตุใดจึงไม่อนุญาตให้ใช้บูลีนใน docker-compose.yml
การกำหนดบูลีนในไฟล์ docker-compose.yml: environment: SOME_VAR: true และdocker upผลลัพธ์การทำงานใน: contains true, which is an invalid type, it should be a string, number, or a null พยายามแก้ไขปัญหา หากความจริงเปลี่ยนเป็นจริงปัญหายังคงมีอยู่ การใช้'true'โค้ดนั้นไม่ได้รับการยอมรับ ( แอพเฟรมเวิร์กเล่นเริ่มใช้งาน./target/universal/stage/bin/APPNAME -Dplay.evolutions.db.default.autoApply=นั่นคือ-Dplay.evolutions.db.default.autoApply=trueหรือ-Dplay.evolutions.db.default.autoApply=falseพารามิเตอร์): VAR มีประเภท STRING มากกว่าบูลีน การใช้yesหรือnoเป็นตัวแปรผลลัพธ์ใน: มีจริงซึ่งเป็นประเภทที่ไม่ถูกต้องมันควรจะเป็นสตริงจำนวนหรือเป็นโมฆะ การใช้yesและการใช้สคริปต์ที่แปลงyesเป็นงานจริง การสนทนา ตามเอกสาร Any boolean values; true, false, yes no, need to be enclosed in …

5
เซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปแบบคืออะไร
มีคำถามบางอย่างเกี่ยวกับเซิร์ฟเวอร์ที่ไม่เปลี่ยนรูปเช่น: วิธีการใช้รูปแบบเซิร์ฟเวอร์ที่เปลี่ยนแปลงไม่ได้โดยไม่สูญเสียความสามารถในการทำ post-mortems เครื่องมือการจัดการการกำหนดค่ามีบทบาทอย่างไรในโครงสร้างพื้นฐานที่ไม่เปลี่ยนแปลง ดูเหมือนว่าจะต้องทำกับเซิร์ฟเวอร์ (ส่วนที่ฉันได้รับ) และเพียงแค่การย่อยไวยากรณ์ของการเปลี่ยนแปลงไม่ได้ฉันคิดว่ามันมีบางอย่างที่เกี่ยวข้องกับ "ไม่สามารถปิดเสียง " ได้ หากการเดานั้นอยู่ใกล้ฉันจะไม่มีเงื่อนงำอะไรที่ไม่สามารถปิดเสียงได้อย่างแน่นอน (และฉันสงสัยว่ามันเกี่ยวข้องกับการ์ดเสียงหรืออะไรซักอย่าง ... ) คำถามของฉัน : อะไรคือ "เซิร์ฟเวอร์ที่ไม่เปลี่ยนรูป" (ในบริบทของ DevOps) ทำไมถึงใช้

4
คอนเทนเนอร์คืออะไร
มีคำถามบางอย่างเกี่ยวกับตู้คอนเทนเนอร์เช่น: เครื่องมือการจัดการการกำหนดค่ามีบทบาทอย่างไรในโครงสร้างพื้นฐานที่ไม่เปลี่ยนแปลง orchestration คอนเทนเนอร์มีปัญหาใดบ้าง Simple CI / CD Container ใน AWS คำถามของฉัน : อะไรคือ "คอนเทนเนอร์" (ในบริบทของ DevOps) ทำไมถึงใช้

2
ทำไมต้องใช้ EXPOSE ใน Dockerfile - เนื่องจากคุณสามารถผูกเข้ากับพอร์ตทั้งหมดได้
ฉันสามารถทำได้docker run -p 3000:3000 image โดยไม่ต้อง EXPOSEพอร์ตที่อยู่ในภาชนะ (ดูด้านล่าง) หากเป็นจริงแล้วทำไมต้องกังวลกับการวาง EXPOSE ไว้ใน Dockerfile มันเป็นเพียงการสื่อสารกับผู้ใช้ภาพ? เพราะฉันไม่รู้เหตุผลที่ใช้งานได้ของพอร์ต EXPOSE หากพวกมันถูกผูกมัดอยู่ดี นี่คือขั้นตอนที่แสดงการเชื่อมโยงพอร์ตในคอนเทนเนอร์แม้ว่าจะไม่ใช่ EXPOSEd ก็ตาม $ cat Dockerfile FROM alpine RUN apk add nodejs npm vim COPY webserver /webserver CMD [ "node", "/webserver/index.js" ] $ docker build . Sending build context to Docker daemon 1.931MB Step …

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

5
วิธีทำความสะอาดภาพรวม AWS EC2 ที่ไม่ได้ใช้งาน
เราจบลงด้วยภาพรวม AWS EC2 ในจำนวนที่พอใช้ซึ่ง AMI ถูกลบไปแล้ว ฉันต้องการวิธีการระบุและลบเด็กกำพร้าเหล่านี้แบบไม่มีคู่มือเพื่อประหยัดเงินและพื้นที่ เป็นการดีที่ฉันคิดว่าสคริปต์ทุบตีใช้ประโยชน์จาก CLIแต่ AWS-fu ของฉันอ่อนแอ ฉันคิดว่ามีคนทำสิ่งนี้มาก่อน แต่ไม่พบสคริปต์ที่ใช้งานได้จริง ในกรณีที่ดีที่สุดสิ่งนี้จะตรวจสอบปริมาณและล้างสิ่งเหล่านั้นด้วย แต่นั่นอาจจะเหมาะกว่าสำหรับคำถามที่สอง

1
ทำไมนักเทียบท่า in-Docker ถึงไม่ดี?
ในเดือนสิงหาคม 2013 Jérôme Petazzoni ได้สร้าง Docker in Docker dindเป็นระยะเวลาสั้น ๆ ทำให้ภาชนะบรรจุ Docker นั้นถูกสร้างขึ้นภายใน Docker Containers การทำงานนี้ได้รับความนิยมอย่างมากทำให้GitHub Repository ของJérômeได้รับดาวนับพันและสามร้อยส้อม ตั้งแต่วันที่ 1.8 ของ Docker ซึ่งวางจำหน่ายสองปีต่อมาในเดือนสิงหาคม 2558 Docker in Docker ได้รับการสนับสนุนโดยตรงจาก Docker อย่างไรก็ตามการใช้ Docker ใน Docker นั้นมาพร้อมกับคำเตือนดูเหมือนว่าจะเกี่ยวข้องกับโพสต์ของJérôme: การใช้ Docker-in-Docker สำหรับ CI หรือสภาพแวดล้อมการทดสอบของคุณหรือไม่ คิดสองครั้ง ซึ่งมุ่งเน้นไปที่เหตุผลที่นักเทียบท่าใน Docker ไม่ใช่ตัวเลือกที่ยอดเยี่ยมสำหรับการรวมอย่างต่อเนื่อง ทำไมการใช้งาน Docker ใน Docker จึงถือว่าไม่ดี มันเป็นเพียงแค่กรณีที่หลีกเลี่ยงเต่าตลอดทาง? หรือข้อควรพิจารณาด้านประสิทธิภาพ?

1
ฉันจะหลีกเลี่ยงข้อเท็จจริงที่ว่า AWS SQS ไม่สอดคล้องกับมาตรฐาน HIPAA ได้อย่างไร
ฉันมีกรณีการใช้งานที่ข้อมูลจาก S3 ถูกจัดคิวไว้ใน AWS SQS ซึ่งเชื่อมต่อกับ CloudWatch ซึ่งเมตริกจะเรียก AWS Lambda อย่างไรก็ตามฉันต้องการให้สถาปัตยกรรมเป็นไปตามมาตรฐานHIPAA ดังนั้นฉันจึงเกิดแนวคิดนี้ขึ้น เมื่อที่เก็บข้อมูล S3 ของฉันได้รับไฟล์ เปิดไฟฟังก์ชั่นแลมบ์ดาซึ่งทำการแฮช / เปลี่ยนชื่อไฟล์และคัดลอกไปยังที่เก็บข้อมูล S3 อีกอัน (ผ่านaws cp) เชื่อมต่อที่ฝากข้อมูลด้วยชื่อที่ถูกแฮช / สัญญาณรบกวนกับคิว SQS นี่เป็นการปฏิบัติที่ดีและปลอดภัยหรือไม่? หรือมีวิธีแก้ปัญหาที่ดีกว่า? (จะมีความสุขมากกว่านี้หากฉันสามารถส่งคีย์เข้ารหัสของ S3 ถึง SQS ได้ แต่ไม่แน่ใจว่าฉันสามารถทำได้หรือเป็นไปได้)

2
วิธีการมีสตรีมบันทึกหลายรายการในนักเทียบท่า
เรามีแอปพลิเคชันที่เขียนบันทึกสามประเภทลงในไฟล์ที่แยกต่างหากสามไฟล์: บันทึกการเข้าถึงบันทึกแอปพลิเคชันทั่วไปและบันทึกระบบ รูปแบบ (และวัตถุประสงค์) ของบันทึกเหล่านี้แตกต่างกันมาก และเรามี logforwarders แยกต่างหากที่ส่งแยกต่างหากไปยังระบบบันทึกข้อมูลส่วนกลางของเรา ตามบันทึกการรักษาเป็นหลักการสตรีมเหตุการณ์เรากำลังคิดเกี่ยวกับการย้ายจากการใช้ไฟล์ไปยัง stdout ในขณะที่เรารู้ถึงประโยชน์บางประการของวิธีการนี้สิ่งนี้ก็หมายความว่าเราจะได้รับกระแสข้อมูลที่ผสานของรูปแบบบันทึกที่แตกต่างกันซึ่งเราจะต้องแยกอีกครั้งก่อนที่เราจะสามารถส่งพวกเขาไปยังระบบกลางของเรา (Kibana / Splunk / ฯลฯ ) หรือด้านใน เราสงสัยว่ามีเครื่องมือหรือคำแนะนำเกี่ยวกับวิธีที่เราควรเข้าหาสถานการณ์นี้หรือไม่
21 docker  logging 

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