Công cụ DevOps mọi người nên học vào năm 2020

Bắt đầu sử dụng các công cụ DevOps tốt nhất ngay hôm nay!

Công cụ DevOps mọi người nên học vào năm 2020
Cuộc cách mạng DevOps cuối cùng đã chiếm lĩnh thế giới và các công cụ DevOps đã trở nên vô cùng phổ biến. Theo dịch vụ Google Trends, số lượng yêu cầu về “công cụ DevOps” không ngừng tăng lên và xu hướng này vẫn tiếp tục.

Phương pháp DevOps bao trùm toàn bộ vòng đời phát triển phần mềm, vì vậy các chuyên gia có thể chọn từ nhiều công cụ khác nhau. Nhưng như bạn đã biết, không có công cụ nào có thể trở thành công cụ phổ quát cho tất cả mọi người. Tuy nhiên, một số giải pháp cung cấp nhiều chức năng đến mức chúng có thể xử lý hầu hết mọi tác vụ.

Hãy chia các công cụ DevOps thành các danh mục và so sánh chúng với các công cụ tương tự:

  • công cụ phát triển và xây dựng
  • thử nghiệm các công cụ tự động hóa
  • công cụ tổ chức triển khai
  • Công cụ thời gian chạy
  • Công cụ cộng tác.

Thực hiện thành công và chu đáo Người thực hành DevOps bao gồm các công cụ từ cả năm nhóm được liệt kê ở trên. Phân tích bộ công cụ hiện tại trong dự án của bạn để không bỏ lỡ phần tử quan trọng của quy trình CI/CD.

Công cụ phát triển và xây dựng

Công cụ DevOps mọi người nên học vào năm 2020
Đây là cơ sở của ngăn xếp đường ống CI/CD. Tất cả bắt đầu ngay tại đây! Các công cụ tốt nhất trong danh mục này có thể quản lý nhiều luồng sự kiện và tích hợp dễ dàng với các sản phẩm khác.

Ở giai đoạn này của vòng đời phát triển, có ba nhóm công cụ:

  • Hệ thống kiểm soát phiên bản (SCM)
  • tích hợp liên tục (CI)
  • Quản lý dữ liệu

GIT đã có thành tích tích cực vào năm 2020, vì vậy công cụ SCM của bạn phải hỗ trợ liền mạch cho GIT. Đối với CI, điều kiện tiên quyết là khả năng thực thi và chạy các bản dựng trong môi trường vùng chứa biệt lập. Khi nói đến quản lý dữ liệu, nó đòi hỏi khả năng thay đổi lược đồ cơ sở dữ liệu và duy trì cơ sở dữ liệu theo phiên bản ứng dụng.

Công cụ SCM + CI số 1

Người chiến thắng: GitLab và GitLab-CI

Công cụ DevOps mọi người nên học vào năm 2020
Công cụ tốt nhất của chu trình DevOps 2020 chắc chắn là GitLab và nó chắc chắn sẽ tiếp tục dẫn đầu sự đổi mới trong tương lai gần.

Chức năng chính của GitLab là cung cấp khả năng quản lý thoải mái kho lưu trữ Git. Giao diện web trực quan và dễ sử dụng. GitLab cung cấp mọi thứ bạn cần trong một phiên bản miễn phí, dưới dạng SaaS và tại chỗ (sử dụng tài nguyên của riêng bạn để lưu trữ phần mềm).

Không có công cụ SCM nào khác sử dụng tích hợp liên tục (CI) trực tiếp trên kho lưu trữ của bạn và GitLab đã làm điều này trong một thời gian dài. Để sử dụng GitLab-CI, bạn phải thêm tệp .gitlab-ci.yml vào gốc mã nguồn của mình và mọi thay đổi đối với dự án sẽ kích hoạt các hành động dựa trên chính xác những gì bạn đã chỉ định. GitLab và GitLab-CI xứng đáng được công nhận là những người dẫn đầu trong lĩnh vực tích hợp liên tục (CI-as-code).

Lợi ích chính

  • Độ tin cậy - Sản phẩm đã có mặt trên thị trường từ năm 2013; ổn định; được hỗ trợ tốt.
  • Mã nguồn mở - Phiên bản miễn phí của GitLab không giới hạn chức năng cốt lõi mà các nhóm phát triển cần. Các gói dịch vụ trả phí cung cấp thêm các tính năng hữu ích cho các công ty có quy mô và nhu cầu khác nhau.
  • CI đã được khắc - Không có công cụ nào khác trên thị trường được tích hợp liên tục trực tiếp vào SCM như GitLab-CI. Việc sử dụng Docker đảm bảo các bản dựng riêng biệt không gặp rắc rối và các báo cáo tích hợp giúp việc gỡ lỗi trở nên dễ dàng. Chúng tôi không yêu cầu tích hợp và quản lý nhiều công cụ phức tạp cùng một lúc.
  • Tích hợp không giới hạn - GitLab cung cấp khả năng tích hợp dễ dàng tất cả các công cụ DevOps mà bạn cần. Điều này đảm bảo rằng các nhóm phát triển và bảo trì có một nguồn thông tin duy nhất về ứng dụng của họ trong mọi môi trường.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Có những công cụ phổ biến khác trong danh mục này nhưng chúng không tốt bằng GitLab. Và đó là lý do tại sao:

GitHub — Đây là hệ thống kiểm soát phiên bản SaaS tuyệt vời dành cho các công ty nhỏ và giai đoạn phát triển ban đầu. Đối với các công ty lớn cần giữ địa chỉ IP trên mạng riêng của họ, giải pháp duy nhất từ ​​GitHub là máy ảo .OVA không hỗ trợ các hệ thống có tính sẵn sàng cao. Điều này khiến việc bảo trì tại chỗ trở nên khó khăn, hơn nữa, .OVA chỉ phù hợp với các doanh nghiệp cỡ trung bình, nếu không máy chủ sẽ gặp sự cố khi chịu tải lớn hơn. Việc thiếu Tác vụ GitHub (cho đến gần đây và chưa có trong phiên bản tại chỗ) hoặc CI dưới dạng mã có nghĩa là bạn cần chọn một công cụ CI riêng biệt và sau đó quản lý tích hợp đó. Cuối cùng, GitHub đắt hơn nhiều so với cả hai phiên bản GitLab.

Jenkins — Mặc dù Jenkins được coi là tiêu chuẩn trong số các công cụ tích hợp liên tục theo mặc định, nhưng nó luôn thiếu khả năng kiểm soát phiên bản. Hóa ra là bạn đang sử dụng Jenkins cùng với một số loại công cụ SCM. Thật quá khó khi GitLab có thể làm được cả hai. Thiết kế UX tầm thường không phù hợp với một ứng dụng web hiện đại và còn nhiều điều chưa được mong đợi.

BitBucket/Tre — Tôi phải công nhận anh ấy là kẻ thua cuộc tự động: tại sao lại có hai công cụ khi GitLab thực hiện mọi thứ hoàn toàn độc lập. BitBucket Cloud hỗ trợ chức năng GitLab-CI / GitHub Action, nhưng không có công ty nào lớn hơn một công ty khởi nghiệp có thể dễ dàng triển khai nó. Máy chủ BitBucket tại chỗ thậm chí không hỗ trợ các đường dẫn BitBucket!

Công cụ quản lý dữ liệu số 1

Người chiến thắng: Đường bayDB

Công cụ DevOps mọi người nên học vào năm 2020
Trong phát triển ứng dụng web, tự động hóa cơ sở dữ liệu thường không được coi trọng. Ý tưởng triển khai các thay đổi lược đồ cơ sở dữ liệu cho các phiên bản mới của ứng dụng xuất hiện muộn. Những thay đổi về lược đồ thường dẫn đến việc các cột hoặc bảng được thêm vào và đổi tên. Nếu phiên bản ứng dụng không khớp với phiên bản lược đồ, ứng dụng có thể bị lỗi. Ngoài ra, việc quản lý các thay đổi cơ sở dữ liệu khi cập nhật ứng dụng có thể gặp khó khăn vì có hai hệ thống khác nhau. FlyWayDB giải quyết tất cả những vấn đề này.

Lợi ích chính

  • Lập phiên bản cơ sở dữ liệu - Flyway cho phép bạn tạo các phiên bản cơ sở dữ liệu, theo dõi di chuyển cơ sở dữ liệu và dễ dàng chuyển hoặc hoàn nguyên các thay đổi lược đồ mà không cần công cụ bổ sung cho việc này.
  • Nhị phân hoặc nhúng - Chúng tôi có thể chọn chạy Flyway như một phần của ứng dụng hoặc dưới dạng tệp thực thi nhị phân. Flyway kiểm tra tính tương thích của phiên bản khi khởi động và bắt đầu quá trình di chuyển thích hợp, giữ cho các phiên bản ứng dụng và cơ sở dữ liệu được đồng bộ hóa. Bằng cách chạy lệnh ad-hoc dòng cmd, chúng tôi mang đến sự linh hoạt cho cơ sở dữ liệu hiện có mà không cần xây dựng lại toàn bộ ứng dụng.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Không có nhiều công cụ trong lĩnh vực này. Hãy xem xét một số trong số họ:

LiquiBase — Liquibase giống FlywayDB. Tôi muốn thiết lập nó trên Flyway nếu tôi có ai đó trong nhóm của mình có nhiều kinh nghiệm hơn với Liquibase.

người bán hoa - Chỉ có thể làm việc cho các ứng dụng được đóng gói. Để chạy thành công cơ sở dữ liệu được chứa trong container, mọi thứ phải được lên kế hoạch hoàn hảo. Tôi khuyên bạn nên sử dụng RDS (Dịch vụ cơ sở dữ liệu quan hệ) cho cơ sở dữ liệu và không khuyên bạn nên lưu trữ thông tin quan trọng trong vùng chứa.

Kiểm tra công cụ tự động hóa

Công cụ DevOps mọi người nên học vào năm 2020
Hãy bắt đầu cuộc thảo luận của chúng ta về các công cụ tự động hóa thử nghiệm bằng cách phân loại chúng dựa trên kim tự tháp thử nghiệm.

