ความแตกต่างระหว่าง DevOps และระบบอัตโนมัติคืออะไร


42

ฉันเห็นว่าเมื่อใดก็ตามที่มีคนทำ DevOps ส่วนใหญ่เกี่ยวกับการทำสิ่งต่าง ๆ โดยอัตโนมัติเช่นการปรับใช้ ฯลฯ

แต่ระบบอัตโนมัติสิ้นสุดลงและ DevOps เริ่มต้นที่ใด


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

อาจเป็นคำถามที่ดีกว่าว่า DevOps จะเริ่มต้นที่ใดและระบบอัตโนมัติเริ่มต้นที่ใด ไม่ใช่ทุกสิ่งที่ทำด้วย DevOps เกี่ยวกับระบบอัตโนมัติ ส่วนใหญ่ของมันใช่ แต่ไม่ใช่ทั้งหมด ... ใคร ๆ ก็สามารถพูดได้ว่า DevOps เป็นทุกอย่าง แต่เป็นระบบอัตโนมัติ - มันคือ sysadmin cultrue, มาตรฐานสถาปัตยกรรมทั่วไป, มาตรฐานการเผยแพร่ทั่วไป (พูด GitHub) ของสาขาเทคโนโลยีเฉพาะ ... ที่ไหน ไม่อัตโนมัติในสาขาเฉพาะเริ่มต้นเป็นคำถามที่ดีด้วยตัวเองผมคิดว่า ...
— JohnDoea

คำตอบ:


45

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

นี่คือความเกี่ยวข้องของ DevOps และระบบอัตโนมัติ DevOps ไม่ได้เป็นเพียงระบบอัตโนมัติ แต่มีมากกว่านั้น ในทางกลับกันระบบอัตโนมัติไม่ได้ถูกใช้โดย "คน DevOps" โดยเฉพาะ มีการใช้ระบบอัตโนมัติจำนวนมากในไอทีก่อนที่ DevOps จะเข้ามามีส่วนร่วม

DevOps ที่เกี่ยวข้องกับระบบอัตโนมัติ

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


1
สิ่งที่ผมได้กล่าวเกี่ยวกับเรื่องนี้ :)
— Tensibai

ทำไม "ตั๋วงาน" ใน DevOps ไม่
— Nakilon

15

การทำงานอัตโนมัติเป็นคุณลักษณะที่สำคัญของ DevOps แต่ไม่ใช่เรื่องเต็ม คำถามก็เหมือนกัน "อะไรคือความแตกต่างระหว่างเวลามวยและการต่อสู้?"

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

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

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

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

แจ้งให้ทราบล่วงหน้าฉันสามารถให้คำอธิบายนี้โดยไม่พูดถึง Jenkins, Check, Puppet, Ansible, Vagrant, AWS หรือเครื่องมืออื่น ๆ ที่สนับสนุน นี่คือสิ่งที่เราหมายถึงโดย buzzwords ระดับใหญ่เช่น 'วิธีการ' ในที่สุดชุดเครื่องมือใด ๆ ที่สามารถเปลี่ยนได้ ... สิ่งที่เราเหลืออยู่คือหลักการจัดการหลักที่เปิดใช้งานโดยระบบอัตโนมัติและการมุ่งเน้นไปที่ไปป์ไลน์


1
ฉันขอโทษ แต่ดูเหมือนว่าการประกาศแบบ Agile มากกว่าข้อมูลวัฒนธรรมที่เบี่ยงเบนความรู้สึกของฉัน วิธีการวนรอบแบบ Agile / iterative / short แม้ว่าจะใช้บ่อยครั้งจะไม่จำเป็นสำหรับองค์กรแบบ devops คุณสามารถมีทีม devops ในโครงการน้ำตกและคุณสามารถจัดส่งตามไซโลโดยอัตโนมัติเช่นฉันรู้สึกว่าคำตอบนี้ตอบคำถามบางส่วน
— Tensibai

