DevOps ถูก จำกัด ให้กับ บริษัท ที่มีผลิตภัณฑ์ SaaS หรือไม่


26

แนวทางปฏิบัติที่อธิบายถึง DevOps เช่นการส่งมอบอย่างต่อเนื่องการดำเนินการอัตโนมัติและอื่น ๆ ที่เกี่ยวข้องกับผลิตภัณฑ์ที่ให้บริการอย่างต่อเนื่องเช่นผลิตภัณฑ์ SaaS

ตัวอย่างเช่น บริษัท พัฒนาซอฟต์แวร์ที่ส่วนใหญ่ทำโครงการสำหรับลูกค้ารายอื่นอาจไม่สามารถดูแลสิ่งเหล่านี้ได้หลังจากโครงการเสร็จสิ้น และโครงการของลูกค้าจะไม่ถูกแชร์กับลูกค้ารายอื่นเพราะไม่เกี่ยวข้อง

DevOps ใช้กับ บริษัท ที่พัฒนาหลายโครงการที่เป็นแบบครั้งเดียวหรือไม่? สิ่งใดที่ใช้กับ DevOps ในกรณีนี้ถ้าทั้งหมด?

คำตอบ:


32

ไม่ได้อย่างแน่นอน!

DevOps คือการทำลายไซโลแบบดั้งเดิม (แผนก) เพื่อให้มีประสิทธิภาพมากขึ้น

การสื่อสารที่ดีขึ้นระหว่างทีมการมองเห็นที่ดีขึ้นและกระบวนการที่เชื่อถือได้และอัตโนมัติเป็นวิธีที่ทำให้ผลิตภัณฑ์ดีขึ้น

ฉันเคยทำงานให้กับ บริษัท สื่อขนาดใหญ่ที่เราจะสนับสนุนเครื่องมือภายในและพัฒนาเว็บไซต์สาธารณะ

ประโยชน์ของ DevOps ในกรณีของเรามีดังต่อไปนี้:

  • ผ่านการสร้างอย่างต่อเนื่องเราแจ้งให้ทีมพัฒนาทราบเร็วกว่านั้นหากมีการรวมหรือสร้างปัญหาเกี่ยวกับรหัสของพวกเขา พวกเขาสามารถแก้ไขปัญหาในขณะที่จิตใจของพวกเขายังอยู่ในส่วนของรหัสที่พวกเขาเพิ่งมุ่งมั่น
  • ผ่านการทดสอบอย่างต่อเนื่องและการส่งมอบ (เป็น QA) เราเปิดใช้งานทีมงาน QA เพื่อค้นหาปัญหาก่อนหน้านี้และรายงานปัญหาก่อนหน้านี้ สิ่งนี้จะช่วยลดเวลาที่ใช้ในการค้นหาและแก้ไขข้อบกพร่องรวมถึงลดความซับซ้อนของการตรวจสอบเหล่านี้
  • ด้วยเครื่องมือการรวบรวมและบันทึกการทำงานเราได้ให้สิทธิ์แก่นักพัฒนาในการเข้าถึงสิ่งที่พวกเขามักจะไม่ได้ดู (พวกเขากระตือรือร้นมากในการดีบั๊ก :) - ทำความเข้าใจว่าทีมอื่นมองเห็นและใช้งานบันทึกได้อย่างไร
  • เรามักจะแบ่งปันข้อมูลและสร้างเอกสารเพื่อแบ่งปันความรู้ระหว่างทีมพยายามทำลายกำแพง โดยการทำความเข้าใจกับความต้องการของ Ops เราได้สร้างแนวทางบางประการสำหรับสิ่งที่ควรคำนึงถึงเสมอเมื่อทำการ bootstrapping แอปพลิเคชัน (ที่ / วิธีการจัดการคุณสมบัติ ฯลฯ ) โดยการทำความเข้าใจความเป็นจริงของ Dev (รหัสคุณลักษณะเพิ่มเติมเร็วขึ้น gogogogo!) เราสามารถมี ops สร้างเซิร์ฟเวอร์และกลุ่มที่เหมาะสมกับความต้องการของ dev
  • คุณภาพของการปรับใช้โดยรวมก็ดีขึ้นอย่างมากเช่นกัน การปรับใช้ถูกจัดการโดยทีมงานของเราดังนั้นเราจึงมีทัศนวิสัยที่สมบูรณ์แบบทั้ง Ops และ Dev สิ่งนี้ได้ขจัดปัญหามากมายที่เกี่ยวข้องกับ "การส่งรหัส" ซึ่งผู้พัฒนาจะส่งมอบแพคเกจและเอกสารหน้าเดียวให้กับผู้ใช้ที่ระบุว่า "ติดตั้งสิ่งนี้!"

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


