DevOps

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

4
จะรันสคริปต์หรือคำสั่งบนอินสแตนซ์ของ EC2 ผ่าน AWS CLI ได้อย่างไร
อ้างอิงจากบทความข่าวใหม่ของคำสั่งเรียกใช้ EC2 Run , AWS CLI ควรสนับสนุนคำสั่งย่อยใหม่เพื่อรันสคริปต์บนอินสแตนซ์ EC2 ระยะไกล อย่างไรก็ตามฉันได้เช็คอินaws ec2 helpแล้ว แต่ไม่พบคำสั่งที่เกี่ยวข้อง ฉันติดตั้งawsผ่านapt-get: $ aws --version aws-cli/1.14.32 Python/3.5.4 Linux/4.12.7-64 botocore/1.8.36 คำสั่งย่อยใดที่ฉันควรมองหาและไวยากรณ์ใดที่จะเรียกใช้ให้พูดipconfigในPowerShellบนอินสแตนซ์ EC2 ระยะไกล

3
บน Azure ฉันจะรันคอนเทนเนอร์ Docker อายุสั้นตามกำหนดเวลาได้อย่างไร
ฉันมีสคริปต์เชลล์ Unix ที่ค่อนข้างง่ายบรรจุในอัลไพน์ Linux Docker container ที่โฮสต์ในรีจิสตรีคอนเทนเนอร์ Azure VM เรียกใช้สคริปต์นี้ด้วย cron: docker login <snip> docker pull example.com/bar:latest docker run example.com/bar:latest ฉันสามารถทำได้โดยไม่ใช้ VM และใช้บริการ Azure แทนอาจมีตัวจัดกำหนดการบางอย่างที่ทำงานใน Azure Container Instance หรือไม่ แรงจูงใจของฉันไม่ต้องการรักษาและจ่ายให้กับ VM

2
วิธีการตรวจสอบกระบวนการหลักที่เสียชีวิตในตู้เทียบท่า?
บางครั้งคุณต้องตรวจสอบภาชนะบรรจุซึ่งหยุดทำงานหรือภาชนะบรรจุซึ่งหลังจากการเริ่มต้นการตายอย่างรวดเร็วและหยุดลง docker exec -ti <id> bash ใช้งานได้กับการเรียกใช้คอนเทนเนอร์เท่านั้นเมื่อเสร็จสิ้นพรอมต์ bash จะสิ้นสุดลงเช่นกัน ด้วยdocker startคุณไม่สามารถให้คำสั่งที่แตกต่างกันและถ้าคอนเทนเนอร์ตายทันทีอีกครั้งคุณจะไม่มีเวลาพอที่จะเข้าไปในคอนเทนเนอร์และทำการตรวจสอบของคุณ เราสามารถทำได้docker commitแล้วdocker runในภาพใหม่ด้วยคำสั่งที่แตกต่างกัน แต่ฉันสงสัยว่ามีทางเลือกอื่น ๆ หมายเหตุ : docker logsเพียงแค่คืนสิ่งที่แอพพลิเคชั่นพิมพ์ไปยัง stdout / stderr นั่นอาจไม่เพียงพอที่จะคิดออกว่าปัญหาคืออะไร

