Phương pháp DevOps là gì và ai cần nó

Chúng ta hãy tìm hiểu bản chất của phương pháp này là gì và nó có thể mang lại lợi ích cho ai.

Chúng ta cũng sẽ nói về các chuyên gia DevOps: nhiệm vụ, mức lương và kỹ năng của họ.

Phương pháp DevOps là gì và ai cần nó
Hình ảnh Matt Moore /Flickr/CC BY-SA

DevOps là gì

DevOps là một phương pháp phát triển phần mềm có nhiệm vụ thiết lập sự tương tác giữa các lập trình viên và quản trị viên hệ thống trong một công ty. Nếu các chuyên gia CNTT từ các bộ phận khác nhau không hiểu rõ nhiệm vụ của nhau thì việc phát hành các ứng dụng và bản cập nhật mới cho họ sẽ bị trì hoãn.

DevOps tạo ra một chu trình phát triển “liền mạch”, từ đó giúp đẩy nhanh tốc độ phát hành một sản phẩm phần mềm. Sự tăng tốc đạt được thông qua việc giới thiệu các hệ thống tự động hóa. Ngoài ra, các lập trình viên bắt đầu tham gia thiết lập máy chủ và tìm lỗi, chẳng hạn như họ có thể viết các bài kiểm tra tự động.

Điều này cải thiện sự tương tác giữa các phòng ban. Nhân viên bắt đầu hiểu rõ hơn những giai đoạn mà một sản phẩm phần mềm phải trải qua trước khi đến tay người dùng.

Khi một nhà phát triển hiểu những gì quản trị viên phải đối mặt khi thiết lập máy chủ, anh ta sẽ cố gắng làm phẳng các “góc nhọn” có thể có trong mã. Điều này làm giảm số lượng lỗi khi triển khai một ứng dụng - theo thống kê, nó giảm khoảng năm lần.

Ai cần và không cần phương pháp luận

Nhiều Các chuyên gia CNTT tin rằngrằng DevOps sẽ mang lại lợi ích cho bất kỳ tổ chức nào phát triển phần mềm. Điều này đúng ngay cả khi công ty chỉ là người tiêu dùng dịch vụ CNTT đơn giản và không phát triển các ứng dụng của riêng mình. Trong trường hợp này, việc triển khai văn hóa DevOps sẽ giúp bạn tập trung vào đổi mới.

Ngoại lệ tính cho khởi nghiệp, nhưng ở đây mọi thứ đều phụ thuộc vào quy mô của dự án. Nếu mục tiêu của bạn là tung ra một sản phẩm khả thi tối thiểu (MVP) để thử nghiệm một ý tưởng mới, thì bạn có thể thực hiện mà không cần DevOps. Ví dụ: người sáng lập Groupon bắt đầu làm việc trên dịch vụ một cách thủ công đã đăng tất cả các ưu đãi trên trang web và các đơn đặt hàng được thu thập. Anh ấy không sử dụng bất kỳ công cụ tự động hóa nào.

Việc triển khai các phương pháp và công cụ tự động hóa chỉ có ý nghĩa khi ứng dụng bắt đầu trở nên phổ biến. Điều này sẽ giúp hợp lý hóa các quy trình kinh doanh và tăng tốc độ phát hành các bản cập nhật.

Cách triển khai DevOps

Dưới đây là một số khuyến nghị để chuyển sang một phương pháp mới.

Xác định các vấn đề trong quá trình kinh doanh. Trước khi thực hiện phương pháp này, hãy nêu bật các mục tiêu và vấn đề của tổ chức. Chiến lược chuyển đổi sang DevOps sẽ phụ thuộc vào họ. Để làm điều này, hãy lập một danh sách các câu hỏi, ví dụ:

  • Điều gì làm mất nhiều thời gian nhất khi cập nhật phần mềm?
  • Có thể tự động hóa quá trình này?
  • Cấu trúc của tổ chức có ảnh hưởng đến điều này không?

Tìm hiểu thêm về việc xác định các vấn đề trong một tổ chức bạn có thể đọc trong sách «Dự án "Phoenix""Và"Hướng dẫn DevOps» từ các tác giả của phương pháp luận.

