DevOps

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


1
“ ไม่มีความพร้อมใช้งานขั้นต่ำ” ใน k8 หมายความว่าอย่างไร
"ไม่มีความพร้อมใช้งานขั้นต่ำ" หมายความว่าอะไร พบการสนทนา GitHubแต่ไม่ชัดเจนสำหรับฉันว่าข้อความแสดงข้อผิดพลาดหมายถึงอะไร
17 kubernetes 

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

1
วิธีสร้างแดชบอร์ดส่วนกลางเพื่อตรวจสอบคลาวด์หลาย ๆ ตัว (Amazon และ Google)
ฉันกำลังมองหาผลิตภัณฑ์หรือบริการเดียวซึ่งสามารถใช้เป็นแผงควบคุมส่วนกลางเพื่อตรวจสอบโครงสร้างพื้นฐานคลาวด์ที่ให้บริการโดย Amazon Web Services และแพลตฟอร์ม Google Cloud นอกเหนือจากแอปพลิเคชัน ฉันกำลังดูตัวเลือกไม่กี่อย่างเช่น sensu ที่รองรับบริการทั้งหมดใน Amazon Web Servicesแต่ฉันไม่พบปลั๊กอินใด ๆ ในการตรวจสอบแพลตฟอร์ม Google Cloud มีบริการหรือผลิตภัณฑ์อื่นใดที่อนุญาตให้ฉันสร้างสิ่งนี้ความชอบของฉันคือโอเพ่นซอร์สหรือไม่ หมายเหตุ: ทุกคนสามารถเข้าถึง GCP และ AWS และหากใครเปิดตัวสิ่งใดสิ่งหนึ่งมันจะเป็นเรื่องง่ายที่จะมีแดชบอร์ดเดียวสำหรับการตรวจสอบ


3
อะไรคือวิธีที่จะบรรเทาผลกระทบของ Mythical Man Month?
กฎหมายของ Brooks: การ เพิ่มกำลังคนไปยังโครงการซอฟต์แวร์ที่ล่าช้าทำให้ภายหลัง ในหนังสือของเขาNo Silver Bullet - Essence and Accidents of Software Engineeringเฟรดเดอริกบรูกส์กำหนดแนวคิดของMythical Man Month : สมมติฐานบรูกส์คือโครงการการเขียนโปรแกรมที่ซับซ้อนไม่สามารถแบ่งพาร์ติชันที่ดีที่สุดที่เป็นงานต่อเนื่องที่สามารถทำงานได้โดยไม่ต้องสื่อสารระหว่างคนงานและไม่มีการสร้างชุดของความสัมพันธ์ที่ซับซ้อนระหว่างงานและผู้ปฏิบัติงานที่มีประสิทธิภาพพวกเขา ตั้งแต่ปี 1982 เราได้ก้าวไปข้างหน้าอย่างแน่นอนและรวบรวมประสบการณ์เพิ่มเติมในการบรรเทาปัญหานี้ มีวิธีแก้ไขปัญหาอะไรบ้างที่คุณได้นำไปใช้ในงานของคุณเพื่อเพิ่มทรัพยากรให้กับโครงการโดยไม่ต้องสร้างปัญหามากขึ้น

2
จะตรวจสอบผลลัพธ์ Jinja ใน Saltstack ได้อย่างไร
ฉันมี templated SLSใน Salt ฉันพยายามสร้าง แต่มันปล่อยซินแทกซ์ที่ไม่ถูกต้องซึ่งส่งผลให้เกิดข้อผิดพลาดเช่น: my-minion-id: - State 'system' in SLS 'network' is not formed as a list ในหลักการก็ควรจะเป็นไปไปอย่างใดตรวจสอบการส่งออกของแม่แบบ Jinja ก่อนที่จะพยายามที่จะแยกการส่งออกเป็นSLSไฟล์ มีโมดูล Python สำหรับตัวแสดงผล Jinja อยู่salt.renderers.jinjaแต่ถ้าฉันพยายามเรียกใช้งานบน CLI ฉันได้รับข้อผิดพลาด: # salt my-minion-id salt.renderers.jinja.render /srv/salt/network/init.sls my-minion-id: 'salt.renderers.jinja.render' is not available. ERROR: Minions returned with non-zero exit code # salt my-minion-id renderers.jinja.render …
16 salt  jinja 