1
แท้จริงแล้ว DevOps สามารถนำไปใช้กับแทบทุกองค์กรพัฒนา sw แม้แต่กับผลิตภัณฑ์ขนาดใหญ่ที่มีการเผยแพร่ต่อสาธารณชนเพียงไม่กี่ครั้งต่อปีโดยใช้การจัดส่งอย่างต่อเนื่องในกระบวนการพัฒนาของพวกเขาพวกเขายังสามารถเก็บเกี่ยวผลประโยชน์ DevOps ได้ ปล่อยการคาดการณ์ ฯลฯ
Dan Cornilescu

คำตอบนั้นทำให้ SaaS ไม่ได้อธิบายอย่างชัดเจนว่าผลิตภัณฑ์หรือบริการที่ไม่ใช่ของ SaaS จะได้ประโยชน์จากการปฏิบัติเหล่านี้อย่างไร
Evgeny

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

13

ทีมของฉันและฉันมีหน้าที่รับผิดชอบในการพัฒนา "one-offs" ผลิตภัณฑ์ที่เมื่อเสร็จแล้วจะมอบให้กับลูกค้าสำหรับการบำรุงรักษาหรือในบางกรณีมีการจัดการโดยเราโดยมีค่าธรรมเนียม

เรายังคงต้องรักษาขั้นตอนการพัฒนาที่แข็งแกร่งเพื่อจัดการข้อเสนอแนะอย่างต่อเนื่องจากลูกค้าของเราเพื่อให้แน่ใจว่าเราจัดส่งสิ่งที่พวกเขาเชื่อถือได้และพิสูจน์ให้ทำงาน

ในขณะที่ลูกค้าไม่สนใจ DevOps (ในกรณีส่วนใหญ่) แต่ก็ยังมีประโยชน์สำหรับเรา ด้วย DevOps เราสามารถผลักดันงานสร้างใหม่ได้อย่างรวดเร็วดังนั้นลูกค้าสามารถดูข้อเสนอแนะในไม่กี่นาทีและเรายังสามารถตรวจจับข้อผิดพลาด / ข้อบกพร่องด้วยการทดสอบของเราผ่าน Jenkins / Travis

เพื่อให้มั่นใจว่ากลยุทธ์การปรับใช้ของเราเหมือนกันในทุกโครงการเรามุ่งเน้นการจัดคอนเทนเนอร์แอปพลิเคชันของเรา การใช้นักเทียบท่าเราสามารถมอบแอปพลิเคชันให้กับลูกค้าของเราได้อย่างง่ายดาย

ต้นทุนที่ประหยัดได้โดย DevOps นั้นยากที่จะกำหนด เรามีค่าใช้จ่ายเพิ่มเติมในรูปแบบของซอฟต์แวร์ที่เราเลือกใช้สำหรับท่อ (Travis, Jenkins, Puppet, คุณมีอะไร) แต่เรายังประหยัดเวลาและเงินด้วยการแก้ไขข้อบกพร่อง / ให้ข้อเสนอแนะกับลูกค้าได้อย่างรวดเร็ว เวลาตอบสนองที่รวดเร็วของเราทำให้ลูกค้าของเรามีความสุขในทางกลับกันทำให้กระเป๋าของเรามีความสุข