Thay đổi văn hóa trong công ty. Điều quan trọng là thuyết phục tất cả nhân viên thay đổi cách làm việc thông thường và mở rộng phạm vi năng lực của họ. Ví dụ, tại Facebook tất cả các lập trình viên câu trả lời cho toàn bộ vòng đời ứng dụng: từ mã hóa đến triển khai. Ngoài ra, Facebook không có bộ phận kiểm tra riêng - các bài kiểm tra đều do chính các nhà phát triển viết.

Bắt đầu nhỏ. Chọn quy trình tốn nhiều thời gian và công sức nhất khi phát hành bản cập nhật và tự động hóa quy trình đó. Cái này có thể quá trình thử nghiệm hoặc triển khai ứng dụng. Các chuyên gia khuyên nhủ Bước đầu tiên là triển khai các công cụ kiểm soát phiên bản phân tán. Họ làm cho việc quản lý nguồn dễ dàng hơn. Trong số các giải pháp như vậy, nổi tiếng nhất là Git, Mercurial, Subversion (SVN) và CVS.

Cũng cần chú ý đến các hệ thống tích hợp liên tục chịu trách nhiệm lắp ráp và thử nghiệm sản phẩm cuối cùng. Ví dụ về các công cụ như vậy: Jenkins, TeamCity và Bamboo.

Đánh giá các cải tiến. Phát triển các số liệu hiệu suất cho các giải pháp đã triển khai và tạo danh sách kiểm tra. Các số liệu có thể bao gồm tần suất phát hành, thời gian dành cho các tính năng của phần mềm và số lượng lỗi trong mã. Thảo luận về kết quả không chỉ với người quản lý mà còn với những người còn lại trong nhóm tham gia vào dự án. Hỏi những công cụ nào còn thiếu. Hãy tính đến những yêu cầu này khi tiếp tục tối ưu hóa quy trình của bạn.

Những lời chỉ trích về DevOps

Mặc dù phương pháp giúp các tổ chức có thể đưa ra quyết định nhanh hơn về phát triển ứng dụng, vết cắt số lượng lỗi trong phần mềm và việc khuyến khích nhân viên học hỏi những điều mới cũng bị chỉ trích.

Có ý kiếnrằng các lập trình viên không nên hiểu chi tiết công việc của người quản trị hệ thống. Bị cáo buộc, DevOps dẫn đến thực tế là thay vì các chuyên gia phát triển hoặc quản trị, công ty có những người hiểu mọi thứ nhưng chỉ ở bề ngoài.

Người ta cũng tin rằng DevOps không hoạt động với sự quản lý kém. Nếu nhóm phát triển và quản trị viên không có mục tiêu chung thì trách nhiệm của người quản lý là không tổ chức giao tiếp giữa các nhóm. Để giải quyết vấn đề này, điều cần thiết không phải là một phương pháp luận mới mà là một hệ thống đánh giá người quản lý dựa trên phản hồi từ cấp dưới. Bạn có thể đọc nó ở đây, những câu hỏi nào nên được đưa vào mẫu khảo sát nhân viên.

Phương pháp DevOps là gì và ai cần nó
Hình ảnh Ed Ivanushkin /Flickr/CC BY-SA

Kỹ sư DevOps là ai

Một kỹ sư DevOps triển khai phương pháp DevOps. Nó đồng bộ hóa tất cả các giai đoạn tạo ra một sản phẩm phần mềm: từ viết mã đến thử nghiệm và phát hành ứng dụng. Một chuyên gia như vậy sẽ kiểm soát các bộ phận quản lý và phát triển, đồng thời tự động hóa việc thực hiện các nhiệm vụ của họ bằng cách triển khai các công cụ phần mềm khác nhau.

Bí quyết của một kỹ sư DevOps là anh ta kết hợp nhiều ngành nghề: quản trị viên, nhà phát triển, người thử nghiệm và người quản lý.

Joe Sanchez, nhà truyền giáo DevOps tại VMware, một công ty phần mềm ảo hóa, chỉ ra một số kỹ năng mà một kỹ sư DevOps phải có. Ngoài kiến ​​thức rõ ràng về phương pháp DevOps, người này cần có kinh nghiệm quản trị hệ điều hành Windows và Linux cũng như kinh nghiệm làm việc với các công cụ tự động hóa như Đầu bếpMúa rốiCó khả năng. Anh ta cũng có thể viết các tập lệnh và mã bằng một số ngôn ngữ và hiểu các công nghệ mạng.

