DevOps (kết hợp của cụm từ tiếng Anh “software DEVelopment” và “information technology OPerationS“) là một thuật ngữ để chỉ một tập hợp các hành động trong đó nhấn mạnh sự hợp tác và trao đổi thông tin của các lập trình viên và chuyên viên tin học khi cùng làm việc để tự động hóa quá trình chuyển giao sản phẩm phần mềm và thay đổi kiến trúc hệ thống.[1][2] Điều này nhằm thiết lập một nền văn hóa và môi trường nơi mà việc build (biên dịch phần mềm), kiểm tra, và phát hành phần mềm có thể xảy ra nhanh chóng, thường xuyên, và đáng tin cậy hơn.[3][4][5]
Theo truyền thống lịch sử, những tổ chức triển khai có sự phân loại công dụng phòng ban rất hiếm khi có một phòng ban giữ công dụng tích hợp cả công dụng của phòng IT. Nhưng DevOps đề xướng một phương pháp mới giúp trao đổi và hợp tác giữa những phòng ban tăng trưởng ứng dụng, quản trị chất lượng ứng dụng ( QA ) và phòng IT. [ 6 ] Trong một số ít tổ chức triển khai, sự hợp tác này lại được triển khai bằng cách ” nhúng ” nhân viên IT vào trong nhóm tăng trưởng ứng dụng, do đó tạo thành một đội đa tính năng – điều này hoàn toàn có thể cũng được tích hợp với ma trận quản trị .
Tại hội nghị Agile năm 2008, Andrew Clay Shafer và Patrick Debois đã đàm đạo về ” hạ tầng Agile “. [ 7 ] Thuật ngữ DevOps được thông dụng trải qua một loạt những series ” devopsdays “, mở màn từ năm 2009 ở Bỉ. [ 8 ] Kể từ đó, đã có những hội nghị devopsdays được tổ chức triển khai ở nhiều vương quốc trên toàn quốc tế. [ 9 ]
Chuỗi công cụ DevOps ( DevOps toolchain )[sửa|sửa mã nguồn]
Minh họa các giai đoạn (stages) của chuỗi DevOps
Bạn đang đọc: DevOps – Wikipedia tiếng Việt
Bởi vì DevOps là một sự đổi khác về văn hóa truyền thống và hợp tác ( giữa những nhóm tăng trưởng, điều hành quản lý và kiểm thử ứng dụng ) nên không có duy nhất một ” công cụ DevOps ” mà thay vào đó là chuỗi công cụ DevOps gồm có nhiều công cụ. [ 10 ] Thông thường, chuỗi công cụ DevOps dùng để làm việc làm tương thích với một hoặc nhiều thể loại, điều này phản ánh những góc nhìn chủ chốt của sự tăng trưởng ứng dụng và quy trình phân phối ứng dụng : [ 11 ] [ 12 ]
- Mã nguồn (Code) – phát triển và phê duyệt mã nguồn, công cụ quản lý phiên bản mã nguồn, trộn mã nguồn;
- Biên dịch (Build) — công cụ Tích hợp liên tục và trạng thái build;
- Kiểm thử (Test) — kiểm thử và xác định kết quả hiệu suất thực thi;
- Đóng gói (Package) — kho lưu trữ Artifact, các giai đoạn của ứng dụng trước khi triển khai;
- Phát hành (Release) — quản lý thay đổi, chấp thuận phát hành, phát hành tự động;
- Cấu hình (Configure) — cấu hình cơ sở hạ tầng và quản lý, các công cụ về cơ sở hạ tầng dạng mã nguồn;
- Giám sát (Monitor) — giám sát hiệu suất ứng dụng, trải nghiệm người dùng cuối.
Mặc dù có rất nhiều công cụ, nhưng trong một số ít tổ chức triển khai, chỉ 1 số ít loại trong đó là thiết yếu để thiết lập chuỗi công cụ DevOps. Một số nơi cố gắng nỗ lực xác lập những công cụ cơ bản để hoàn toàn có thể tìm trong những hạng mục có sẵn. [ 13 ]Các công cụ như Docker ( container ), Jenkins ( Tích hợp liên tục ), Puppet ( Mã nguồn như thể hạ tầng – IaC ) và Vagrant ( nền tảng ảo hóa ) — trong số nhiều thứ khác — thường được sử dụng và bàn luận khi nói về chuỗi công cụ DevOps. [ 14 ]
Mối quan hệ với Agile và Phân phối Liên tục ( Continous delivery )[sửa|sửa mã nguồn]
Agile ( Phát triển phầm mềm linh động ) và DevOps tương tự như nhau, nhưng trong khi Agile đại diện thay mặt cho một sự đổi khác trong tâm lý và thực hành thực tế ( dẫn đến sự đổi khác tổ chức triển khai ), DevOps có trọng tâm nhiều hơn về việc triển khai đổi khác có tổ chức triển khai để đạt được tiềm năng của mình. [ 15 ]Sự thiết yếu DevOps được sinh ra từ sự phổ cập của tăng trưởng ứng dụng linh động ( Agile ), là xu hướng dẫn đến sự ngày càng tăng số lượng những bản phát hành .Một tiềm năng của DevOps là thiết lập một thiên nhiên và môi trường nơi phát hành nhiều ứng dụng đáng an toàn và đáng tin cậy hơn, nhanh hơn và liên tục hơn. Các nhà quản trị phát hành mở màn sử dụng những công cụ ( như những công cụ phát hành ứng dụng tự động hóa và tích hợp liên tục ) để giúp thực thi tiềm năng nay — bằng cách làm gì đó trải qua việc tiếp cận quy trình tiến độ phân phối liên tục. [ 10 ]
Phân phối Liên tục ( Continuous delivery )[sửa|sửa mã nguồn]
Phân phối liên tục ( CD ) và DevOps tương tự như nhau ở ý nghĩa ( và thường trộn lẫn vào nhau ), nhưng chúng là hai khái niệm khác nhau : [ 15 ]
- DevOps có một phạm vi rộng hơn, và xoay quanh một trung tâm:
- Thay đổi có tổ chức: đặc biệt để hỗ trợ sự hợp tác lớn hơn giữa các loại nhân viên khác nhau khi tham gia vào việc phân phối phần mềm:
- Nhà phát triển phần mềm;
- Nhà điều hành hệ thống phần mềm;
- Đảm Bảo Chất Lượng;
- Quản lý;
- ….
- Tự động hoá quá trình trong phân phối phần mềm.[16]
- Thay đổi có tổ chức: đặc biệt để hỗ trợ sự hợp tác lớn hơn giữa các loại nhân viên khác nhau khi tham gia vào việc phân phối phần mềm:
- Phân phối Liên tục, trên khía cạnh khác, là một cách tiếp cận để tự động phân phối, và tập trung vào:
- Đưa các quá trình khác nhau vào cùng nhau;
- Thực hiện chúng nhanh hơn và thường xuyên hơn.
Chúng có chung tiềm năng sau cuối, và thường sử dụng phối hợp, để đạt được chúng. DevOps và Phân phối liên tục san sẻ một nền tảng trong những chiêu thức Agile và Lean : những đổi khác nhỏ và nhanh gọn tập trung chuyên sâu vào việc mang lại giá trị cho người dùng cuối. Chúng đang được truyền đạt tốt và hợp tác trong nội bộ, do đó giúp đạt được thời hạn ra thị trường nhanh, giảm rủi ro đáng tiếc .
Các tiềm năng đơn cử của DevOps là để liên kết hàng loạt pipeline ( đường ống ) phân phối. Chúng gồm có việc liên tục nâng cấp cải tiến sự tiến hành, hoàn toàn có thể dẫn đến :
- Có thời gian ra thị trường nhanh hơn;
- Hạ thấp tỷ lệ thất bại của bản phát hành mới;
- Rút ngắn thời gian giữa các lần sửa chữa;
- Nhanh hơn có nghĩa là có thời gian để phục hồi (trong trường hợp một phiên bản mới hỏng hoặc nếu không thì vô hiệu hóa hệ thống hiện tại).
Tiếp cận DevOps giúp đơn giản hóa quá trình, nâng cao năng lực lập trình và năng động. [ 17 ] DevOps nhằm mục đích mục tiêu để tối đa hóa Dự kiến, hiệu suất cao, bảo mật an ninh và bảo dưỡng những quy trình hoạt động giải trí. Rất tiếp tục, tự động hóa tương hỗ tiềm năng này .
Lợi ích của DevOps[sửa|sửa mã nguồn]
Các công ty vận dụng DevOps cho thấy họ đạt được 1 số ít quyền lợi đáng quan tâm như : rút ngắn thời hạn đưa loại sản phẩm ra thị trường, nâng cao sự hài lòng của người mua, chất lượng mẫu sản phẩm tốt hơn, phát hành nhiều loại sản phẩm đáng an toàn và đáng tin cậy hơn, nâng cao hiệu suất và hiệu năng, .. [ 15 ]Tuy nhiên, một nghiên cứu và điều tra phát hành vào tháng giêng 2017 bởi F5 dựa trên gần 2,200 giám đốc quản lý IT và chuyên viên ngành công nghiệp cho thấy rằng chỉ có một phần năm số người khảo sát nghĩ rằng DevOps đã có một kế hoạch ảnh hưởng tác động vào tổ chức triển khai của họ mặc dầu ngày càng tăng trong việc sử dụng. Cùng một điều tra và nghiên cứu cho thấy rằng chỉ 17 % xác lập DevOps như chìa khóa tăng trưởng, xếp dưới ứng dụng dạng dịch vụ ( 42 % ), tài liệu lớn ( 41 % ) và cloud dạng dịch vụ ( 39 % ). [ 15 ]
Thay đổi văn hóa truyền thống[sửa|sửa mã nguồn]
DevOps không đơn thuần là công cụ hay tiến trình, nó nhu yếu sự đổi khác văn hóa truyền thống có tổ chức triển khai. [ 10 ] Sự biến hóa văn hóa truyền thống này đặc biệt quan trọng khó khăn vất vả, do tại sự xích míc về vai trò của những phòng ban :
- Operations (Điều hành) — tìm kiếm sự ổn định có tổ chức;
- Developers (Lập trình viên) — muốn thay đổi;
- Testers — muốn giảm rủi ro.[16]
Tập hợp những nhóm này để thao tác chung một cách ngặt nghèo — là một thử thách quan trọng trong môi trường tự nhiên doanh nghiệp để hoàn toàn có thể vận dụng DevOps. [ 18 ]
Xây dựng một nền văn hóa truyền thống DevOps[sửa|sửa mã nguồn]
Mẫu áo có in chữ DevOps ở một hội nghị .
Nguyên tắc lớn nhất của DevOps là sự giao tiếp liên phòng ban – team buiilding và khuyến khích nhân viên hoạt động – để tạo một môi trường thuận lợi cho sự liên lạc này.[15] Team building có thể bao gồm chơi trò chơi, hội thảo.[15]
Các công ty tiếp tục phát hành phiên bản ứng dụng hoàn toàn có thể tiến hành DevOps. Ví dụ, công ty về tàng trữ hình ảnh trên trang web Flickr tăng trưởng một giải pháp DevOps, tương hỗ nhu yếu tiến hành 10 lần mỗi ngày. [ 19 ] Điều này được gọi là Triển khai liên tục [ 20 ] hoặc Phân phối liên tục [ 21 ] và đã được phối hợp với những chiêu thức Lean. [ 22 ] Các nhóm thao tác, những hiệp hội chuyên nghiệp và blog đã được hình thành theo chủ đề DevOps từ năm 2009. [ 23 ] [ 24 ]
DevOps và kiến trúc[sửa|sửa mã nguồn]
Để thực hành thực tế DevOps một cách hiệu suất cao, ứng dụng phải cung ứng một tập hợp những nhu yếu đặc biệt quan trọng về kiến trúc ( architecturally significant requirements – ASRs ) như : hoàn toàn có thể tiến hành, biến hóa, kiểm thử, và giám sát ). [ 25 ] Những nhu yếu ASRs này có độ ưu tiên cao và không hề xem nhẹ .Mặc dù về nguyên tắc, hoàn toàn có thể thực hành thực tế DevOps với bất kể kiểu kiến trúc nào — nhưng microservices là kiểu kiến trúc tiêu chuẩn để kiến thiết xây dựng mạng lưới hệ thống tiến hành liên tục. [ 15 ]
Phạm vi vận dụng[sửa|sửa mã nguồn]
Một số bài viết về DevOps cho rằng : ” DevOps chỉ là nguyên tắc của Phát triển ứng dụng linh động … ” [ 26 ]Một cuộc tìm hiểu được xuất bản vào tháng 1 năm năm nay bởi công ty RightScale, vận dụng DevOps tăng từ 66 % trong năm năm ngoái lên 74 % vào năm năm nay. Và trong những tổ chức triển khai lớn, DevOps thậm chí còn còn cao hơn — 81 %. [ 15 ]Áp dụng DevOps được tinh chỉnh và điều khiển bởi nhiều yếu tố — gồm có :
- Sử dụng Agile, các quá trình phát triển và phương pháp khác;
- Yêu cầu tăng tỷ lệ sản xuất phát hành — từ đơn vị và phía kinh doanh;
- Rộng rãi của ảo[27] và đám mây, cơ sở hạ tầng — từ bên trong và bên ngoài cung cấp;
- Tăng sử dụng dữ liệu trung tâm tự động[28] và quản lý các công cụ,
- Tăng cường tập trung vào bài kiểm tra tự động[29] và liên tục hợp các phương pháp;
- Một khối lượng quan trọng của công khai–sẵn sàng thực hành tốt nhất.
Gia tăng vận dụng[sửa|sửa mã nguồn]
” Thuyết về sự Hạn chế ” ( The theory of constraints ) vận dụng vào việc thực hành thực tế DevOps như sau : sự hạn chế có số lượng giới hạn thường ăn sâu sự vào sự không ưa đổi khác trong những bộ phận trong doanh nghiệp. [ 30 ] Sự ngày càng tăng vận dụng biểu lộ qua những giải pháp ” Lý Thuyết về sự Hạn chế ” cung ứng cho đại chiến chống bất kể sự cưỡng ép nào, được gọi là ” Năm bước tập trung chuyên sâu “. [ 15 ]Ba nguyên tắc sau của Gene Kim thiết lập những cách cơ bản để vận dụng DevOps : [ 15 ]
Cách tiên phong : tâm lý có mạng lưới hệ thống[sửa|sửa mã nguồn]
Nhấn mạnh việc tập trung chuyên sâu vào hiệu năng toàn mạng lưới hệ thống hơn là những thành phần đơn lẻ. [ 15 ]
Cách thứ hai : khuếch đại vòng lặp phản hồi[sửa|sửa mã nguồn]
Nhấn mạnh vào việc ngày càng tăng phản hồi và hiểu biết của những nhóm thao tác có tương quan .
Cách thứ ba: nền văn hóa của sự thử nghiệm và học hỏi liên tục
[sửa|sửa mã nguồn]
Hai thứ quan trọng nhất : thử nghiệm và thực hành thực tế .
- Hüttermann, Michael (2012). DevOps for Developers. Apress. ISBN 978-1-430-24569-8.
- Davis, Jennifer; Daniels, Katherine (2015). Effective DevOps. O’Reilly. ISBN 978-1-4919-2630-7.
Source: kubet
Category: Tải Phầm Mềm
Leave a Reply