ความแตกต่างระหว่าง 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.