2
@ Tenensai ฉันต้องไม่เห็นด้วยค่อนข้าง - คุณไม่ได้อัตโนมัติกระบวนการที่ไม่ได้ทำงานบ่อย DevOps ที่ไม่มี Agile เปรียบเสมือนการสร้างซูเปอร์คาร์ที่มีมูลค่าหลายล้านดอลลาร์โดยอัตโนมัติ
— Dave Swersky

คำตอบนี้เป็นคำพูดที่ไม่น่าเชื่ออย่างยิ่งและเป็นการยากที่จะกลั่นความแตกต่างหรือข้อดี / ข้อเสียที่เกี่ยวข้องกับ OP Q.
— Evgeny

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

13

DevOps เป็นการเปลี่ยนแปลงทางวัฒนธรรมจริง ๆ - มันมีจุดประสงค์ที่จะทำลายกำแพงระหว่างการดำเนินงานและการพัฒนาแบบดั้งเดิม (และยังรวมถึง QA และส่วนที่เหลือของธุรกิจ!) แนวคิดก็คือแทนที่จะมี 'ไซโล' ของแผนกคุณสามารถทำงานโดยตรงกับทีมอื่นเพื่อให้งานเสร็จเร็วและมีประสิทธิภาพยิ่งขึ้น

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


4

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

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


1

ฉันต้องการเพิ่ม 2 เซ็นต์ของฉัน:
1) ระบบอัตโนมัติ :
     สิ่งที่เราทุกวันนี้ต้องก้าวไปข้างหน้า มันมีความจำเป็นมากขึ้นโดยที่วิธีที่ต้องการคือการทำให้ชิ้นส่วนเป็นอัตโนมัติหากไม่ใช่กระบวนการทั้งหมด วิธีนี้ช่วยให้ผู้ใช้ (นักพัฒนา) มีความยืดหยุ่นในการใช้ขั้นตอนคงที่พร้อมกับความสามารถในการปรับแต่งตามต้องการ
     ข้อได้เปรียบในวิธีการนี้คือเราสามารถทำให้ชิ้นส่วนต่าง ๆ ที่เราต้องการได้โดยอัตโนมัติในขณะที่ผู้พัฒนาสามารถเชื่อมโยงกระบวนการแต่ละกระบวนการเข้าด้วยกัน ยิ่งขั้นตอนการดำเนินการอัตโนมัติเป็นรูปธรรมมากขึ้นเท่าไหร่การควบคุมก็จะยิ่งดีขึ้นเท่านั้น
     นอกจากนี้ยังมีเครื่องมือมากมายสำหรับระบบอัตโนมัติในพื้นที่เช่นหุ่นยนต์อัตโนมัติ, ระบบอัตโนมัติ SOP (สำหรับอุตสาหกรรมการบริการ), ระบบรายงานอัตโนมัติ (เช่น Splunk) เป็นต้น
2) DevOps:
     เนื่องจากสถานะของคุณภาพการจัดส่งและความตรงต่อเวลาที่คาดว่าจะได้รับจากโลกปัจจุบันจึงมีความจำเป็นที่จะต้องขยายกระบวนการอัตโนมัติของกระบวนการจัดส่งซอฟต์แวร์ เพื่อเปิดใช้งานสิ่งนี้และมอบคุณค่าให้กับลูกค้าในวิธีที่เร็วที่สุดที่เป็นไปได้ DevOps จะพึ่งพาเครื่องมืออัตโนมัติอย่างกว้างขวาง
     ข้อได้เปรียบในวิธีการนี้คือขั้นตอนแต่ละขั้นสามารถเป็นแบบอัตโนมัติเพื่อให้เกิดความสอดคล้องกันทั่วทั้งองค์กรในขณะที่การปรับแต่งภาพรวมโดยรวมสามารถปรับเปลี่ยนให้เหมาะสมกับกระบวนการที่โครงการนั้นต้องการ
     เครื่องมืออัตโนมัติแต่ละตัว (ในทางใดทางหนึ่ง) เช่น Chef สำหรับการปรับใช้ Docker ผ่าน Dockerfile, Maven สำหรับการสร้าง ฯลฯ สามารถเชื่อมโยงเข้าด้วยกันอาจจะผ่าน Jenkins เพื่อให้โซลูชันที่ต้องการในขณะเดียวกันก็ช่วยลดเวลาที่จำเป็นสำหรับการนำไปใช้ .