2
ฉันจะรันเพลย์บุ๊ค Ansible Azure ในขณะที่หลีกเลี่ยงการจัดเก็บข้อมูลรับรองในไฟล์ได้อย่างไร
พื้นหลัง เราใช้ Ansible เพื่อจัดเตรียมและจัดการโครงสร้างพื้นฐาน Azure ในขณะนี้เราเรียกใช้ Ansible "ด้วยตนเอง" นั่นคือเราเรียกใช้ playbooksสำหรับงานอัตโนมัติต่างๆ ไม่มีโครงสร้างพื้นฐาน CI อาจจะไม่ได้เกี่ยวข้อง azure_rm.pyแต่เราจัดการสินค้าคงคลังของเราใช้สคริปต์แบบไดนามิก เราได้รับการสนับสนุนให้มีความปลอดภัยมากที่สุดเช่น อย่าเก็บรหัสผ่านห้องนิรภัยใน~/.vault_passหรือในไฟล์ภายในเครื่อง อย่าเก็บความลับของ Azure ~/.azure/credentials อย่าเก็บสิ่งที่ปลอดภัย.bashrcไว้ ในสถานการณ์ดังกล่าวฉันมีปัญหาในการหากลยุทธ์ที่สอดคล้องกันเพื่อให้แน่ใจว่า playbooks ของฉันสามารถเข้าถึงความลับของ Azure ได้ในขณะที่ทำตามแนวทางข้างต้น คำถาม ฉันจะหลีกเลี่ยงการจัดเก็บข้อมูลประจำตัวของ Ansible Vault และ Azure บนไฟล์ได้อย่างไรในขณะที่ยังมั่นใจได้ว่า playbooks ของฉันสามารถเข้าถึงได้ สิ่งที่ฉันได้ลอง จนถึงตอนนี้ฉันได้สร้างสคริปต์ตัวคลุมขึ้นมา ขอให้ผู้ใช้รหัสผ่าน Vault ใช้เพื่อถอดรหัส Vaulted Shell script ประเมินสคริปต์ซึ่งโหลดตัวแปรสภาพแวดล้อม Azure ลงในสภาพแวดล้อม เรียกใช้ playbook บนสภาพแวดล้อมที่ตั้งค่าไว้ มีโซลูชัน "Ansible" …

2
วิธีการตรวจสอบ Jenkins สร้างหน่วยความจำอิสระของผู้ปฏิบัติการ?
ในเจนกินส์เมื่อคลิกที่สถานะรูปร่างปฏิบัติการฉันเท่านั้นที่สามารถดูสถิติที่เกี่ยวข้องกับพื้นที่ว่างในดิสก์ (URI: /computer) ฉันจะตรวจสอบหน่วยความจำระบบว่าง (RAM) ในเจนกินส์ได้อย่างไร ฉันถามเพราะบางครั้งเมื่อฉันมีตัวจัดการมากเกินไป (แม้ว่าจะมีการกำหนดค่าพื้นที่สว็อป แต่ไม่ใช่ด้านล่าง) เจนกินส์ก็หยุดนิ่งหรือพังมาก

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

2
ฉันจะปรับใช้กับ Kubernetes ได้อย่างไรโดยอัตโนมัติ
สมมติว่าฉันติดตั้ง Kubernetes ผ่านทาง Rancher และ Jenkins กำลังสร้างอิมเมจใหม่และผลักดันพวกเขาไปที่ DockerHub เมื่อเช็คอินรหัสใหม่ไปที่ GitHub ฉันจะทำให้รูปภาพใหม่ถูกปรับใช้โดยอัตโนมัติได้อย่างไร อีกวิธีหนึ่งในการถามคำถามคือ“ ฉันเคยใช้ Octopus เพื่อจัดการการปรับใช้ของฉัน มีสิ่งที่คล้ายกันในตัวกับ Kubernetes หรือ Rancher หรือไม่” ท้ายที่สุดมันเป็นช่องว่างสุดท้ายที่ฉันต้องดิ้นรน