6
คำจำกัดความที่ถูกต้องของ DevOps ในการแนะนำให้รู้จักกับผู้เริ่มต้นคืออะไร
ฉันได้ทำ / สร้างงานนำเสนอที่เกี่ยวข้องกับ SCM จำนวนมากและตอนนี้ฉันพยายาม "อัปเกรด" เป็นตัวตายตัวแทนของ DevOps สิ่งที่ฉันพยายามทำอยู่เสมอในการนำเสนอของฉันคือการสร้างสไลด์การนำเสนอซึ่งรวมถึงข้อความที่ฉันต้องการส่งมอบ (และจากนั้นฉันก็อธิบายเพิ่มเติมในส่วนที่เหลือของงานนำเสนอ) เมื่อทำเช่นนั้นฉันพยายามตอบคำถามของตัวเองเช่น "วลีที่ฉัน 1 ถึง 3 คืออะไรที่ฉันต้องการใช้ถ้าฉันมีเวลาประมาณ 10 ถึง 20 วินาที (เท่านั้น!) เพื่ออธิบายให้คนใหม่ดู? * " ฉันคิดว่าฉันรู้ว่าDevOpsหมายถึงอะไรจริง ๆ และมันเกี่ยวกับอะไร แต่ฉันเคยเห็นการใช้งาน / บริบทที่แปลกประหลาดของDevOps (แม้แต่ในDevOps.SE ... ) มันทำให้ฉันสงสัยว่าบางทีสิ่งที่ฉันคิดว่า DevOps คือผิดทั้งหมด โดยทั่วไปแล้วอะไรคือความหมายของคำจำกัดความของ DevOps

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

2
วิศวกรแพลตฟอร์มคืออะไร
ฉันถูกเรียกหลายสิ่งหลายอย่างในอาชีพของฉันส่วนใหญ่สุภาพ - เมื่อเร็ว ๆ นี้งานสร้าง CI / CD ไปป์ไลน์ถูกเรียกว่า "Platform Engineer" หรือ "Platform Engineering" ความเสี่ยงของชื่อเรื่องดังกล่าวคือคุณได้รับ typecast เข้ามาในบทบาทของวิศวกรที่พัฒนาแพลตฟอร์มเพื่อใช้งานโดยนักพัฒนาและไม่จำเป็นต้องรวม DevOps บิตใด ๆ ของ Ops ในประสบการณ์ของฉันบทบาทมีส่วนเกี่ยวข้องอย่างมากกับงานด้านวินัยเช่นการออกแบบกระบวนการจัดการเหตุการณ์สำคัญการแจ้งเตือนและการตรวจสอบโซลูชัน ในบทบาทที่ "รู้สึก" ราวกับว่ามันมีความเหมือนกันมากกับ Site Reliability Engineering ซึ่งทั้งสองบทบาทนั้นเป็นบทบาททางวิศวกรรมที่แยกจากวิศวกรรมซอฟต์แวร์ แต่ดูเหมือนว่าพวกเขาจะมีรูปแบบแนวโน้มของ Google ที่คล้ายคลึงกัน: มีคำจำกัดความที่ยอมรับได้ของ Platform Engineer หรือเป็นเหมือน SRE เพียงการใช้ความสามารถ DevOps ภายในองค์กรหรือไม่

4
Ansible: มีตัวเลือกอื่นสำหรับการตรวจสอบ telnet ของพอร์ตที่เปิดอยู่หรือไม่
ฉันใหม่กับ Ansible นี่คืองานของฉัน ... ฉันมีโฮสต์มากกว่า 400 แห่งและฉันต้องตรวจสอบว่า 5 พอร์ตที่แตกต่างกันเปิดจากจุดสิ้นสุดไปยังเว็บเซิร์ฟเวอร์ของเราหรือไม่ ทีละคนฉันสามารถเข้าสู่ระบบและเรียกใช้: telnet mywebserver.com 443 telnet mywebserver.com 80 telnet mywebserver.com 8443 .. และอื่น ๆ .. โมดูลหรือปลั๊กอินใดที่สามารถใช้ใน Ansible เพื่อให้ฉันสามารถทำสิ่งนี้โดยอัตโนมัติและรายงานผลลัพธ์ (ไม่ว่าจะเปิดหรือปิดพอร์ต) กลับไปที่เซิร์ฟเวอร์ Ansible ของฉันหรือไม่
15 ansible  testing  ports 