Kỹ sư DevOps chịu trách nhiệm thực hiện mọi nhiệm vụ tự động hóa liên quan đến định cấu hình và triển khai ứng dụng. Giám sát phần mềm cũng rơi vào vai anh. Để giải quyết những vấn đề này, anh sử dụng nhiều hệ thống quản lý cấu hình, giải pháp ảo hóa và công cụ đám mây để cân bằng tài nguyên.

Ai đang thuê

Các kỹ sư DevOps có thể mang lại lợi ích cho bất kỳ tổ chức nào phát triển ứng dụng hoặc quản lý số lượng lớn máy chủ. Kỹ sư DevOps đang tuyển dụng Những gã khổng lồ CNTT như Amazon, Adobe và Facebook. Họ cũng làm việc trên Netflix, Walmart và Etsy.

Không tuyển dụng Các kỹ sư DevOps chỉ là những người mới khởi nghiệp. Công việc của họ là phát hành một sản phẩm khả thi tối thiểu để thử nghiệm một ý tưởng mới. Trong hầu hết các trường hợp, các công ty khởi nghiệp có thể hoạt động mà không cần DevOps.

Phải trả bao nhiêu

Kỹ sư DevOps kiếm hơn bất cứ ai trong ngành. Thu nhập trung bình của các chuyên gia như vậy trên khắp thế giới dao động từ 100 đến 125 nghìn đô la mỗi năm.

Ở Mỹ họ lấy 90 nghìn đô la mỗi năm (500 nghìn rúp mỗi tháng). Ở Canada họ trả 122 nghìn đô la mỗi năm (670 nghìn rúp mỗi tháng) và ở Anh - 67,5 nghìn bảng Anh mỗi năm (490 nghìn rúp mỗi tháng).

Về phía các công ty Nga, Moscow Sẵn sàng trả cho các chuyên gia DevOps từ 100 đến 200 nghìn rúp mỗi tháng. Ở St. Petersburg, các nhà tuyển dụng hào phóng hơn một chút - họ đưa ra mức lương 160-360 nghìn rúp mỗi tháng. Ở các khu vực, mức lương được báo ở mức 100–120 nghìn rúp mỗi tháng.

Làm thế nào để trở thành chuyên gia DevOps

DevOps là một hướng tương đối mới trong CNTT nên chưa có danh sách yêu cầu cụ thể nào dành cho kỹ sư DevOps. Ở các vị trí tuyển dụng, trong số các yêu cầu đối với vị trí này, bạn có thể tìm thấy cả kỹ năng quản trị Debian và CentOS cũng như khả năng làm việc với ổ đĩa. mảng RAID.

Dựa trên điều này, chúng ta có thể kết luận rằng, trước hết, một kỹ sư DevOps phải có tư duy kỹ thuật tốt. Điều quan trọng đối với một người như vậy là phải không ngừng học hỏi các công cụ và công nghệ mới.

Cách dễ nhất để trở thành kỹ sư DevOps là quản trị viên hoặc nhà phát triển hệ thống. Họ đã có sẵn một số kỹ năng cần được phát triển. Nhiệm vụ chính là nâng cao bộ kiến ​​thức tối thiểu về DevOps, hiểu cách làm việc với các công cụ tự động hóa và lấp đầy những lỗ hổng về kỹ năng quản trị, lập trình và ảo hóa.

Để hiểu kiến ​​thức còn thiếu ở đâu, bạn có thể sử dụng Wikipedia thu nhỏ trên GitHub hoặc bản đồ tinh thần. Cư dân của Hacker News cũng Đề nghị đọc sách "Dự án "Phoenix""Và"Hướng dẫn DevOps" (mà chúng tôi đã đề cập ở trên) và "Triết lý DevOps. Nghệ thuật quản lý CNTT» dưới nhãn hiệu O'Reilly Media.

Bạn cũng có thể đăng ký Bản tin hàng tuần của Devops, đọc các bài viết chuyên đề cổng thông tin DZone và bắt đầu liên lạc với các kỹ sư DevOps trong Trò chuyện lười biếng. Bạn cũng nên tham khảo các khóa học miễn phí trên Udacity hoặc EDX.

Bài viết từ blog của chúng tôi:



Nguồn: www.habr.com

Thêm một lời nhận xét