Cách thức hoạt động của DevOps trong doanh nghiệp

09:33 AM 15/05/2019 In bài viết

How DevOps works in the enterprise image

Mục tiêu đề ra của phần lớn các doanh nghiệp áp dụng DevOps hiện nay, đó là phát hành sản phẩm nhanh nhưng không làm giảm hay ảnh hưởng đến chất lượng trong thế giới kỹ thuật số.

Theo Gordon Cullum, giám đốc công nghệ tại Mastek, khái niệm tương đối mới này được hãng phát triển phần mềm Atlassian mô tả là tính linh hoạt được áp dụng ở nhóm phần mềm giúp các doanh nghiệp phát hành sản phẩm nhanh nhưng không giảm chất lượng, một thách thức tại thời điểm này trong thế giới kỹ thuật số.

Patrick Callaghan, kiến ​​trúc sư doanh nghiệp, cố vấn kinh doanh chiến lược tại DataStax, cho rằng các doanh nghiệp không thể thực sự hoạt động như một doanh nghiệp mà không áp dụng các nguyên tắc phát triển phần mềm DevOps. DevOps trên thực tế là lý tưởng cho các tổ chức muốn hợp lý hóa sản xuất, tự động hóa các quy trình và xây dựng văn hóa hợp tác trong các nhóm phần mềm của mình. Các nhà đổi mới DevOps tự tin vào mã của mình bởi vì họ đồng thời kiểm tra và khiến nó thất bại, từ đó tạo ra các ứng dụng đáng tin cậy.

DevOps là gì?

DevOps hoạt động như thế nào? Trước khi đi sâu vào vấn đề này, điều quan trọng là chúng ta phải hiểu DevOps là gì.

Theo AWS, ‘DevOps là sự kết hợp giữa nhiều triết lý văn hóa, biện pháp thực hành và công cụ giúp tăng khả năng cung cấp ứng dụng và dịch vụ của một tổ chức ở tốc độ cao: phát triển và cải tiến sản phẩm ở nhịp độ nhanh hơn các tổ chức sử dụng các quy trình quản lý cơ sở hạ tầng và phát triển phần mềm truyền thống. Tốc độ này cho phép các tổ chức phục vụ khách hàng tốt hơn và cạnh tranh hiệu quả hơn trên thị trường.”

Đây là một lời giải thích rất thực tế, nhưng có nhiều định nghĩa về thuật ngữ này.

DevOps thường được mô tả là một tập hợp các thực tiễn được kế thừa và tiến hóa từ các cách làm việc linh hoạt giúp các cộng đồng hỗ trợ vận hành và phát triển phần mềm đến gần nhau hơn. Điều này bao gồm việc sử dụng các quy trình và công cụ đã được phát triển qua nhiều năm cho những thứ như tự động hóa thử nghiệm, tích hợp liên tục, triển khai liên tục để cho phép dòng luân chuyển mã diễn ra nhanh hơn. Các bản phát hành mã mới này có thể là những chức năng mới, thay đổi kiến ​​trúc hoặc sửa lỗi.

Cullum cho biết DevOps là sự kết hợp của việc giữ những ưu điểm tốt và thay đổi việc phân phối sản phẩm.

Truyền sức sống cho một phong cách làm việc cũ

Mang quy trình phân phối sản phẩm và hỗ trợ lại gần nhau đã xuất hiện từ những năm 1980 và 1990, khi đó CNTT chỉ là CNTT và bạn cần không quan tâm liệu là bạn yêu cầu họ sửa lỗi hay cung cấp các chức năng mới, Cullum cho biết.

Tinh thần này đang được hồi sinh trong DevOps. Nhưng lý do giờ đây nó hoạt động và mạnh mẽ hơn là vì sự xuất hiện của các công nghệ và cách thức làm việc mới.

“Khoảng 20 đến 30 năm trước, chúng ta có thể đã có các phương pháp tiếp cận “Hãy tập trung và làm” để đưa mọi thứ vào môi trường triển khai, những gì chúng ta hiện có là các quy trình được kiểm soát, đo lường và điều khiển bởi các công cụ như Puppet và Jenkins - tất cả đều tạo ra những kênh phân phối sản phẩm mạnh mẽ, chất lượng và được quản lý, cho phép việc phát hành diễn ra nhanh hơn,” Cullum giải thích.

Về mặt văn hóa, DevOps mang các ý tưởng cũ và mới lại gần nhau.

Tại sao là DevOps?

Lý do DevOps nổi lên bây giờ là vì các công ty đang tham gia vào một cuộc chạy đua sức mạnh có tính cạnh tranh cao.

Mọi thứ đang tăng tốc rất nhanh từ quan điểm phân phối sản phẩm; nếu các doanh nghiệp không thể phát hành sản phẩm nhanh chóng, hoạt động của họ sẽ bị gián đoạn. Điều này mang lại thách thức nhưng nó cũng đem đến lợi thế nếu bạn đã bắt kịp xu hướng. Các cách thức làm việc linh hoạt chỉ thực sự hoạt động nếu tổ chức của bạn có kiến ​​trúc tương đối hiện đại.