Kim tự tháp thử nghiệm (kiểm tra) có 4 cấp độ:

  • Kiểm tra đơn vị - Đây là cơ sở của toàn bộ quá trình kiểm tra tự động. Cần có nhiều bài kiểm tra đơn vị hơn so với các loại bài kiểm tra khác. Các nhà phát triển viết và chạy thử nghiệm đơn vị để đảm bảo rằng một phần của ứng dụng (được gọi là "đơn vị") tuân thủ thiết kế của nó và hoạt động như mong đợi.
  • Kiểm thử thành phần - Mục đích chính của kiểm thử thành phần là xác minh hành vi đầu vào/đầu ra của đối tượng kiểm thử. Chúng ta phải đảm bảo rằng chức năng của đối tượng thử nghiệm được triển khai chính xác theo đặc tả.
  • Kiểm thử tích hợp - Một loại kiểm thử trong đó các mô-đun phần mềm riêng lẻ được kết hợp và kiểm thử thành một nhóm.
  • Kiểm tra từ đầu đến cuối - Bước này tự giải thích. Chúng tôi giám sát toàn bộ ứng dụng và đảm bảo nó hoạt động theo kế hoạch.

Vì kiểm thử đơn vị và kiểm thử thành phần chỉ được thực hiện bởi các nhà phát triển và thường dành riêng cho ngôn ngữ lập trình nên chúng tôi sẽ không đánh giá các công cụ này cho miền DevOps.

Công cụ kiểm tra tích hợp số 1

Người chiến thắng: Quả dưa chuột

Công cụ DevOps mọi người nên học vào năm 2020
Dưa chuột kết hợp các thông số kỹ thuật và tài liệu kiểm tra thành một tài liệu sống duy nhất. Các thông số kỹ thuật luôn được cập nhật vì chúng được Cucumber tự động kiểm tra. Nếu bạn muốn xây dựng một khung thử nghiệm tự động ngay từ đầu và lập mô hình hành vi người dùng trong một ứng dụng web thì Selenium WebDriver với Java và Cucumber BDD là một cách tuyệt vời để tìm hiểu và triển khai Cucumber trong một dự án.

Lợi ích chính

  • Cách tiếp cận BDD (Phát triển theo hướng hành vi - “phát triển thông qua hành vi” trái ngược với cách tiếp cận “phát triển theo hướng thử nghiệm”) - Dưa chuột được thiết kế để thử nghiệm BDD, ban đầu nó được tạo ra cho chính nhiệm vụ này.
  • Tài liệu sống - Tài liệu luôn là một vấn đề khó khăn! Vì các bài kiểm tra của bạn được viết dưới dạng mã nên Cucumber sẽ kiểm tra tài liệu được tạo tự động để đảm bảo rằng các bài kiểm tra và tài liệu được đồng bộ hóa.
  • Hỗ trợ - Chúng ta có thể chọn từ nhiều công cụ, nhưng Cucumber có nguồn tài chính cần thiết và hệ thống hỗ trợ được tổ chức tốt để giúp đỡ người dùng trong mọi tình huống khó khăn.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Trong số các framework và công cụ dành riêng cho công nghệ khác, chỉ có Cucumber mới có thể được coi là một giải pháp phổ quát.

Công cụ kiểm tra đầu cuối

Khi tiến hành end-to-end testing, bạn cần tập trung vào XNUMX điểm chính:

  • thử nghiệm chức năng
  • Bài kiểm tra về áp lực.

Trong thử nghiệm chức năng, chúng tôi kiểm tra xem mọi thứ chúng tôi muốn có thực sự xảy ra hay không. Ví dụ: khi tôi nhấp vào một số thành phần nhất định trong SPA (ứng dụng một trang), hãy điền vào biểu mẫu và chọn "Gửi", dữ liệu sẽ xuất hiện trong cơ sở dữ liệu và thông báo "Thành công!" xuất hiện trên màn hình.

Điều quan trọng nữa là chúng tôi phải kiểm tra xem một số lượng người dùng nhất định chạy cùng một kịch bản có thể được xử lý mà không gặp lỗi hay không.

Việc thiếu 2 loại thử nghiệm này sẽ là một hạn chế đáng kể trong quy trình CI/CD của bạn.

Công cụ kiểm tra đầu cuối số 1. Thử nghiệm chức năng

Người chiến thắng: SoapUI Pro

Công cụ DevOps mọi người nên học vào năm 2020
SoapUI đã có mặt trong không gian thử nghiệm API từ lâu vì các dịch vụ web dựa trên SOAP là tiêu chuẩn. Mặc dù chúng tôi không còn tạo các dịch vụ SOAP mới và tên của công cụ không thay đổi nhưng điều đó không có nghĩa là nó không phát triển. SoapUI cung cấp một khuôn khổ tuyệt vời để tạo các bài kiểm tra chức năng phụ trợ tự động. Các thử nghiệm có thể được kết hợp dễ dàng với các công cụ tích hợp liên tục và được sử dụng như một phần của quy trình CI/CD.

Lợi ích chính

  • Tài liệu chi tiết - SoapUI đã có mặt trên thị trường khá lâu nên có rất nhiều tài nguyên trực tuyến có thể giúp bạn hiểu cách thiết lập thử nghiệm.
  • Dễ sử dụng - Mặc dù công cụ này hỗ trợ nhiều giao thức để kiểm tra API, nhưng sự hiện diện của giao diện chung cho nhiều dịch vụ của SoapUI giúp việc viết bài kiểm tra trở nên dễ dàng hơn.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Selenium là một nhạc cụ tuyệt vời khác trong nhóm này. Tôi khuyên bạn nên sử dụng nó nếu bạn đang xây dựng và chạy một ứng dụng dựa trên Java. Tuy nhiên, nếu bạn đang xây dựng một ứng dụng web hoàn chỉnh với nhiều công nghệ, nó có thể trở nên khó sử dụng đối với các thành phần không phải Java.