หวังว่านี่จะช่วยเพิ่มมูลค่าให้กับกระบวนการคิดที่คุณมีอยู่แล้ว

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


1

การเคลื่อนย้าย DevOps ประกอบด้วยสี่ส่วนหลักที่ย่อว่าCam4 :

  1. วัฒนธรรม
  2. การทำงานอัตโนมัติ
  3. การวัด
  4. ที่ใช้ร่วมกัน

นี่คือโพสต์ที่กำหนดต้นฉบับจาก 2010

ในแต่ละพื้นที่มีเครื่องมือกระบวนการและแนวทางปฏิบัติที่เป็นที่ยอมรับโดยทั่วไปแม้ว่าจะไม่มีการกำหนดหัวเรื่องที่ดีสำหรับแนวปฏิบัติที่ดี แต่ในกรณีส่วนใหญ่จะมีแนวทางปฏิบัติที่ดี

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


-2

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

สังเกตุฉันไม่ได้พูดอะไรเกี่ยวกับระบบอัตโนมัติ

ระบบอัตโนมัติเป็นเรื่องของความสำเร็จในการทำซ้ำ ถ้าฉันทำตามขั้นตอน a, b และ c และกระบวนการ x ใช้งานได้เสมอแล้วขั้นตอน a, b และ c เป็นตัวเลือกที่ดีสำหรับระบบอัตโนมัติ จากนั้นฉันสามารถใช้เวลาสำหรับสิ่งที่เคยเป็นกระบวนการแบบแมนนวลเพื่อทำสิ่งที่ทำให้ฉันมีเงินมากขึ้น ระบบอัตโนมัติสำเร็จเมื่อใช้งานง่าย การปรับใช้รีลีสใหม่การรันการทดสอบการรวมการขันน็อตลงบนสลักการสำรองข้อมูลการปรับสมดุลเครดิตเทียบกับเดบิต ฯลฯ ล้วนเป็นตัวเลือกที่ยอดเยี่ยมสำหรับระบบอัตโนมัติเนื่องจากขั้นตอนซ้ำ ๆ

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


แต่บางสิ่งความร่วมมืออยู่ที่นั่นเสมอใช่มั้ย การสื่อสารระหว่าง dev และ ops เป็นสิ่งใหม่หรือไม่? สิ่งที่ devop นำมาใหม่
— pinkpanther

มีอะไรใหม่คือนักพัฒนายังเป็นผู้ดำเนินการ ไม่มีกลุ่มอื่น ความร่วมมือในกรณีของฉันหายาก หากไม่มีสิ่งใดในคู่มือการแก้ไขปัญหา (aka TSG) แสดงว่าคุณได้รับการรับประกันการโทร จากประสบการณ์ของฉัน Ops คือการโทรครั้งแรกในกรณีที่รถแบ็คโฮ ปัญหาระหว่างการให้บริการอยู่นอกโรงพยาบาล
— ไม่มีการคืนเงินไม่มีการส่งคืน

3
ระบบอัตโนมัติและ DevOps เป็น "ไม่เกี่ยวข้อง" หรือไม่ ด้วยความเคารพฉันไม่เห็นด้วยอีกต่อไป การรวมอย่างต่อเนื่องการปรับใช้อย่างต่อเนื่องการทดสอบอัตโนมัติและอื่น ๆ เป็นองค์ประกอบสำคัญของเทคโนโลยี DevOps หากไม่มีระบบอัตโนมัติ DevOps เป็นเพียงวัฒนธรรม วัฒนธรรมเป็นสิ่งสำคัญที่ต้องแน่ใจ แต่เพียงขาเดียวของอุจจาระ DevOps สามขา (วัฒนธรรมกระบวนการเทคโนโลยี)
— Dave Swersky

@NoRefundsNoReturns Devs เป็นผู้ดำเนินการ ในแง่ที่ว่าไม่จำเป็นต้องมีทีม devop หรือไม่?
— pinkpanther

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