คุณสามารถให้เหตุผลและประโยชน์บางประการว่าทำไมสิ่งนี้จึงสำคัญ ลูกค้าสนใจจริง ๆ เกี่ยวกับท่อส่งของคุณหรือเพียงแค่โครงการที่แล้วเสร็จ ณ วันที่สัญญาและราคาที่พวกเขาต้องจ่าย? คุณสามารถลดค่าใช้จ่ายโดยไม่ทำสิ่ง "devops-y" เหล่านี้ทั้งหมดได้หรือไม่ คุณสามารถเพิ่มชั่วโมงในโครงการโดยไม่ทำสิ่งเหล่านี้และรับเงินมากขึ้นสำหรับโครงการ (เนื่องจากยาวขึ้น)
Evgeny

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

ไม่ใช่แค่ซอฟต์แวร์ Dev Agile ใช่ไหม
Evgeny

@Evgeny ฉันได้อัปเดตคำตอบเพื่อชี้แจง เราใช้ Agile แต่นั่นไม่ได้หมายความว่าเราไม่สามารถมีความคิด DevOps ..
Turtle

1
@Evgeny คุณสามารถบันทึกได้โดยไม่ทำการทดสอบหน่วยและการทดสอบการยอมรับ แต่นี่เป็นการสร้างหนี้ทางเทคนิคซึ่งเป็นรูปแบบการต่อต้าน DevOps คุณอาจหนีไปได้สองสามสัปดาห์หรือหลายเดือน แต่ในไม่ช้าคุณก็จะจบลงด้วยความยากลำบากในการดูแลรักษาซึ่งเป็นไปไม่ได้ที่จะทำการทดสอบ
Steve Button

3

ฉันทำงานให้กับ บริษัท ที่ผลิตซอฟต์แวร์เป็นผลิตภัณฑ์ที่ย่อขนาดติดตั้งอย่างสมบูรณ์และรองรับการปรับใช้และเป็นรหัสฝังตัวในอุปกรณ์ ในทุก บริษัท นั้น DevOps ให้การสนับสนุนที่จำเป็นสำหรับการพัฒนา:

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

ในทุกกรณีสิ่งเหล่านี้เป็นสิ่งที่ผู้พัฒนาแต่ละคนสามารถทำได้เหมือนเป็นการใช้ครั้งเดียว แต่นั่นจะไม่เป็นการใช้เวลาของนักพัฒนาซอฟต์แวร์ได้อย่างดีและไม่มีการรับประกันการควบคุมการกำหนดค่าที่เหมือนกันกับการสร้างอัตโนมัติ


ระบบอัตโนมัติไม่ได้เบี่ยงเบน ความเห็นเช่นเดียวกับคำตอบของเดวิด Bock ด้านล่างในที่สุด (ขออภัยความคิดเห็นของฉันหายไปในเวลาที่ฉัน downvoted เพียงสังเกตเห็นมัน)
Tensibai

3

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

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

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

ดังนั้นวิธีการนี้มีประโยชน์ไม่เพียง แต่ใน SaaS เท่านั้น


0

ไม่ใช่เลย. แม้ว่าจะมีตัวอย่างที่ดีอยู่แล้วในกระทู้นี้ แต่ฉันต้องการแบ่งปันเรื่องเล็ก ๆ น้อย ๆ ของฉันเอง ในปี 2544 ฉันได้รับโครงการซอฟต์แวร์ด้วยการเปิดตัวที่เกี่ยวข้องกับการสร้างซีดี เอกสารประกอบสำหรับกระบวนการวางจำหน่ายประกอบด้วยขั้นตอน 40 (!) ที่บันทึกโดยวิศวกรก่อนหน้าซึ่งมีคำแนะนำที่เขียนด้วยมือบางอย่างเช่น "เปิดไฟล์กำหนดค่านี้และเปลี่ยนชื่อของไฟล์. jar ในบรรทัดที่ 41 เพื่อรวมหมายเลขเวอร์ชันของ การเปิดตัวใหม่ "