Công cụ kiểm tra đầu cuối số 1. Bài kiểm tra về áp lực

Người chiến thắng: LoadRunner

Công cụ DevOps mọi người nên học vào năm 2020
Giải thích: Khi đến lúc phải kiểm tra tải mọi thành phần trong ứng dụng của bạn, chỉ LoadRunner mới có thể hoàn thành nhiệm vụ. Đúng, ban đầu nó tốn kém và khó khăn, nhưng LoadRunner là công cụ duy nhất mang lại cho tôi, với tư cách là một kiến ​​trúc sư kỹ thuật, hoàn toàn tin tưởng rằng mã mới sẽ hoạt động trong điều kiện tải khắc nghiệt. Ngoài ra, tôi nghĩ đã đến lúc LoadRunner được các nhóm phát triển tiếp quản thay vì các nhóm thử nghiệm.

Lợi ích chính

  • Tài liệu mở rộng - LoadRunner đã có mặt trên thị trường khá lâu, vì vậy có rất nhiều tài nguyên trực tuyến giúp bạn hiểu cách thiết lập các bài kiểm tra tải.
  • Hỗ trợ giao thức - Load Runner hỗ trợ mọi thứ từ ODBC đến AJAX, HTTPS và bất kỳ giao thức không tầm thường nào khác mà ứng dụng của bạn có thể sử dụng. Chúng tôi cố gắng không sử dụng nhiều công cụ để kiểm tra tải vì điều này chỉ làm phức tạp thêm quy trình.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Một lần nữa, không có nhiều công cụ phổ quát trong lĩnh vực này, vì vậy giải pháp tốt nhất là giải pháp sẽ hoạt động được trong mọi môi trường với bất kỳ công nghệ nào.

Công cụ triển khai

Công cụ DevOps mọi người nên học vào năm 2020
Các công cụ triển khai có lẽ là khía cạnh ít được hiểu rõ nhất của quá trình phát triển. Đối với nhóm vận hành không hiểu sâu về mã và chức năng của ứng dụng thì rất khó sử dụng các công cụ như vậy. Đối với các nhà phát triển, quản lý triển khai là một trách nhiệm mới nên họ chưa có đủ kinh nghiệm làm việc với các công cụ như vậy.

Trước hết, hãy chia tất cả các công cụ triển khai thành ba danh mục con:

  • quản lý hiện vật
  • quản lý cấu hình
  • triển khai.

Công cụ quản lý hiện vật số 1

Người chiến thắng: Nexus

Công cụ DevOps mọi người nên học vào năm 2020
Kho lưu trữ tạo phẩm Nexus hỗ trợ hầu hết mọi công nghệ chính, từ Java, NPM đến Docker. Chúng ta có thể sử dụng công cụ này để lưu trữ tất cả các hiện vật mà chúng ta sử dụng. Việc ủy ​​quyền các trình quản lý gói từ xa cũng tăng tốc đáng kể quá trình xây dựng CI, giúp việc xây dựng các gói trở nên dễ tiếp cận hơn. Một ưu điểm khác là khả năng có được cái nhìn đầy đủ về tất cả các gói được sử dụng trong một số dự án phần mềm, chặn các gói nguồn mở không an toàn (chúng có thể hoạt động như một vectơ tấn công).

Lợi ích chính

  • Hỗ trợ kỹ thuật - Sản phẩm đáng tin cậy; được hỗ trợ tốt.
  • Mã nguồn mở - Phiên bản miễn phí không giới hạn chức năng cốt lõi mà nhóm phát triển cần.

Công cụ quản lý cấu hình số 1

Người chiến thắng: Có khả năng

Ansible dẫn đầu vì một lý do đơn giản: không quốc tịch. Trước đây, các công cụ tương tự tập trung vào quản lý trạng thái cấu hình. Khi khởi chạy, một công cụ như vậy, sau khi nhận được cấu hình mong muốn, sẽ cố gắng sửa cấu hình ứng dụng hiện tại. Và với cách tiếp cận mới, chỉ có các thành phần không trạng thái mới xuất hiện. Các phiên bản mã mới là các tạo phẩm được triển khai để thay thế các phiên bản hiện có. Đây có thể coi là một loại môi trường phù du, ngắn hạn.