1
อะไรที่แนะนำให้จัดทำเอกสารสแต็คเทคโนโลยีไอทีรวมถึงความสัมพันธ์ของพวกเขากับอีกคนหนึ่งในฐานข้อมูลกราฟ?
ทำงานกับ บริษัท ขนาดใหญ่ที่มีพนักงานไอทีมากกว่า 500 คนและเซิร์ฟเวอร์มากกว่า 1,000 เซิร์ฟเวอร์โดยแต่ละเซิร์ฟเวอร์ที่ใช้งานแอพพลิเคชั่นทางธุรกิจของเราเองเรามีข้อมูลมากมายและการประสานงานที่ท้าทายในการรู้ว่าพนักงานไอทีคนไหนติดต่อเซิร์ฟเวอร์ใด ปัญหาที่เกิดจากการประสานงานประกอบด้วยพนักงานไอทีที่แตกต่างกันซึ่งรับผิดชอบด้าน IT stack ที่ต่างกัน เช่นมีหลายทีมที่รับผิดชอบด้านฮาร์ดแวร์การจำลองเสมือนระบบปฏิบัติการเซิร์ฟเวอร์แอปพลิเคชันและแอปพลิเคชันเอง เมื่อพิจารณาถึงความท้าทายนี้ภายใน DevOps จะมีข้อกำหนดในการกำหนดและจัดทำเอกสารส่วนประกอบทั้งหมดที่ประกอบขึ้นเป็นเทคโนโลยีหลากหลายที่อยู่ในสภาพแวดล้อมไอที ตามเนื้อผ้าสิ่งนี้อาจจะประสบความสำเร็จด้วยวิธีการแก้ปัญหาที่เหมาะสม CMDB ฉันได้ตรวจสอบโซลูชัน CMDB ทั่วไปเช่นBMC Atriumและอื่น ๆ เพื่อจุดประสงค์นี้ แต่ปัญหาก็คือพวกเขาหยุดที่ระดับของการจัดทำเอกสารสินทรัพย์ด้านไอทีของตัวเองในระดับสูงตามกรอบ ITIL แต่ไม่ได้กล่าวถึงเอกสาร ของ IT Technology Stack โดยละเอียด ฉันได้ตรวจสอบเครื่องมือเช่นPuppet , AnsibleและSaltด้วย แต่เครื่องมือเหล่านี้ให้ความสำคัญกับการปรับใช้ซอฟต์แวร์และการกำหนดค่ามากกว่าไม่ได้ประสานงานกับผู้คนรอบ ๆ ซอฟต์แวร์ โซลูชันที่ใช้การได้ตัวอย่างเช่นจะกำหนดแนวคิดต่าง ๆ พร้อมกับคุณลักษณะหลักที่สำคัญต่อแนวคิดเหล่านี้: ฮาร์ดแวร์ เสมือนจริง ระบบปฏิบัติการ แอปพลิเคชันเซิร์ฟเวอร์ การประยุกต์ใช้งาน แนวคิดเหล่านี้จะเชื่อมโยงซึ่งกันและกันในแง่ของความสัมพันธ์ของพวกเขาเพื่อสร้างโซลูชัน เช่นแอปพลิเคชันจะขึ้นอยู่กับแอปพลิเคชันเซิร์ฟเวอร์ซึ่งจะขึ้นอยู่กับระบบปฏิบัติการและอื่น ๆ การรวมโซลูชันนี้จะถูกกำหนดไว้ที่ "ระบบการเงิน" …

6
Adam Smith กับนักพัฒนา fullstack - และประสิทธิภาพใน DevOps
โดย Adam Smith แผนกแรงงานสามารถทำให้คุณมีประสิทธิภาพมากขึ้น240 เท่า (ตัวอย่างเช่นโรงงานผลิตพินใน 18 ขั้นตอน) ทำไมจึงมีบทบาทที่มีทักษะหลากหลายเป็นที่ต้องการอย่างมากถ้าสิ่งนี้ช่วยลดประสิทธิผลได้จริงหรือมิ ธ ผิดไปทำไม ค้นหา "fullstack developer" ยังคงมีแนวโน้มใน Google แต่ดูเหมือนจะช้ากว่าสองปีที่ผ่านมา: ===== ในการสรุปผู้พัฒนาสแต็คเต็มรูปแบบสามารถทำทุกห่วงโซ่คุณค่า (แก้ไขฉันถ้าฉันผิด): พูดคุยกับลูกค้าและปรับแต่งข้อกำหนดความคล่องตัวที่สามารถทำงานได้สำหรับส่วนของงาน ตัดสินใจเลือกสถาปัตยกรรมเครื่องมือและส่วนประกอบ - เพียงมอบโน้ตบุ๊กให้เขา เขียนโค้ดสำหรับ frontend, backend, ingration ซึ่งรองรับการทำงานข้ามอุปกรณ์และไม่ต้องการการทดสอบมากหรือรวมถึงมัน โปรไฟล์และข้อมูลภูมิประเทศใช้ Cloud AI / ML APIs สำหรับคุณสมบัติขั้นสูง เขียนรหัส IaC และการเปิดตัวที่จำเป็น โทรแจ้งในกรณีที่เกิดข้อผิดพลาดหรือกระบวนการขาย ระวังการออกแบบที่เกี่ยวข้องกับความปลอดภัยการแพตช์โดยรวมการโยกย้ายและความทันสมัย ตารางเวลาบัญชีในลักษณะที่ละเอียดเพื่อลดความยุ่งยากในการออกใบแจ้งหนี้ของนายจ้าง ... ฉันลืมอะไรไปหรือเปล่า UPD - " เราต้องการผลิตภาพของความเชี่ยวชาญ แต่เราไม่ต้องการมุมมองที่โดดเดี่ยวของ" การแบ่งงานที่รุนแรง …