3
วิธีตรวจสอบราคา AWS spot อัตโนมัติ?
ฉันกำลังคิดเกี่ยวกับงานของเจนกินส์เพื่อตรวจสอบราคาสำหรับกล่องตัวแทนที่เราหมุน บ่อยครั้งที่ราคาพุ่งสูงขึ้นและมันจะเป็นหนึ่งหรือสองชั่วโมงก่อนที่ใครก็ตามจะสังเกตเห็นว่าไม่มีตัวแทนใหม่เข้ามาแล้วเราจะต้องเข้าไปด้วยตนเองและตรวจสอบราคาสปอตแล้วปรับตามหรือเปลี่ยนโซน ฯลฯ สัญชาตญาณแรกของฉันคือเส้นทางที่ดีที่สุดคือการมีงาน Jenkins รายชั่วโมงที่เรียกใช้aws ec2 describe-spot-instance-requestsและตรวจสอบคำขอที่ล้มเหลว (และทำให้เราล้มเหลว) แต่ฉันสงสัยว่ามีวิธีที่สะอาดกว่าหรือไม่ซึ่งเกี่ยวข้องกับการเปรียบเทียบราคาที่ยากจริง ๆ (และอาจบอกเราได้อย่างชัดเจนว่าเกิดอะไรขึ้นและจำนวนเท่าไร) แทนที่จะดูคำขอที่ประสบความสำเร็จ / ล้มเหลว ใครตั้งค่าคล้ายกันบ้าง คุณจะทำอย่างไร

5
จะอธิบายให้ผู้ดูแลระบบทราบอย่างไรได้อย่างไร
ฉันตื่นเต้นอย่างมากเกี่ยวกับ DevOps ฉันรู้ว่า DevOps เป็นวิธีการที่จะย้ายเราไปสู่การสร้างโครงสร้างพื้นฐานด้านไอทีที่จะปรับปรุงและย้าย บริษัท ของเราไปข้างหน้า แต่ฉันจะขายมันให้กับหัวหน้าของฉันได้อย่างไร เรากำลังจะดำเนินโครงการอัตโนมัติซึ่งจะรวมถึงการปรับใช้อัตโนมัติการทำให้โครงสร้างพื้นฐานคลาวด์มีความซับซ้อนกระบวนการรวมอย่างต่อเนื่อง .. เราต้องโน้มน้าวเจ้านายของเราให้ลงทุนในระดับที่สูงขึ้นในเรื่องนี้ หมายเหตุ : เราเริ่มปรับปรุงกระบวนการของเราโดยทำการทดสอบเผยแพร่และควบคุมโดยอัตโนมัติเป็นขั้นตอนในการปรับใช้ devOps แต่โครงการอัตโนมัตินั้นอยู่ในสภาพพร้อมที่จะลงทุนเพิ่มเติม

1
วิธีวัดการใช้งานของมนุษย์?
ในThe Phoenix Projectกราฟเดี่ยวในหนังสือทั้งเล่มแสดงให้เห็นว่าเมื่อปริมาณงานของบุคคลเพิ่มขึ้นเป็น 90% ของเวลารอที่เพิ่มขึ้นแบบทวีคูณ ในความเป็นจริงในหนังสือมันอ้างว่า: เวลารอ = (เปอร์เซ็นต์ไม่ว่าง / เปอร์เซ็นต์ฟรี) ดังนั้นหากทรัพยากรไม่ว่าง 35 จาก 40 ชั่วโมงต่อสัปดาห์แล้ว: Wait Time = 0.875/0.125 = 8 อย่างไรก็ตามหากทรัพยากรไม่ว่าง 39 จาก 40 ชั่วโมงต่อสัปดาห์ดังนั้น: Wait Time = 0.975/0.025 = 39 สิ่งนี้จะถูกคูณด้วยจำนวนการรอในเวิร์กโฟลว์ เห็นได้ชัดว่าเป็นสิ่งที่เราต้องการจับตามอง! ดังนั้นทั้งหมดนี้จึงเป็นสิ่งสำคัญอย่างยิ่งที่เราจะต้องใช้ประโยชน์จากผู้คนในระดับที่เหมาะสม จากการยืนยันของหนังสือเกี่ยวกับความสำคัญของสูตรนี้จึงมีคำแนะนำเล็กน้อยเกี่ยวกับวิธีการวัดค่าเหล่านี้ คำถามของฉันคือคุณจะวัดเปอร์เซ็นต์ของบุคคลที่ไม่ว่างได้อย่างไร

3
ไม่มี Oracle JDK สำหรับนักเทียบท่าหรือไม่?
REPOSITORY TAG IMAGE ID CREATED SIZE an-image 1 X 26 seconds ago 279 MB เมื่อภาพนักเทียบท่าจะทำงานข้อความต่อไปนี้จะปรากฏขึ้น: No java installations was detected. Please go to http://www.java.com/getjava/ and download เมื่อปรับใช้ Oracle JDK ขนาดภาพของนักเทียบท่าจะเพิ่มขึ้นเป็นสองเท่า! REPOSITORY TAG IMAGE ID CREATED SIZE an-image 2 X 26 seconds ago 666 MB อภิปรายผล เมื่อ "ไม่มี Oracle JDK สำหรับนักเทียบท่า" …

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