Lợi ích chính

  • Không trạng thái - Playbook được khởi chạy từ máy triển khai và được thực thi trên các máy chủ mục tiêu. Tôi không phải lo lắng về trạng thái của đối tượng từ xa bằng cách sử dụng công cụ như Packer để tạo các đối tượng có thể triển khai.
  • Mã nguồn mở - Giống như CentOSAnsible cũng được RedHat hỗ trợ, giúp duy trì cộng đồng và đảm bảo các module chất lượng cao, dễ sử dụng.
  • Kiểm tra bằng Molecule (một khung Ansible) - Vì quản lý cấu hình là mã, giống như mọi thứ khác nên việc kiểm tra là điều cần thiết. Khung kiểm tra vai trò Ansible của Molecule hoạt động hoàn hảo, đảm bảo rằng cấu hình có cùng chất lượng và tuân theo cùng một quy trình CI/CD như mã ứng dụng.
  • YAML - So với các công cụ khác, YAML dễ hiểu hơn. Vì quản lý cấu hình thường là một thách thức mới đối với những người triển khai thực tiễn DevOps nên tính đơn giản chính là con át chủ bài của nó.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Đầu bếp mã hoạt động - Tôi bắt đầu sự nghiệp DevOps của mình với tư cách là nhà phát triển sách dạy nấu ăn. Tất nhiên, Ruby và Chef rất được tôi yêu quý, nhưng đơn giản là chúng không giải quyết được các vấn đề của các ứng dụng gốc đám mây, không trạng thái hiện đại. OpsCode Chef là một công cụ tuyệt vời dành cho các ứng dụng truyền thống hơn, nhưng trong bài viết này, chúng tôi tập trung vào tương lai.

Múa rối — Puppet chưa bao giờ có nhiều người hâm mộ, đặc biệt là so với Chef và Ansible. Thật tuyệt vời khi cung cấp và làm việc với phần cứng, nhưng nó thiếu hỗ trợ quản lý cấu hình hiện đại cho ứng dụng web.

Công cụ triển khai số 1

Người chiến thắng: Terraform

Công cụ DevOps mọi người nên học vào năm 2020
Terraform giải quyết vấn đề mô tả cơ sở hạ tầng của bạn dưới dạng mã, từ các thành phần mạng đến hình ảnh máy chủ đầy đủ. Sản phẩm này đã đi được một chặng đường dài kể từ khi phát hành lần đầu, với rất nhiều plugin được tạo và một cộng đồng mạnh mẽ được xây dựng nên bạn chắc chắn sẽ nhận được trợ giúp trong mọi tình huống triển khai. Khả năng hỗ trợ bất kỳ loại môi trường nào (tại chỗ, trên đám mây hoặc ở nơi khác) là vô song. Cuối cùng, phiên bản mới nhất cung cấp nhiều hàm và lớp logic giống nhau trong HCL giống như bất kỳ ngôn ngữ lập trình truyền thống nào khác, giúp các nhà phát triển Terraform dễ dàng nắm bắt một cách nhanh chóng và dễ dàng.

Lợi ích chính

  • Bất khả tri về môi trường - Terraform sử dụng các chức năng hoạt động như một giao diện giữa mã Terraform của bạn, tất cả các API và logic nội bộ để liên lạc với nhà cung cấp cơ sở hạ tầng. Điều này có nghĩa là tôi sẽ thành thạo chỉ một công cụ và sau đó có thể làm việc ở bất cứ đâu.
  • Nguồn mở - Thật khó để đánh bại các công cụ miễn phí! Hỗ trợ cộng đồng ở mức cao nhất.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Hình thành đám mây AWS — Ngay cả khi bạn chỉ làm việc trong môi trường đám mây AWS, công việc tiếp theo của bạn có thể sử dụng một công cụ khác. Dành toàn bộ thời gian và sức lực của bạn cho chỉ một nền tảng là một quyết định thiển cận. Ngoài ra, nhiều dịch vụ AWS mới thường có sẵn dưới dạng mô-đun Terraform trước khi chúng có sẵn trong CloudFormation.

Công cụ thời gian chạy

Công cụ DevOps mọi người nên học vào năm 2020

Mục tiêu cuối cùng của bất kỳ dự án phát triển nào là đưa ứng dụng vào sản xuất. Trong thế giới DevOps, chúng tôi muốn nhận thức đầy đủ về tất cả các vấn đề có thể xảy ra với môi trường của mình và chúng tôi cũng muốn giảm thiểu sự can thiệp thủ công. Việc chọn đúng bộ công cụ thời gian chạy là điều cần thiết để đạt được niết bàn phát triển ứng dụng.

Các danh mục con của công cụ thời gian chạy:

  • X dưới dạng dịch vụ (XaaS)
  • sự phối hợp
  • giám sát
  • khai thác gỗ.

X-tool-as-a-service #1

Người chiến thắng: Amazon Web Services

Công cụ DevOps mọi người nên học vào năm 2020
Amazon luôn dẫn đầu về công nghệ đám mây, nhưng không dừng lại ở đó: sự đa dạng của các dịch vụ mới dành cho các nhà phát triển khiến họ phải mở rộng tầm mắt. Đưa bất kỳ công nghệ và mẫu nào vào AWS và nó sẽ được xây dựng và chạy. Chi phí của công cụ này khá hợp lý: so sánh nó với việc lắp ráp, quản lý và bảo trì thiết bị trong trung tâm dữ liệu của chính bạn. Phiên bản miễn phí cho phép bạn thử nghiệm và đưa ra quyết định đúng đắn trước khi tiêu tiền.