4
CodeBuild - สิ่งประดิษฐ์อินพุตหลายรายการใน AWS Pipeline
ฉันกำลังสร้าง AWS CodePipeline ซึ่งขึ้นอยู่กับแหล่งเก็บข้อมูลสองแห่ง หากขั้นตอน 'CodeBuild' .. declares 2 input artifacts which is more than the maximum countถูกระบุด้วยสิ่งประดิษฐ์การป้อนข้อมูลต่างๆจากนั้นคุณจะได้รับข้อผิดพลาด: เอกสารมีข้อกำหนดที่เข้มงวดสำหรับ CodeBuild ที่จะมีสิ่งประดิษฐ์อินพุตเดียวเท่านั้น ในอีกทางหนึ่งแลมบ์ดาไม่มีข้อ จำกัด นี้ ฉันได้มองหาวิธีที่แลมบ์ดาสามารถ "ผสาน" สองสิ่งประดิษฐ์เข้าด้วยกันเป็นสิ่งเดียวซึ่งฉันสามารถผ่านไปยัง CodeBuild ได้ น่าเสียดายที่ข้อมูลในหัวข้อนี้ค่อนข้าง จำกัด ไม่มีใครมี CodePipeline แลมบ์ดาที่ทำงานซึ่งจะรวมสองสิ่งประดิษฐ์เข้าด้วยกัน? หมายเหตุ : เอกสารเกี่ยวกับวิธีการเข้าถึงสิ่งประดิษฐ์

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

1
ส่งผ่านสตริงไปยังงาน Jenkins จาก Slack
ในโลกอุดมคติพนักงานที่มีความรู้ด้านเทคโนโลยีน้อยของเราสามารถใช้คำสั่ง Slack เพื่อทำงานและรับผลลัพธ์ที่ได้กลับคืนมา ฉันพบเริ่มสร้างในเจนกินส์โดยใช้คำสั่ง Slackบน GitHub แต่ก็มีข้อ จำกัด บางประการรวมถึงดูเหมือนว่าจะต้องใช้อัตราส่วน 1: 1 Heroku กับงานเจนกินส์ซึ่งไม่ดีสำหรับวัตถุประสงค์ของเรา ความคิดของฉันคือการให้คนใช้คำสั่งเอกพจน์เช่น/jenkinsและใช้พารามิเตอร์หลังจากนั้นจะแยกวิเคราะห์โดยงานหนึ่งและใช้เพื่อเตะคนอื่นดาวน์สตรีม ที่ทำให้เรามีคำสั่งหย่อน / ตัวอย่างหนึ่ง แต่ก็ยังให้ความยืดหยุ่นทั้งหมดที่เราต้องการ ปัญหาตรงกับการรับพารามิเตอร์ของเจนกินส์ ฉันนึกภาพบางอย่างเหมือนเวิร์กโฟลว์ต่อไปนี้ ประเภทผู้ใช้/Jenkins job2 param1 param2ใน Slack นี่คือการเรียกงานร่มที่จะแยกพารามิเตอร์เพื่อหาสิ่งที่จะเรียกใช้ คำสั่งถูกส่งไปยังงานร่มเจนกินส์ ตัวอย่าง Heroku การรวมโดยตรงกับ w / e งาน Umbrella ได้รับjob2 param1 param2เป็นสตริง (อาจเป็นค่าของพารามิเตอร์เดียวอาจแบ่งล่วงหน้าเป็นหลายฟิลด์) งานร่มแยกสตริงถ้ามันยังไม่ได้ทำไปแล้วและตัวเลขให้เห็นว่าผู้ใช้ต้องการjob2เรียกใช้พารามิเตอร์และparam1param2 งาน Umbrella จะสร้าง buildjob เพื่อเรียกใช้งานดาวน์สตรีมตามที่เรียกซึ่งจะทำให้ Slack กลับไปหาผู้ใช้งาน มันเป็นขั้นตอน 2-3 ที่ทำให้ฉันสะดุด …
12 jenkins  slack 