Một lĩnh vực khác trong sự tăng tốc của DevOps là sự xuất hiện của các dịch vụ đám mây. Trong vòng 5 đến 10 năm qua, đám mây đã cho phép các quy trình và kỹ thuật được thực hiện một cách hiệu quả, dễ dàng và tiết kiệm chi phí thời gian. Chúng có thể được mở rộng trong môi trường, cơ sở hạ tầng, nền tảng hoặc toàn bộ dịch vụ và có thể nối với nhau rất dễ dàng.

Điều này có nghĩa là các kiến ​​trúc sư có thể xây dựng các kiến ​​trúc thành phần có khả năng được phát hành và sửa đổi một cách độc lập dễ dàng hơn.

Cullum cho biết, “các kỹ thuật hiện đại, như kiến trúc nhiều dịch vụ nhỏ và thậm chí cả các kiến ​​trúc không có máy chủ, thực sự thúc đẩy sự chấp nhận của các khả năng DevOps từ quan điểm phân phối và hỗ trợ trong một tổ chức,”

Gộp tất cả những điều này lại: sự nổi lên của đám mây, nhu cầu đưa mọi thứ ra nhanh hơn với chất lượng cao hơn, sự gia tăng của tất cả các công cụ cho phép việc phân đối diễn ra nhanh hơn, thay đổi văn hóa và CNTT, thứ mà bạn có là DevOps.

Xu hướng DevOps không hề chậm lại. Theo Statista, trong năm 2018, 17% các tổ chức đã hoàn toàn chấp nhận DevOps trong khi đó năm 2017 là 10%.

Cách thức hoạt động của DevOps trong doanh nghiệp

Cách tiếp cận tốt nhất mà các tổ chức có thể thực hiện với DevOps là gì? Thực tế là, với mỗi tổ chức khác nhau, chúng ta sẽ có câu trả lời khác nhau.

Điều đầu tiên các tổ chức cần làm là xác định lý do tại sao họ muốn áp dụng DevOps, từ đó, họ có thể duy trì sự tập trung vào mục tiêu của mình.

“Nó không phải là một thuật ngữ tiếp thị, cũng không phải là về một người nào đó ở vị trí cấp cao nói rằng tôi muốn triển khai DevOps, hãy đi và thực hiện nó,” theo gợi ý của Cullum. “Bạn phải biết tại sao bạn lại cố gắng làm điều đó. Bạn muốn cái gì? Bạn có muốn chất lượng như cũ? Bạn có muốn việc phát hành và phân phối sản phẩm rẻ hơn hoặc nhanh hơn? Bạn có nhận ra sự cần thiết phải sửa đổi kiến ​​trúc,” Cullum tiếp tục.

Các nhà lãnh đạo tại các tổ chức lâu đời, chẳng hạn như ngân hàng truyền thống với môi trường nguyên khối, có thể sẽ chỉ gửi bộ phận CNTT của mình tham gia chương trình đào tạo DevOps và mong họ có thể thay đổi cách họ phát hành phần mềm trên các máy tính lớn (máy tính có kích thước lớn được sử dụng chủ yếu bởi các công ty như ngân hàng, bảo hiểm... để chạy các ứng dụng nặng và xử lý một khối lượng dữ liệu khổng lồ như kết quả điều tra dân số, thống kê khách hàng và doanh nghiệp, và xử lý các giao tác thương mại). “Đó không phải là cách để thực hiện”,Cullum gợi ý. Trong trường hợp này, cần phải có một chương trình kiến ​​trúc cho phép tổ chức đổi mới và các quy trình kinh doanh được cải thiện diễn ra, đây là cách các tổ chức truyền thống đảm bảo rằng các dịch vụ họ cung cấp thông qua tài sản CNTT của mình có thể được cấu thành theo cách mà các nhóm phát hành có thể chạy theo tốc độ của riêng họ.”

Vì vậy, cách thức hoạt động của DevOps phụ thuộc vào hành trình chuyển đổi. Không có câu trả lời đơn giản và duy nhất nào. Nhưng, những kinh nghiệm quan trọng cho các nhà lãnh đạo doanh nghiệp là đừng đánh giá thấp sự thay đổi văn hóa cần có (mọi người cần phải hoàn toàn tin tưởng vào ý tưởng, tương tự như chuyển đổi kỹ thuật số) cũng như không nên phụ thuộc quá nhiều vào tài liệu (bạn không cần thiết phải biết hết trước mọi thứ) và chủ động tiếp cận rủi ro (đừng sợ thay đổi).

Addressing these six steps in the DevOps cycle will lead to organisation success in this discipline. Image source: 6 C’s of DevOps Life Cycle

Nếu doanh nghiệp quyết định triển khai DevOps trong các nhóm, từ góc nhìn quy trình và phương pháp, những câu hỏi sau đây cần phải được giải quyết: Kiến trúc của bạn có thể hỗ trợ nó? Bạn đã có một lộ trình lãnh đạo có thể tạo ra một môi trường cần thiết để bắt đầu việc phát hành sản phẩm nhanh với chất lượng cao và tự động?

Lực lượng lao động DevOps

Như với bất kỳ khái niệm mới nào, ngay cả với những người sành sỏi trong công nghệ thì khoảng cách kỹ năng cũng là một điều khó chịu. Vậy, khi triển khai DevOps, các tổ chức nên đào tạo lại hoặc tuyển chọn những tài năng mới?

Câu trả lời có lẽ là kết hợp cả hai, nhưng điều quan trọng nhất bạn cần là một thái độ đúng đắn. Những lập trình viên, nhà thiết kế và quản lý sản phẩm đã ở trong ngành từ 15 đến 20 năm đôi khi chống lại sự thay đổi mà DevOps mang lại. Họ cần một tư duy thay đổi nhanh và chấp nhận rằng việc phát hành sản phẩm và vận hành hoạt động cần phải xích lại gần nhau hơn.

Tuy nhiên, nhìn chung, các cá nhân trong ngành đã bắt kịp được tốc độ thay đổi và học các kỹ thuật mới - họ phải có cả những kỹ năng chéo, Cullum mô tả.

Biện minh cho điều này, ông giải thích rằng những gì Mastek nhận ra là đào tạo những kỹ sư thực tập về các kỹ thuật mới thực sự dễ dàng hơn, bởi vì họ không có điều kiện để suy nghĩ theo lối truyền thống.

“Thay đổi thái độ khó khăn hơn là thay đổi bộ kỹ năng công nghệ,” ông nói. “Vì vậy, chúng tôi đang đào tạo chéo và nó hoạt động khá thành công, nhưng chúng tôi đang thấy hiệu quả được tăng tốc khi tập trung vào đào tạo DevOps và các kỹ thuật linh hoạt cho các học viên của mình.”

Theo CBR, các doanh nghiệp nên xem xét bảy kỹ năng dưới đây khi thuê một kỹ sư DevOps:

1. Linh hoạt

2. Kỹ năng bảo mật

3. Hợp tác

4. Kỹ năng viết script

5. Ra quyết định

6. Hiểu biết về cơ sở hạ tầng

7. Các kỹ năng mềm

DevOps: một phần thiết yếu của chuyển đổi kỹ thuật số?

Chuyển đổi kỹ thuật số là công cuộc tái cấu trúc lớn của doanh nghiệp - bao gồm kỹ thuật số, văn hóa và công nghệ.

“Nếu bạn không sáng tạo lại quy trình kinh doanh của mình, bạn không thực hiện chuyển đổi,” chỉ ra Cullum.

Nhưng, nếu các doanh nghiệp thay đổi toàn bộ các quy trình kinh doanh thì theo định nghĩa, họ có thể sẽ phải đại tu một khối lượng lớn bất động sản CNTT của mình, bao gồm cả những di sản đã nói ở trên.

Khi bắt đầu cuộc hành trình này, sớm hay muộn, những doanh nghiệp tham gia vào công cuộc chuyển đổi này sẽ phải di chuyển sang kiến ​​trúc theo phong cách hiện đại với các thành phần khác nhau và phân phối sản phẩm khác nhau với các tốc độ khác nhau.

Nếu các doanh nghiệp không thực hiện DevOps hoặc triển khai các quy trình thử nghiệm có thể lặp lại và chạy tự động tức là họ không chấp nhận thay đổi và không thể phát hành sản phẩm với tốc độ thay đổi hiện nay.

Tại sao DevOps lại quan trọng

DevOp, giống như kỹ thuật số, là một tiêu chuẩn. Nếu bạn không nghĩ hoặc làm về điều đó, bạn có thể đang bị tụt lại phía sau, Cullum cảnh báo.

Trong các tổ chức chưa chấp nhận chuyển đổi số, vẫn có khả năng là tồn tại một nhóm nhỏ đang cố gắng thử nghiệm DevOps. Trong trường hợp này, có lẽ bạn nên đi và xem những gì đang diễn ra ở đó, từ đó tìm ra cách bạn có thể công nghiệp hóa và nhân rộng nó ra, ông khuyên. Nếu bạn không làm gì, bạn có thể đang quay lưng lại với chính doanh nghiệp của mình.

Tuy nhiên, một số người tranh luận rằng không bao giờ quá muộn để tham gia cuộc đua hội nhập DevOps.

Ví dụ thực tiễn

Callaghan gợi ý rằng Netflix là một ví dụ tuyệt vời về cách làm cho DevOps hoạt động trong doanh nghiệp.

Ông cho biết Netflix sử dụng Apache Cassandra™ vì tính sẵn sàng cao của nó và để kiểm tra điều này, họ đã viết một loạt các thư viện thử nghiệm có tên là “Chaos Monkey”. Ví dụ, cả hai thử nghiệm “Chaos Kong” và “Chaos Gorilla” đều được sử dụng để đánh sập cơ sở hạ tầng Netflix, từ đó đánh giá tác động đến tính khả dụng. Kết quả là Netflix tự tin vào hệ thống của mình và độ tin cậy của nó. Thực tiễn phát triển phần mềm DevOps cho phép Netflix tăng tốc hiệu quả sự phát triển và tạo ra trải nghiệm liên tục cho người dùng.

Thanh Hương