Lợi ích chính

  • Mức độ phổ biến - Nếu bạn có kinh nghiệm xây dựng ứng dụng trên AWS, bạn có thể làm việc ở bất cứ đâu. Các doanh nghiệp yêu thích AWS và các công ty khởi nghiệp cũng đánh giá cao chi phí thấp của nó.
  • Phiên bản miễn phí là một yếu tố thực sự quan trọng giúp AWS khác biệt so với các phiên bản cùng ngành. Hãy để tôi dùng thử dịch vụ và xem nó hoạt động như thế nào trước khi tôi đưa ra quyết định mua hàng, tôi không muốn chi hàng ngàn đô la cho những thứ không cần thiết. Phiên bản miễn phí luôn đủ để tôi thử nghiệm bất kỳ khái niệm nào.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Azure “Azure đã đi được một chặng đường dài kể từ lần phát hành đầu tiên và điều đó thật đáng khen ngợi. Tuy nhiên, mong muốn trở nên khác biệt đã dẫn đến những cái tên lạ cho dịch vụ, điều này thường khiến công việc trở nên phức tạp. "Lưu trữ blob" nghĩa là gì? Và mặc dù mã .NET hoạt động tốt hơn trong hệ sinh thái Microsoft, nhưng không chắc là bạn sẽ chỉ sử dụng .NET cho mọi thành phần trong ứng dụng của mình.

Heroku — Tôi sẽ không bao giờ chạy bất cứ thứ gì khác ngoài một dự án cá nhân trên Heroku do mức độ tin cậy và minh bạch thấp, vì vậy các công ty không nên sử dụng nó làm nền tảng. Heroku rất hữu ích khi trình diễn điều gì đó trên blog, nhưng để sử dụng thực tế - "Không, cảm ơn!"

Công cụ điều phối số 1

Người chiến thắng: mởShift

Công cụ DevOps mọi người nên học vào năm 2020
Có thể bạn đang sử dụng Docker hoặc các vùng chứa khác trong ngăn xếp ứng dụng của mình. Các ứng dụng không có máy chủ rất tuyệt vời nhưng chúng có thể không phù hợp với mọi kiến ​​trúc. Việc chạy các container mà không có nền tảng điều phối sẽ không hoạt động. Kubernetes Core (K8s) là vô song về mặt bảo mật và công cụ. OpenShift là nền tảng dựa trên Kubernetes duy nhất có thể thu thập Source2Image, hỗ trợ triển khai tự động tới các nhóm cũng như hỗ trợ theo dõi và giám sát. OpenShift có thể được chạy tại chỗ, trên đám mây hoặc tại chỗ và trên đám mây cùng một lúc.

Lợi ích chính

  • Bảo mật tích hợp - Quản lý bảo mật K8 có thể yêu cầu bằng cấp cao. Mỗi chi tiết phải được suy nghĩ cẩn thận và tính đến! Các cơ chế bảo mật được tích hợp sẵn theo mặc định với OpenShift sẽ giảm bớt gánh nặng cho các nhà phát triển và cung cấp nền tảng an toàn hơn cho các ứng dụng.
  • Giải pháp tất cả trong một - Không giống như K8 cơ bản, không bao gồm các công cụ cân bằng tải theo mặc định, OpenShift có tất cả. Tôi có thể sử dụng nó để tạo và lưu trữ các vùng chứa, chạy các công cụ CI/CD, quản lý các quy trình bên ngoài, quản lý khóa, v.v. Mặc dù giao diện đồ họa người dùng vẫn chưa hoàn hảo nhưng cách tiếp cận dựa trên API có nghĩa là mọi thứ đều có thể được mô tả trong một tập lệnh. Không giống như các GUI khác dành cho K8, OpenShift giúp việc tìm hiểu kiến ​​thức cơ bản về Kubernetes dễ dàng hơn nhiều. Bạn thậm chí không cần phải có bằng cấp!

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Docker bầy — Docker Swarm đã cố gắng đơn giản hóa K8 bằng cách loại bỏ nhiều thứ. Nó rất tốt cho các ứng dụng nhỏ, nhưng đối với các ứng dụng doanh nghiệp thì nó không hoạt động. Ngoài ra, các giải pháp như AWS ECS có cách tiếp cận tương tự nhưng giúp làm việc dễ dàng hơn với các dịch vụ khác mà tôi cũng có thể tương tác (Lambda, IAM, v.v.).

Công cụ giám sát số 1

Người chiến thắng: Di tích mới

Công cụ DevOps mọi người nên học vào năm 2020
Các bản phát hành đầu tiên của New Relic đã làm tốt một việc - giám sát APM (Giám sát hiệu suất ứng dụng). Hiện tại, nó là một công cụ giám sát đầy đủ tính năng cho phép bạn giám sát hiệu suất máy chủ, bộ chứa, cơ sở dữ liệu, giám sát trải nghiệm người dùng cuối và tất nhiên là giám sát hiệu suất ứng dụng.