2
การวางแผนความจุของนักเทียบท่าคอนเทนเนอร์
ฉันกำลังเรียกใช้แอปพลิเคชันของฉันบนเครื่องเสมือน 4 เครื่องที่มี CPU เสมือน 3.2 3.2 GHz และ 32 GB อย่างไรก็ตามฉันจะแยกกระบวนการเป็นภาชนะแยกต่างหาก ฉันไม่แน่ใจว่ามีจำนวนตู้คอนเทนเนอร์ที่จะเรียกใช้ต่อโฮสต์ หมายเลขทั่วไปคืออะไร ตัวอย่างเช่นวิธีที่อัตราส่วน VM ต่อเซิร์ฟเวอร์เปล่าอัตรา 1:10 โดยทั่วไปลิงก์ใด ๆ ในคุณลักษณะที่ต้องพิจารณากรอบการตัดสินใจที่ต้องพิจารณาหรือประสบการณ์จะช่วยได้!

1
วิธีการสำรองข้อมูล Amazon Cognito
Amazon Cognitoเป็นบริการการจัดการผู้ใช้และรับรองความถูกต้องที่ Amazon จัดทำผ่าน Amazon Web Services: Amazon Cognito ช่วยให้คุณสามารถเพิ่มการลงทะเบียนผู้ใช้และการลงชื่อเข้าใช้ในมือถือและเว็บแอพของคุณได้อย่างง่ายดาย ด้วย Amazon Cognito คุณยังมีตัวเลือกในการรับรองความถูกต้องของผู้ใช้ผ่านผู้ให้บริการเอกลักษณ์ทางสังคมเช่น Facebook, Twitter หรือ Amazon ด้วยโซลูชันเอกลักษณ์ SAML หรือโดยใช้ระบบเอกลักษณ์ของคุณเอง นอกจากนี้ Amazon Cognito ช่วยให้คุณสามารถบันทึกข้อมูลไว้ในอุปกรณ์ของผู้ใช้ช่วยให้แอปพลิเคชันของคุณทำงานแม้ในขณะที่อุปกรณ์ออฟไลน์ จากนั้นคุณสามารถซิงโครไนซ์ข้อมูลข้ามอุปกรณ์ของผู้ใช้เพื่อให้ประสบการณ์การใช้แอพของพวกเขายังคงสอดคล้องไม่ว่าจะใช้อุปกรณ์ใด สิ่งที่คุณทำอย่างมีประสิทธิภาพคือการจัดเก็บข้อมูลลูกค้าของคุณในระบบปิดที่โฮสต์โดย Amazon หากคุณเป็น บริษัท เช่นเครือข่ายโซเชียลข้อมูลของใครแสดงถึงทรัพย์สินที่สำคัญภายในองค์กรของคุณวิธีการตรวจสอบให้แน่ใจว่าข้อมูลนี้ได้รับการปกป้องจาก: Amazon Cognito ถูกปิดตัวลงโดยไม่คาดหมายเช่นเมื่อได้รับการร้องขอจากหน่วยงานบังคับใช้กฎหมายหรือหน่วยงานของรัฐ คีย์การเข้าถึงของคุณถูกบุกรุกและระเบียนบางส่วนหรือทั้งหมดเสียหาย ความสัมพันธ์ระหว่างองค์กรของคุณกับอเมซอนแตกไปจนถึงจุดที่อเมซอนถอนการบริการทั้งหมดโดยมีผลทันที Amazon Cognito เป็นประโยชน์อย่างมากต่อองค์กรและนักพัฒนาเนื่องจากใช้ซอฟต์แวร์ที่แข็งเป็นพิเศษและทำให้ง่ายต่อการใช้งาน จากมุมมองของความสามารถในการให้บริการเราจำเป็นต้องหาวิธีในการลดแก้ไขหรือยอมรับความเสี่ยงต่อสินทรัพย์ของ บริษัท ตลอดเวลา

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

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