DevOps

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

1
ปัญหาในการบูรณาการ Travis-CI กับโครงการ PHP หลัก [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ DevOps Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังพยายามรวมโครงการของฉันเป็นรหัสหลักในPHPกับTravis-CIแต่มันล้มเหลวเสมอ Travis รายงานความล้มเหลวแม้ว่าฉันจะมีเพียงไฟล์เดียวในโครงการของฉัน รหัสไฟล์ PHP: <?php phpinfo(); ?> .travis.yml รหัสไฟล์ language: php php: - '5.4' - '5.5' - '5.6' - '7.0' - '7.1' - hhvm - nightly

1
Elastic Beanstalk เหมาะสำหรับซีดีระดับองค์กรหรือไม่
ฉันทำงานกับโครงการที่ใช้ Jenkins เพื่อสร้างและปรับใช้ microservices กับ Elastic Beanstalk เราปรับใช้สาขาการรวมเข้ากับสภาพแวดล้อมการทดสอบ, ปล่อยสาขาไปยังสภาพแวดล้อมการจัดเตรียมและจากนั้นสร้างต้นแบบขั้นสุดท้ายเพื่อการผลิต ฉันมีข้อกังวลสองสามข้อเกี่ยวกับการทำเช่นนี้ก่อนอื่นหมายความว่าเราต้องจบลงด้วยเมทริกซ์หนึ่งบิวด์ต่อหนึ่งโครงการต่อสภาพแวดล้อม และสองหมายความว่าเราไม่ได้ปรับใช้โครงสร้างบิลด์เดียวกันกับการผลิตที่ได้รับการตรวจสอบความถูกต้องในการจัดเตรียม ฉันอยากละทิ้ง Beanstalk และย้ายไปที่ ASG ธรรมดาโดยใช้สิ่งต่าง ๆ เช่น Chef สำหรับการปรับใช้ นั่นจะทำให้เรามีหนึ่งบิลด์ต่อโครงการการผลิตสิ่งประดิษฐ์บิลด์และเราสามารถปรับใช้สิ่งประดิษฐ์เดียวกันกับการผลิตที่ได้รับอนุมัติในการจัดเตรียม การเปลี่ยนภาพมีค่าใช้จ่ายล่วงหน้าไม่สำคัญ มีวิธีใช้ Beanstalk ที่ดีกว่าซึ่งจะช่วยให้ CI / CD ที่เชื่อถือได้และง่ายต่อการจัดการมากขึ้นหรือไม่? หมายเหตุ : การส่งเสริมการสร้างสิ่งประดิษฐ์เดียวกันเป็นสิ่งที่ฉันต้องการทำ แต่จากเอกสารฉันไม่เห็นวิธีที่ชัดเจนในการทำเช่นนั้น มันอธิบายถึงวิธีการปรับใช้กับ EB จากแหล่งแอปของคุณ แต่ไม่ใช่วิธีการโปรโมตเวอร์ชันที่มีอยู่กับสภาพแวดล้อมอื่นเว้นแต่ว่าฉันจะเลื่อนผ่านได้เลย หากมีอยู่ใน EB เองอาจมีข้อ จำกัด ในปลั๊กอินการปรับใช้ Jenkins EB ที่ป้องกันไม่ให้ทำใน Jenkins โดยเฉพาะ แต่ฉันไม่เห็นวิธีที่จะทำเลย

2
Ansible Dynamic Inventory - สร้างสินค้าคงคลังด้วยที่อยู่ IP ภายใต้แท็กเฉพาะที่มีขีดล่างแทนจุด
ฉันใหม่กับ Ansible เมื่อฉันใช้ec2.pyสินค้าคงคลังแบบไดนามิกเพื่อสร้างสินค้าคงคลังหลังจาก playbook เสร็จสิ้นการทำงานผลลัพธ์จะแสดงเป็นรายการที่อยู่ IP ภายใต้แท็กเฉพาะที่มีขีดล่างแทนที่จะเป็นจุด ตัวอย่างเช่นฉันต้องการเรียกใช้ playbook ในกรณีที่มีแท็กเฉพาะฉันสงสัยว่าคนอื่นทำงานกับที่อยู่ IP ได้อย่างไร --- - hosts: tag_test_staging sudo: true tasks: - name: Make sure that we can connect to the machine ping: PLAY RECAP ********************************************************************* 10_80_20_47 : ok=0 changed=0 unreachable=1 failed=0 สำหรับที่อยู่ส่วนตัว ec2.ini: hostname_variable = private_ip_address destination_variable = private_ip_address vpc_destination_variable = …
11 ansible 

2
เป็นไปได้หรือไม่ที่จะปรับใช้อัตโนมัติกับทุกการกระทำในสาขาเฉพาะโดยใช้ Travis CI และ GitHub
ฉันต้องการปรับใช้ไฟล์โดยใช้ Travis CI และใช้งานได้กับการติดแท็ก เมื่อส่งข้อมูลไปที่สาขาจะมีคำเตือน: การข้ามการปรับใช้กับผู้ให้บริการการเผยแพร่เนื่องจากไม่ใช่การติดแท็ก มีวิธีใดบ้างที่จะนำไปใช้กับการส่งข้อมูลแบบแยกย่อยโดยใช้ Travis CI? เพื่อชี้แจงมันจะทำงานเมื่อฉันแท็กการกระทำ แต่ฉันต้องการที่จะปรับใช้ไฟล์ในแต่ละการกระทำสำหรับสาขาที่กำหนด

2
ansible-runner เกี่ยวกับอะไร
ฉันอ่านไฟล์ READMEจากที่เก็บ github รวมถึงไซต์เอกสารของ ansible-runner (จากโครงการ ansible อย่างเป็นทางการ) แต่ฉันไม่เข้าใจว่า ansible-runner เกี่ยวกับอะไรและในกรณีใดจะมีประโยชน์หรือไม่ มันเป็นโครงการที่นำคุณสมบัติเพิ่มเติมหรือมันถูกสร้างขึ้นเพื่อให้ทำงานได้ในทางที่ต่างออกไป

3
แนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดเวอร์ชันของแท็กเกอร์คืออะไร
ฉันเพิ่งติดเซิร์ฟเวอร์ CI ของเราเพื่อสร้างภาพนักเทียบท่าเมื่อคอมไพล์ยอมรับ เรามีตู้สินค้าประมาณ 8 ตู้ที่สร้างขึ้นแต่ละตู้มีภาษา / กรอบงานของตนเอง บางโหนดและมี package.json ส่วนอื่น ๆ เป็นบริการ python ที่ไม่มีข้อมูลเกี่ยวกับ semantic version คำถามของฉันไม่เกี่ยวกับวิธีสร้างแท็ก แต่เกี่ยวกับการสร้างค่าสำหรับแท็ก วิธีการตรวจสอบให้แน่ใจว่าแต่ละแท็กมีหมายเลขรุ่นความหมายเฉพาะสำหรับภาพเฉพาะ ใครควรเป็นผู้มีอำนาจในการติดตาม / เพิ่มรุ่นบิลด์?

1
ฉันจะกำหนดค่าการทดสอบ Travis CI สำหรับโครงการ Java Eclipse ได้อย่างไร
ฉันมีโปรเจ็กต์ Eclipse Java บน GitHub ฉันต้องการตั้งค่าการทดสอบการสร้างอัตโนมัติด้วย Travis CI อย่างไรก็ตามเมื่อฉันเปิดใช้งานการทดสอบสร้างสำหรับโครงการของฉันการรวบรวมล้มเหลวเสมอกับข้อผิดพลาดดังต่อไปนี้ Buildfile: build.xml does not exist! Build failed The command "ant test" exited with 1. ฉันจะกำหนดค่า Travis CI เพื่อรันการทดสอบบิลด์สำหรับโปรเจ็กต์ Java Eclipse ของฉันได้อย่างไร?

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

7
ฉันจะเริ่มเรียนรู้ DevOps ได้ที่ไหน
การค้นหา "วิธีเริ่มต้นด้วยผู้ devops" ไม่ได้ช่วยอะไรมากมายพวกเขาหลายคนชอบสิ่งนี้และสิ่งนี้รวมถึงคนอื่น ๆ ที่ไม่ได้ชี้ให้ฉันอย่างถูกต้อง วิดีโอ youtube ทั้งหมดที่ฉันได้เห็นจนถึงตอนนี้ก็ไม่ได้ช่วยด้วย (เพราะฉันไม่ต้องการวิดีโอที่อธิบายให้ฉันฟังว่าอะไรคือ devops) วิดีโอนี้เป็นข้อยกเว้นที่แท้จริงเพียงข้อเดียวจนถึงตอนนี้ (แสดงให้เห็นว่าสิ่งต่างๆ ฉันเป็น CCNA และมีความเชี่ยวชาญสูงกับ DBMS-s (ปัจจุบันกำลังเรียนรู้การดำเนินการแบบคู่ขนานเช่นเดียวกับสิ่งอื่น ๆ ) แต่ฉันไม่รู้ว่าควรจะเรียนรู้อะไรก่อน (หรือจะหาแหล่งข้อมูลที่ถูกต้องสำหรับเรื่องนั้น) ฉันกำลังจะสำเร็จการศึกษาดังนั้นฉันจึงไม่สามารถเข้าถึงประสบการณ์ในโลกแห่งความเป็นจริงได้ คำแนะนำหรือความช่วยเหลือ?
10 learning 

2
เหตุใดตัวแปรสภาพแวดล้อมจึงถูกรวมไว้ในไฟล์สภาพแวดล้อมของนักเทียบท่า
บริบท: นักเทียบท่าเขียนเพื่อเริ่มภาชนะบรรจุหลายแห่งรวมถึง Gunicorn ที่เรียกใช้แอพ Flask ฉันใช้ไฟล์สภาพแวดล้อมweb/env.gunicornเพื่อจัดเก็บการกำหนดค่าเริ่มต้นของ Gunicorn ไฟล์นี้มี GUNICORN_CMD_ARGS="--bind=127.0.0.1:8001 --workers=3" ปัญหาคือGUNICORN_CMD_ARGSไม่ได้รับการประมวลผลอย่างถูกต้องที่ไหนสักแห่งในไปป์ไลน์ ข้อผิดพลาดที่ฉันได้รับเมื่อทำงานdocker logs gunicornคือ Error: '8001 --workers=3' is not a valid port number. คำถามคือข้อสันนิษฐานของฉันอยู่ที่ไหนในกรณีที่การตั้งค่าของฉันไม่ถูกต้อง ยอมรับตัวแปรสภาพแวดล้อมเมื่อเรียกใช้ด้วยตนเองในเทอร์มินัล ไฟล์เขียนนักเทียบท่ามีลักษณะดังต่อไปนี้ version: "3" services: # nginx: # image: nginx:latest # ports: # - "80:80" # volumes: # - ./nginx:/etc/nginx/conf.d # depends_on: # - web web: …

3
วิธีทดสอบสคริปต์การเตรียม VM โดยไม่ต้องเตรียม
ขณะนี้ฉันอยู่ในสถานะที่การทดสอบค่าใช้จ่ายฉันเงินและเวลามาก ... ความเป็นมา: ฉันกำลังปรับใช้ VMs ที่ softlayer และใช้สคริปต์หลังการปรับใช้ (ทุบตี) ที่จะติดตั้งซอฟต์แวร์ทุกอย่างที่ฉันต้องการหลังจากที่ VM พร้อมใช้งาน ปัญหาคือฉันสามารถทดสอบสคริปต์นี้ได้โดยการปรับใช้ VM หนึ่งตัวและในขณะนี้ใช้เวลาประมาณ 4 ชั่วโมงเพื่อให้สคริปต์เสร็จสิ้น ... ดังนั้นการเปลี่ยนแปลงทุกครั้งที่ฉันทำให้ฉันต้องสร้าง VM ใหม่ (ค่าใช้จ่าย) และรอรอบ 4 ชั่วโมงเพื่อดูว่าสคริปต์ใช้งานไม่ได้หรือไม่ ... นี่เป็นความโกลาหลและฉันจะไม่สามารถเดินหน้าต่อไปได้ ฉันต้องการวิธีใหม่ในการเข้าถึงสถานการณ์แบบนี้และสามารถทดสอบสคริปต์การจัดสรรได้เร็วขึ้นและไม่จำเป็นต้องปรับใช้ VM ใหม่ทุกครั้ง พวกคุณรู้จักเครื่องมือช่วยฉันในสถานการณ์นี้หรือไม่?

2
หลักสูตร Crash ใน Dev for Ops?
ฉันเรียนที่ CompSci ที่ซึ่งเราสอน Java เป็นหลัก แต่สิ่งที่ฉันเรียนรู้คือความหลงใหลในระบบคืออะไรฉันจึงทำงานด้าน ops เสมอ ฉันมีประโยชน์กับการเขียนสคริปต์ดังนั้นฉันจึงไม่ได้มองหาเว็บไซต์ที่จะสอน Ruby ให้ฉัน แต่เป็นสิ่งที่จะอธิบายเพิ่มเติมในเชิงลึกเกี่ยวกับสิ่งที่คุณทำอยู่ทุกวัน ฉันต้องการเข้าใจวัฒนธรรมที่ดีขึ้นและวิธีที่คุณแยกแยะจำนวนไฟล์ที่แท้จริงในโครงการของคุณ - สิ่งที่จับต้องไม่ได้ ถ้าฉันเรียนรู้วันนี้ฉันถูกย้ายไปที่ทีมพัฒนาในวันจันทร์ฉันจะอ่านอะไรในสุดสัปดาห์นี้

2
ติตัสคืออะไรและปัญหาอะไรแก้ได้?
ฉันอ่านบทความจากMedium Titled "The Evolution of Container Usage ที่ Netflix"และดูวิดีโอสองเรื่องในหัวข้อ แต่ก็ไม่ชัดเจนสำหรับฉันว่าทำไม Titus (อ้างอิงในสิ่งเหล่านี้) จึงควรใช้ แตกต่างจาก Kubernetes หรือควรใช้ร่วมกับ Kubernetes หรือไม่?

3
ฉันจะมั่นใจได้ถึงความสอดคล้องระหว่างไมโครไซต์ใหม่ได้อย่างไร
องค์กรของฉันกำลังประสบกับการระเบิดของ microservices ขณะนี้เราไม่มีวิธีที่เป็นทางการในการเริ่มต้นโครงการใหม่ ฉันพบว่าทีมจะมาหาฉันพร้อมกับข้อบกพร่องในการปรับใช้หรือสร้างกระบวนการและฉันจะใช้เวลากับมันเท่านั้นที่จะตระหนักว่าฉันได้แก้ไขมันแล้วในโครงการอื่น นอกจากนี้ยังมีความไม่สอดคล้องกันระหว่างโครงการที่ฉันต้องการเห็นเป็นมาตรฐาน การเปลี่ยนแปลงมักจะเกี่ยวข้องกับไฟล์เดียว (เช่น serverless.yml หรือ Makefile) ดังนั้นการแก้ปัญหาที่เกี่ยวข้องกับไลบรารีที่ใช้ร่วมกันเช่น submodules git ดูเหมือนจะไม่สามารถใช้งานได้ แต่ละโครงการจะมีชุดการกำหนดค่าของตัวเองที่จำเป็นต้องดูแลรักษาเช่น Dockerfiles หรือ serverless.yml ดังนั้นโซลูชันการจัดการการกำหนดค่าส่วนกลางสำหรับ VM จึงไม่สามารถใช้งานได้จริง ฉันจะมั่นใจได้อย่างไรว่า microservices ใหม่เป็นไปตามมาตรฐานองค์กรและรวมถึงการแก้ไขข้อบกพร่อง / คุณสมบัติจากโครงการที่มีอยู่ในวิธีที่ง่ายและใช้งานง่ายสำหรับนักพัฒนาที่ต้องการเริ่มโครงการใหม่ แนวปฏิบัติที่เหมาะสมที่สุดในการแก้ไขปัญหาเหล่านี้คืออะไร เวิร์กโฟลว์ปัจจุบันที่เรามีคือการถามคนที่อยู่ถัดจากคุณ "ฉันควรโคลนโครงการใดเพื่อใช้เป็นเทมเพลต" จากนั้นลบทุกสิ่งที่ไม่จำเป็นสำหรับโครงการนั้น

2
Sys สามารถ ทักษะผู้ดูแลระบบสามารถทำงานเป็นวิศวกร DevOps ได้หรือไม่
ฉันกำลังมองหาคำแนะนำเกี่ยวกับวิธีเพิ่มทักษะการเป็นวิศวกร DevOps โดยเฉพาะ ฉันต้องการทำงานโครงการที่เกี่ยวข้องกับการพัฒนาอยู่เสมอเพราะฉันชอบเขียนโค้ด แต่โชคไม่ดีที่ฉันไม่เคยมีโอกาส ก่อนหน้านี้ฉันเคยทำงานเกี่ยวกับโปรเจ็กต์อิสระโดยใช้. Net และ PHP และฉันได้รับการรับรองใน Java SE แต่ฉันไม่เคยใช้มัน ประสบการณ์การทำงานของฉันรวมอยู่ในการจัดการระบบและแอปพลิเคชัน ส่วนใหญ่ฉันเป็นผู้อาวุโสในสาขานี้ดังนั้นการเปลี่ยนไปใช้การพัฒนาจึงไม่เป็นที่ต้องการเนื่องจากฉันจะต้องเริ่มต้นใหม่ในฐานะผู้อยู่ใต้บังคับบัญชา อย่างไรก็ตามฉันคิดว่า DevOps จะสมบูรณ์แบบสำหรับฉัน แต่ฉันจำเป็นต้องรู้สิ่งที่ฉันต้องศึกษาเพื่อเติมช่องว่างในความรู้ของฉันให้เป็นวิศวกร DevOps ที่ดีโดยเฉพาะ (โดยเฉพาะส่วนที่เกี่ยวกับการเขียนอัตโนมัติและเครื่องมือ) โปรดแนะนำสิ่งที่ฉันควรศึกษาเช่นฉันได้ยิน Python และ Perl และ Ruby ดีมากสำหรับ DevOps แต่ฉันควรเริ่มต้นอะไรอีกและทักษะบังคับที่ฉันต้องครอบคลุมก่อนคืออะไร ชุดทักษะปัจจุบันของฉัน: Sys ผู้ดูแลระบบ การจัดการ Unix (HP-UX, Solaris) และ Linux (Ubuntu, Red hat, CentOS) การดูแลระบบ Middleware Technologies (WebLogic, Apache-Tomcat, WebSphere, …
10 sysadmin 

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