เราอัตโนมัติแบบอัตโนมัติทุกขั้นตอนของกระบวนการสร้างนั้นแทนที่คำสั่งที่เขียนด้วยมือเช่นนั้นด้วยสิ่งต่าง ๆ เช่น 'แพทช์' ที่เขียนด้วยสคริปต์ เราต้องเปิดตั๋วกับผู้จำหน่ายเครื่องมือติดตั้งของ บริษัท อื่นเพื่อให้สามารถแก้ไขไฟล์โครงการได้

เมื่อกระบวนการนั้นเป็นไปโดยอัตโนมัติเราก็ซื้อ 'CD Jukebox' ทุกคืนหลังจากการทดสอบจะผ่านเครื่องสร้างจะสร้างซีดีติดตั้งใหม่โดยอัตโนมัติ ผู้ทดสอบของเราสามารถเข้ามาในเช้าวันรุ่งขึ้นคว้าดิสก์และตรวจสอบให้แน่ใจว่าทุกอย่างสามารถติดตั้งได้

แน่นอนว่าเรามีลูปข้อเสนอแนะที่เข้มงวดมากขึ้นเมื่อเราสามารถปรับใช้ซอฟต์แวร์เป็นบริการได้ แต่หลักการหลักของระบบอัตโนมัติ, ข้อเสนอแนะ, รอบเวลา, การเปิดตัวขนาดเล็ก ฯลฯ ล้วนมีผล


นี่คือระบบอัตโนมัติที่เกี่ยวข้อง แต่ไม่เกี่ยวข้องกับองค์กร devops ในทางใด ๆ ฉันไม่เห็นการอ้างอิงเกี่ยวกับทีมวินัย plury ทุกที่เพียงแค่เลือกสิ่งที่พวกเขาสืบทอดโดยอัตโนมัติ
Tensibai

นี่คือปี 2001 ... นานก่อนที่ DevOps จะเป็นอะไร นี่ไม่ใช่แค่ระบบอัตโนมัติฉันเชื่อว่านี่เป็นการปรับปรุงการจัดการโครงการในแบบเดียวกับที่ในที่สุดก็กลายเป็น 'วัฒนธรรม' ของ DevOps เช่นนี้เป็นตัวอย่างของทัศนคติ DevOps นอกองค์กร SaaS
David Bock

DevOps ไม่ได้เกี่ยวกับระบบอัตโนมัติหรือการจัดการโครงการ มันเกี่ยวกับการทำลายองค์กรตามไซโลที่ราก ฉันขอโทษฉันไม่รู้สึกว่าคำตอบนี้เกี่ยวข้องกับคำถามจริงๆ (ไม่ได้หมายความว่ามันไม่น่าสนใจ แต่ไม่ได้อยู่ในสถานที่ที่เหมาะสม IMO และฉันไม่เห็นว่ามันจะเกิดขึ้นจริงได้ที่ไหน ในภายหลัง)
Tensibai

ฉันจะลองอีกครั้งเพื่อชี้แจง - โดยให้แผ่นซีดีถูกตัดอย่างสม่ำเสมอและรวดเร็วเราจะได้รับคำติชมจาก QA เร็วกว่าที่เราเคยมีมา สิ่งนี้ช่วยลดไซโล มันไม่ได้กำจัดมันเพราะต้องใช้เวลาอีกหนึ่งหรือสองปีก่อนที่เราจะปิดการใช้งาน fiefdoms รอบงบประมาณส่วนกลางสำหรับกิจกรรม นอกจากนี้เรายังรู้เร็วกว่านี้เมื่อกระบวนการวางจำหน่ายเสียหาย ฉันให้เครดิตสิ่งเล็ก ๆ น้อย ๆ เช่นนี้เป็นเส้นทางส่วนบุคคลของฉันไปยัง DevOps
David Bock

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