Lợi ích chính

  • Dễ sử dụng - Khi làm kỹ sư hệ thống, tôi đã sử dụng nhiều công cụ giám sát, nhưng tôi chưa bao giờ gặp một công cụ nào đơn giản và dễ sử dụng như New Relic. Đó là SaaS nên bạn không cần phải tự cài đặt.
  • Khả năng hiển thị từ đầu đến cuối - Các công cụ khác cố gắng giám sát một thành phần cụ thể trong ứng dụng của bạn. Ví dụ: số liệu về mức sử dụng bộ xử lý hoặc lưu lượng truy cập mạng, nhưng tất cả những điều này phải được giám sát toàn diện để ứng dụng hoạt động chính xác. Relic mới cung cấp cho bạn khả năng tập hợp tất cả dữ liệu của bạn lại với nhau để có được cái nhìn toàn diện về những gì đang xảy ra.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Zabbix — Hệ thống giám sát đầu tiên và yêu thích của tôi, nhưng nó vẫn tồn tại trong quá khứ do công nghệ đám mây và lĩnh vực giám sát hiệu suất ứng dụng APM chưa phát triển. Zabbix vẫn giám sát tốt cơ sở hạ tầng máy chủ truyền thống, nhưng chỉ vậy thôi.

DataDog — Tập trung quá nhiều vào quá trình quản lý môi trường sản xuất của ứng dụng chứ không phải vào bản thân mã. Với các nhóm DevOps có sự tham gia của các nhà phát triển, chúng tôi không cần phải dựa vào các công cụ khó sử dụng để cung cấp sự hỗ trợ hàng đầu.

Công cụ ghi nhật ký số 1

Người chiến thắng: Splunk

Công cụ DevOps mọi người nên học vào năm 2020
Thật khó để cạnh tranh với Splunk! Trong một thời gian dài, anh ấy vẫn là người dẫn đầu trong lĩnh vực khai thác gỗ, tiếp tục làm việc đó tốt hơn bất kỳ ai khác. Với các dịch vụ tại chỗ và SaaS, bạn có thể sử dụng Splunk ở bất cứ đâu. Nhược điểm lớn nhất là giá của nó: Splunk vẫn đắt quá!

Lợi ích chính

  • Tính phổ biến - Các doanh nghiệp yêu thích Splunk và các công ty có tiền để mua nó.
  • Mặc dù các công ty khởi nghiệp đang cố gắng bù đắp chi phí, nhưng nhiều chức năng có thể được giải quyết nhờ vào các giải pháp tương tự nguồn mở.
  • Khả năng bảo trì - Nói một cách đơn giản, Splunk hoạt động và hoạt động tốt. Nó đi kèm với nhiều cài đặt và tính năng mặc định sẵn sàng để sử dụng. Không cần lãng phí thời gian đọc tài liệu và cố gắng để Splunk hoạt động hoặc giải mã bất cứ thứ gì.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Ngăn xếp ELK (ElasticSearch, LogStash và Kibana) “Những công cụ này dường như được yêu thích vì bạn thậm chí không cần phải bán gan để sử dụng chúng”. Tuy nhiên, khi bộ nhật ký ngày càng nhiều và số lượng ứng dụng trên máy tăng lên thì công việc ngày càng trở nên khó khăn hơn. So với Splunk, với ELK Stack, tôi đã dành nhiều thời gian hơn để thiết lập công cụ trước khi tạo bất kỳ trang tổng quan nào hơn bao giờ hết.

Công cụ cộng tác

Công cụ DevOps mọi người nên học vào năm 2020
DevOps chủ yếu là về việc thay đổi văn hóa trong một tổ chức. Mua bất kỳ công cụ nào sẽ không thay đổi thực tiễn hiện tại trong một sớm một chiều, nhưng nó chắc chắn có thể khuyến khích sự hợp tác và những cách tương tác mới.

Các danh mục con của công cụ cộng tác:

  • theo dõi nhiệm vụ
  • ChatOps
  • tài liệu.

Công cụ theo dõi vấn đề số 1

Người chiến thắng: Jira

Công cụ DevOps mọi người nên học vào năm 2020
Jira vẫn duy trì vị thế dẫn đầu dù sự cạnh tranh trong lĩnh vực này ngày càng gia tăng. Tính linh hoạt đáng kinh ngạc của Jira cho phép các nhóm phát triển và bảo trì quản lý công việc dự án và các nhiệm vụ chạy nước rút. Các tiêu chuẩn tích hợp sử dụng thuật ngữ Agile giúp dễ dàng chuyển từ cách làm việc truyền thống sang các quy trình hiệu quả hơn.

Lợi ích chính

  • Mức độ phổ biến - Giống như nhiều công cụ khác, Jira được sử dụng ở hầu hết mọi nơi. Các nhóm nhỏ sử dụng phiên bản rẻ hơn, dễ tiếp cận hơn và có được mọi thứ họ cần, trong khi các công ty lớn hơn có thể mua được giấy phép đắt tiền hơn.
  • Tích hợp - Jira là người tiên phong trong lĩnh vực của mình. Thực tế này và sự phát triển nhanh chóng của sản phẩm dẫn đến việc các công ty khác chọn Jira để tạo ra sự tích hợp của riêng họ, do đó làm tăng giá trị của công cụ. Chúng ta có thể tích hợp Jira với tất cả các công cụ được liệt kê trong bài viết này chỉ với một chút cấu hình.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Trello — Trello nhanh chóng trở nên phổ biến nhờ công cụ Kanban miễn phí. Tuy nhiên, khi các quy trình được mở rộng quy mô và bạn chuyển từ hàng chục nhiệm vụ lên hàng nghìn nhiệm vụ, Trello sẽ trở nên khó điều hướng, tìm kiếm và báo cáo.

