Bài Viết Tóm Tắt và Phân Tích Về Vai Trò và Khó Khăn của việc Sử Dụng và Triển Khai DevOps.
Sản Phẩm Đang Hoạt Động + Đội Ngũ Giàu Kinh Nghiệm + Các Doanh Nghiệp Đối Tác Lớn
Sản Phẩm Đang Hoạt Động + Đội Ngũ Giàu Kinh Nghiệm + Các Doanh Nghiệp Đối Tác Lớn
BUỔI ĐẦU CỦA DEVOPS: HỖ TRỢ CÁC NHÀ PHÁT TRIỂN BLOCKCHAIN TỪ...NGAY HÔM NAY?
DevOps có thể cách mạng hóa lộ trình của các công ty phát triển công nghệ mới.
Trong lĩnh vực fintech đặc thù, các lập trình viên phải cố gắng bắt kịp các ngôn ngữ lập trình mới, môi trường mã hóa mới, và những cách thức mới để cộng tác thành công với các thành viên khác trong đội nhóm.Với việc Ethereum blockchain (và theo sau đó là hợp đồng thông minh) được giới thiệu vào ngày 30 tháng 7 năm 2015, sẽ không có gì ngạc nhiên khi thiếu hụt các kỹ năng lập trình cần thiết để duy trì sự phát triển trong lĩnh vực này. Các nhà phát triển thiếu các công cụ, quy trình và giao thức thích hợp để tạo ra kết quả công việc có chất lượng cao. Nếu họ có các công cụ thích hợp và trợ giúp đặc biệt thông qua phát triển tự động hoá, họ có thể bắt kịp nhu cầu dễ dàng hơn không? Nhiều công ty (Walmart, Amazon, Facebook, Netflix, và một vài công ty khác) dường như nghĩ như vậy, và trong tâm điểm của sự hỗn loạn này, cuộc cách mạng DevOps ra đời.
DevOps là ý tưởng mới mẻ, về cơ bản lấy các phần bằng nhau trong phát triển và vận hành và kết hợp chúng lại với nhau thành một quá trình được tổ chức hợp lý hơn.
DevOps bao gồm ba phần chính:
1. Tăng tốc dự án.
2. Tăng cường bảo mật.
3. Phá vỡ các vai trò rời rạc truyền thống.
DevOps đang nhanh chóng phổ biến hơn vì nó cho phép các nhóm giải quyết các vấn đề gọn gang hơn. Khi nói đến công nghệ blockchain và hợp đồng thông minh, DevOps đã cho thấy tiềm năng to lớn trong việc khắc phục rất nhiều vấn đề thường gặp.
ĐƠN GIẢN HÓA QUY TRÌNH DEVOPS: TẠI SAO BLOCKCHAIN LẠI CẦN THIẾT CHO DỰ ÁN CỦA BẠN?
DevOps đã hỗ trợ công nghệ phát triển nhanh chóng trong những năm gần đây. DevOps mở ra cánh cổng đến tương lai, nơi mà công nghệ phần mềm luôn được cập nhật, mọi thứ đều tải trong nháy mắt, và bạn sẽ không bao giờ phải gặp lỗi ứng dụng. Sao có thể như thế được? Giao tiếp đội ngũ, phản hồi nhanh chóng và tự động hóa các quy trình quan trọng cho phép các nhóm DevOps không ngừng đổi mới, tạo ra sự khác biệt so với công nghệ thông tin truyền thống chậm và cồng kềnh. Các công ty phần mềm hiện nay đứng trước sự lựa chọn sau: “Áp dụng DevOps hoặc là chết từ từ.”
Trước khi chúng ta tìm hiểu sâu hơn, hãy làm rõ khái niệm về DevOps thực sự là gì. DevOps là một phương pháp phân phối phần mềm mà hợp nhất giữa quá trình phát triển phần mềm (Dev) và vận hành phần mềm (Ops). DevOps giúp tự động hóa ở tất cả các giai đoạn thiết kế phần mềm và rút ngắn chu trình phát triển phần mềm rất nhiều. Một trong những ví dụ nổi tiếng nhất của việc áp dụng DevOps thành công là Netflix - cho phép quản lý việc tăng trưởng nhanh chóng nhờ tự động hóa toàn bộ, bao gồm tự động hóa sửa chữa các lỗi (một công cụ có tên "Chaos Monkey" thường xuyên kiểm tra sự ổn định của các ứng dụng Netflix bằng cách tắt ngẫu nhiên các server instance).
Dù vậy DevOps vẫn tồn tại một số vấn đề - chủ yếu liên quan đến các quá trình tự động hóa, cơ sở hạ tầng công nghệ thông tin không đủ, và thiếu khả năng điện toán. May mắn thay, có một số dự án nổi bật giải quyết những thách thức nhất định của DevOps với sự trợ giúp của marketplace cơ sở hạ tầng được token hóa, GRID tự động hóa và trí tuệ nhân tạo. Trong bài viết này, chúng tôi sẽ mô tả chi tiết và so sánh chúng với các giải pháp không dựa trên blockchain.
DevOps vs. CNTT truyền thống: Cảm nhận sự khác biệt
Lợi ích của việc áp dụng DevOps là giảm 50% thời gian tiêu hao để xử lý các vấn đề bảo mật, tỷ lệ phục hồi lỗi nhanh hơn 24 lần và tỷ lệ lỗi thấp hơn 3 lần. Ngoài ra, các công ty công nghệ thích ứng và phát triển nhanh nhất hiện nay đang sử dụng DevOps vận hành gần với “tốc độ cần thiết”. Điều này giúp họ nhận được phản hồi nhanh về sản phẩm và đáp ứng các yêu cầu mới phát sinh với độ trễ thấp nhất.
Có sự khác nhau như thế nào giữa DevOps và mô hình CNTT truyền thống trong việc dùng để tạo ra phần lớn các website hiện có?
Đội nhóm đa chức năng có chuyên môn
Bất kỳ công ty định hướng DevOps nào đều có những đội ngũ đa chức năng có chuyên môn thay vì những silo có kỹ năng chuyên biệt – các phòng ban rời rạc không giao tiếp thường xuyên với nhau. Trong môi trường CNTT truyền thống, ba hoặc bốn silo làm việc trên một tính năng mới, do đó các silo khác gửi lại 1 bản tính năng mà các silo khác đã phát triển trước đó. Tuy nhiên, đội ngũ DevOps lại tự trang bị đầy đủ, trong nhóm có các nhân viên phát triển, nhân viên thử nghiệm, nhân viên vận hành và nhân viên phân tích kinh doanh cùng tập trung vào một ứng dụng. Nhóm đa chức năng đó sẽ cùng làm việc trên một tính năng mới, không có chuyện đùn đẩy trách nhiệm cho người khác và nói rằng “đó không phải là công việc của chúng tôi”. Khi công việc được hoàn thành cũng là lúc nó sẵn sàng triển khai. Kết quả là, không lãng phí thời gian cho giai đoạn chuyển giao. Theo quy tắc ¼ – 2–20, mỗi lần giảm 25% thời gian chu kỳ tức là tăng gấp đôi năng suất và cắt giảm chi phí hoạt động 20%.
Các batch nhỏ, được xuất bản thường xuyên
DevOps làm việc từng batch nhỏ, được xuất bản thường xuyên - thay vì các bản phát hành lớn vài lần trong năm. Từ góc nhìn DevOps, các batch lớn quá rủi ro, quá phức tạp và quá khó để phối hợp, trong khi các batch nhỏ có thể dễ dàng được thử nghiệm với mức độ tỉ mỉ cần thiết. Nếu xảy ra bất cứ sai sót nào, vấn đề có thể được khắc phục một cách nhanh chóng và dễ dàng. Ngoài ra, các bản phát hành nhỏ, thường xuyên cho phép các tổ chức DevOps phản ứng nhanh hơn với nhu cầu của khách hàng.
Tự động hóa
Văn hóa DevOps đánh giá cao tự động hóa và điều này cho phép nhóm xử lý các tác vụ sáng tạo thay vì các tác vụ thông thường. Một bản build được tự động tạo ra và kiểm tra từng đoạn mã, và (nếu vượt qua các bài kiểm tra) nó sẽ được gửi qua pipeline và chuyển tới người tiêu dùng. Cần lưu ý rằng tự động hóa hoàn toàn thường không thực sự cần thiết. Mức độ tự động hóa phụ thuộc vào các quá trình và vấn đề thật sự của mỗi nhóm và việc tự động hóa quá mức có thể dẫn đến kết quả không tối ưu. Để đạt được sự cân bằng hoàn hảo, mỗi nhóm nên đánh giá nhu cầu của mình, xác định các vấn đề then chốt, và thiết lập ưu tiên. Chắc chắn rằng không có sơ đồ chung nào có thể áp dụng cho mọi nhu cầu.
Những thách thức của việc áp dụng DevOps
Nếu DevOps là một cách tiếp cận mang lại lợi ích tạo ra lợi thế cạnh tranh, tại sao DevOps vẫn không được tất cả mọi người chấp nhận? DevOps lần đầu xuất hiện vào năm 2010 và đến nay- năm 2018: chỉ 30% các công ty phần mềm tuyên bố đưa DevOps vào áp dụng hoàn toàn (17%) hoặc gần như hoàn toàn (13%), và chỉ 22% vừa mới bắt đầu chuyển đổi sang phương pháp này.
Rào cản lớn nhất dĩ nhiên là sự thay đổi lớn về tâm lý của toàn bộ công ty - từ quản lý đến nhân viên. Đó là lý do tại sao rất khó để bắt đầu sử dụng DevOps và thực hiện nó hoàn toàn càng khó khăn hơn. Ở hầu hết các doanh nghiệp, nhóm phát triển và nhóm vận hành cố gắng đạt được các mục tiêu trái ngược nhau: nhóm phát triển được khuyến khích đổi mới, trong khi đó nhóm vận hành khuyến khích duy trì thời gian hoạt động và tính liên tục. Loại bỏ mâu thuẫn và mang họ lại gần nhau là nhiệm vụ không dễ dàng. Đó là lý do tại sao quản lý công ty nên hỗ trợ việc chuyển đổi sang DevOps bằng cách định hướng các mục tiêu hợp tác và đẩy mạnh đào tạo đa chức năng. Việc này sẽ giúp Dev (nhóm phát triển) và Ops (nhóm vận hành) nhìn ra ngoài phạm vi trách nhiệm thông thường của họ và nhận ra rằng tất cả họ là một đội hoạt động vì mục tiêu chung.
Những yếu tố nào đang ngăn DevOps kiểm soát ngành công nghiệp?
Ngoài sự chuyển đổi văn hóa doanh nghiệp, việc áp dụng DevOps bị cản trở bởi các vấn đề tiện lợi không thể tránh được liên quan đến các quy trình cơ sở hạ tầng, đồng bộ hóa và tự động hóa. Theo khảo sát được thực hiện bởi chuyên gia sandbox Quali, rào cản hàng đầu cản trở việc giới thiệu DevOps là văn hóa công ty (14%), thử nghiệm các thách thức tự động hóa (13%), cơ sở hạ tầng kế thừa (12%), độ phức tạp của ứng dụng (11%), và mức độ giới hạn ngân sách (11%).
Thách thức tự động hóa
Tự động hóa thử nghiệm là một trong những nền tảng của DevOps: nó có thể giúp tích hợp liên tục và tiết kiệm thời gian của nhóm để họ có thể tập trung vào công việc sáng tạo hơn. Thử nghiệm có nghĩa là kiểm tra xem một đoạn mã có hoạt động như mong muốn hay không và nó có đáp ứng tất cả các yêu cầu kỹ thuật hay kinh doanh hay không. Có nhiều loại thử nghiệm khác nhau và đó là lý do tại sao thử nghiệm thủ công chắc chắn sẽ trở thành nút thắt trong việc phát triển nhanh DevOps. Mặc dù thử nghiệm tự động hóa cần nhiều nỗ lực hơn, nhưng rất đáng chi phí. Điều này đặc biệt đúng đối với các ứng dụng như giải pháp FinTech hoặc các website thương mại điện tử - ngay cả thời gian chết nhỏ nhất cũng có thể làm mất lợi nhuận đáng kể.
Một vấn đề phổ biến với thử nghiệm tự động là nó có thể cho thấy tiêu tốn quá nhiều thời gian khi chạy trên cơ sở hạ tầng cục bộ với các tài nguyên hạn chế. Đôi khi bạn phải chạy thử nghiệm tự động vào buổi tối để có được kết quả vào ngày hôm sau, hoặc thậm chí chờ đến cuối tuần. Tốc độ thấp như vậy là không thể chấp nhận cho các quá trình DevOps nhanh chóng, nhưng ít công ty có thể đủ khả năng để xây dựng một cơ sở hạ tầng tại chỗ mạnh mẽ.
Thách thức cơ sở hạ tầng
Vấn đề với cơ sở hạ tầng là lý do quan trọng khiến nhiều công ty không ủng hộ DevOps. Phát triển nhanh, chính là đặc trưng của DevOps, chủ yếu dựa trên kiến trúc nhiều dịch vụ vi mô - hoàn toàn khác với kiến trúc truyền thống. Việc chuyển đổi sang các dịch vụ vi mô làm tăng khối lượng công việc đáng kể, và trong đa số các trường hợp, cơ sở hạ tầng đòi hỏi phải nâng cấp tốn kém.
Một vấn đề cơ sở hạ tầng khác nằm ở việc tích hợp các công cụ DevOps với các hệ thống CNTT hiện có - nó hiếm khi diễn ra mạch lạc, bởi vì có quá nhiều thay đổi liên quan. Ví dụ, các nhóm phát triển và vận hành thường sử dụng các công cụ và thước đo khác nhau, nhưng để đạt được hiệu quả DevOps đích thực, chúng phải được tích hợp và thống nhất - vì họ sẽ thành nhóm đa chức năng duy nhất.
Độ phức tạp của ứng dụng
Môi trường tối ưu cho DevOps là trên điện toán đám mây vì: nó cung cấp đủ quy mô cần thiết, cho tốc độ tối ưu và mức độ linh hoạt tối đa, tất cả những điều này không thể đạt được ở giới hạn tại chỗ. Điện toán đám mây cho phép các nhà phát triển kiểm soát nhiều thành phần và giảm thời gian chờ đợi. Bên cạnh đó, một môi trường đám mây cho phép các nhóm DevOps tạo ra các phương pháp tự phục vụ để cung cấp cơ sở hạ tầng - điều đó có nghĩa là họ không phải chờ các nguồn tài nguyên được cung cấp. Nhưng việc chuyển sang điện toán đám mây không phải lúc nào cũng có thể thực hiện được: theo khảo sát có đến 44% các ứng dụng chạy trong môi trường tại chỗ được coi là quá phức tạp để chuyển được sang môi trường điện toán đám mây.
Bài viết phân tích được thực hiện bởi Shibob đến từ diễn đàn Bitcointalk.
Bitcointalk Profile: https://bitcointalk.org/index.php?action=profile;u=1107745