Pivotal Tracker — Tôi rất yêu thích công cụ này khi còn làm việc cho một công ty khởi nghiệp. Tuy nhiên, Pivotal Tracker tập trung hơn vào quản lý sản phẩm hơn là các nhiệm vụ kỹ thuật. Mặc dù việc quản lý sản phẩm trong Jira phức tạp hơn một chút nhưng nó vẫn có thể được triển khai ở đó mà không cần sử dụng công cụ bổ sung.

Công cụ ChatOps số 1

Người chiến thắng: MatterMost

Công cụ DevOps mọi người nên học vào năm 2020
Giải thích: Có lẽ điều ngạc nhiên lớn nhất đối với bạn trong lựa chọn của tôi và đó là tin tốt! Matter Most đã trở nên phổ biến nhờ tận dụng những ưu điểm tốt nhất của các công cụ trước đó nhưng đưa chúng vào sử dụng ngay tại chỗ. Điều này rất quan trọng đối với các công ty: Matter Most cho phép bạn kiểm soát dữ liệu của mình và cũng giúp bạn tích hợp dữ liệu đó với các công cụ chạy cục bộ. Chúng tôi không cần phải ra ngoài tường lửa để kiểm tra các cuộc trò chuyện công việc nữa.

Lợi ích chính

  • Nguồn mở – Phiên bản nguồn mở của Matter Most hoạt động tốt cho cả nhóm vừa và lớn. Không giống như gói miễn phí của Slack, gói này sẽ xóa lịch sử tin nhắn của bạn, việc chạy máy chủ của riêng bạn có nghĩa là bạn giữ lại tất cả dữ liệu của mình.
  • Tích hợp - Vì API gần như 100% dựa trên API Slack nên hầu hết tất cả các tích hợp Slack đều có thể được sử dụng trực tiếp với Matter Most.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Slack — Slack thật tuyệt, nhưng những người này đã phát triển đến mức họ bắt đầu tìm kiếm lợi nhuận. Giai đoạn hoàn vốn của doanh nghiệp đang đến gần, điều này lấy đi giá trị chính của họ: Slack cung cấp dịch vụ miễn phí; Nhược điểm quan trọng nhất của phiên bản miễn phí là xóa lịch sử trò chuyện.

Nhóm của Microsoft — Hãy thử tích hợp một sản phẩm của Microsoft với một sản phẩm không thuộc sở hữu của Microsoft... Chúc may mắn! Đó là tất cả những gì tôi phải nói về công cụ này!

Công cụ tài liệu số 1

Người chiến thắng: Chổ hợp lưu

Công cụ DevOps mọi người nên học vào năm 2020
Tạo và duy trì tài liệu kỹ thuật chất lượng là một quá trình phức tạp, bất kể bạn sử dụng công cụ nào. Mặc dù gần đây nhiều công cụ tài liệu SaaS đã xuất hiện trên thị trường nhưng tôi sẽ gặp khó khăn khi giao việc lưu trữ tài liệu kỹ thuật về các ứng dụng quan trọng cho bên thứ ba. Tốt nhất là lưu trữ dữ liệu và tài liệu tại chỗ và đây là cách Confluence giải quyết vấn đề đó.

Lợi ích chính

  • Dễ vận hành - Hầu hết các công cụ độc lập có thể hơi phức tạp để thiết lập và vận hành cũng như yêu cầu một số kiến ​​thức để duy trì. Máy chủ Confluence hoạt động tốt ngay lập tức cho 10 hoặc 10,000 người dùng.
  • Plugin - Kudos to Confluence vì có khả năng điều hướng đẹp mắt, dễ sử dụng và khả năng thêm plugin cho hầu hết mọi thứ sẽ mở ra tiềm năng giống như Wiki.

đối thủ cạnh tranh

Tham gia trận chiến nhưng không giành được chiến thắng

Đọc tài liệu — Tuyệt vời đối với nguồn mở, nhưng thậm chí đừng nghĩ đến việc lưu trữ kiến ​​thức quan trọng ở đây.

Markdown - Tuyệt vời để ghi lại mã, nhưng khó đăng kiến ​​trúc, quy trình hoặc các loại tài liệu khác do định dạng cụ thể của MarkDown.

Jekyll — Khi ghi lại kiến ​​thức kỹ thuật, tôi không muốn tạo một trang tĩnh mới sẽ được triển khai mỗi khi có thay đổi. Hệ thống kiểm soát phiên bản đơn giản của Confluence giúp đơn giản hóa đáng kể tài liệu nội bộ.

Tổng hợp

Thực sự có hàng trăm công cụ DevOps trên thị trường, khiến việc biết nên sử dụng công cụ nào và khi nào nên triển khai chúng trở nên khó khăn. Hãy làm theo hướng dẫn đơn giản này để chọn công cụ DevOps cho quy trình CI/CD hoàn chỉnh.

Hãy chắc chắn chọn các công cụ từ tất cả năm loại:

  • công cụ phát triển và xây dựng
  • thử nghiệm các công cụ tự động hóa
  • công cụ triển khai
  • Công cụ thời gian chạy
  • Công cụ cộng tác.

Khuyến nghị chính: Tự động hóa mọi thứ!

Cảm ơn Zach Shapiro!

Nguồn: www.habr.com

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster