5B Phổ Quang, Phường 2, Quận Tân Bình, TPHCM

Sau hơn hai thập kỷ thử nghiệm giữa những người khổng lồ ở Thung lũng Silicon, “nhanh nhẹn” cuối cùng đã trở thành xu hướng chủ đạo. Các công ty trong và ngoài Thung lũng đang sử dụng một số hình thức của phương pháp phát triển phần mềm này, trong đó nhấn mạnh, trong số những thứ khác, việc xây dựng nhanh chóng và cung cấp thường xuyên các bản cập nhật phần mềm và hệ thống, với sự tham gia liên tục của người dùng. Theo cách tiếp cận này, các công ty đang thấy năng suất tăng lên trong các nhóm phát triển phần mềm của họ, phát hành nhanh hơn các sản phẩm và dịch vụ kỹ thuật số cũng như cải thiện trải nghiệm của khách hàng. Ví dụ, kinh nghiệm của chúng tôi cho thấy rằng các công ty có thể giảm số ngày trung bình cần thiết để hoàn thành việc phát triển mã và chuyển nó vào sản xuất trực tiếp từ 89 ngày xuống còn 15 ngày, chỉ bằng 17% so với thời gian ban đầu.

Hiện nay, nhiều công ty đang bắt đầu phát triển DevOps, làn sóng đổi mới tiếp theo trong phát triển và phân phối phần mềm và là yếu tố quan trọng thúc đẩy phát triển phần mềm nhanh nhẹn. Theo cách tiếp cận phát triển sản phẩm này, các công ty tìm cách tích hợp đầy đủ các chức năng phát triển phần mềm với các hoạt động CNTT của họ để các nhóm có thể cùng nhau xây dựng, thử nghiệm, phát hành và duy trì các ứng dụng kỹ thuật số mới thường xuyên hơn và hiệu quả hơn.<a “=”” rel=”#footnote1″ class=”link-footnote” role=”tooltip” tabindex=”0″ aria-label=”Mở chú giải công cụ”>1 Phần mềm được thiết kế với các yêu cầu kinh doanh rời rạc và tích hợp hệ thống, thay vì trong môi trường chân không, và các nhà phát triển và nhân viên vận hành đều có trách nhiệm như nhau đối với việc phân phối và ổn định mã.

Tuy nhiên, rất ít công ty, bất kể ngành nào, có thể thu được toàn bộ giá trị của DevOps. Việc triển khai nhanh nhẹn thường chỉ ảnh hưởng đến các tương tác giữa các nhóm nhỏ các bên liên quan trong kinh doanh và các nhóm phát triển ứng dụng rời rạc. Ngược lại, việc chuyển sang mô hình DevOps yêu cầu các công ty thực hiện các thay đổi rộng hơn, mang tính hệ thống hơn có thể làm thay đổi đáng kể sự tương tác giữa tất cả các nhóm phân phối phần mềm, nhân viên vận hành CNTT và các bên liên quan trong kinh doanh. Đây là một công việc phức tạp hơn.

Đối với hầu hết những người chơi đã thành danh, định hướng lại các hoạt động CNTT xung quanh kiến ​​trúc CNTT hai tốc độ — trong đó có các hệ thống ổn định, định hướng giao dịch ở mặt sau và các ứng dụng hướng tới khách hàng, thay đổi nhanh ở giao diện người dùng<a “=”” rel=”#footnote2″ class=”link-footnote” role=”tooltip” tabindex=”0″ aria-label=”Mở chú giải công cụ”>2 —Là điều kiện tiên quyết để triển khai cả phương pháp tiếp cận nhanh và DevOps. Nhưng không phải mọi ứng dụng mà công ty phát triển hoặc mọi bản cập nhật trong môi trường hai tốc độ sẽ yêu cầu sự hợp tác chung là trọng tâm của mô hình DevOps. Ví dụ: một số cơ chế được sử dụng để hỗ trợ phát triển nhanh chóng các ứng dụng thương mại điện tử có thể không thành công trong việc xây dựng hoặc duy trì các ứng dụng cho hệ thống giao dịch cốt lõi được phát triển trong COBOL. Trong những trường hợp đó, sự phân chia vai trò và trách nhiệm truyền thống giữa các hoạt động CNTT, phát triển phần mềm và các bên liên quan trong kinh doanh có thể thực sự dễ chấp nhận hơn.

Trong bài viết này, chúng tôi sẽ thảo luận về những cân nhắc mà các giám đốc điều hành CNTT phải đối mặt khi cố gắng áp dụng mô hình DevOps trong môi trường CNTT hai tốc độ (Hình 2). Họ sẽ cần xác định cách thức và địa điểm giới thiệu các công nghệ mới, chẳng hạn như tự động hóa và nền tảng đám mây, tùy thuộc vào bộ phận nào của công ty mà họ nghĩ sẽ được hưởng lợi nhiều nhất từ ​​cách tiếp cận DevOps. Và họ sẽ cần khám phá các quy trình sản xuất và hình thức quản trị mới để các hoạt động CNTT và chức năng phát triển phần mềm trong toàn công ty có thể hoạt động cùng nhau một cách hiệu quả, mặc dù thực tế là chúng có thể hoạt động với tốc độ khác nhau.

fanpage

Youtube

Chạy ở hai tốc độ

Trong khoảng hơn một thập kỷ qua, các công ty ra đời trực tuyến đã cách mạng hóa cách thức xây dựng và duy trì cơ sở hạ tầng công nghệ cũng như cách các ứng dụng phần mềm được phát triển và triển khai. Họ là một trong những người đầu tiên tích hợp các chức năng phát triển phần mềm với các hoạt động CNTT của họ và tập trung vào việc cung cấp liên tục các bản nâng cấp nhỏ, nơi các nhóm thiết kế, tích hợp, kiểm tra, cung cấp và giám sát các thay đổi phần mềm một cách nhanh chóng.

Netflix, chẳng hạn, đã tạo ra một kiến trúc CNTT dựa trên đám mây cho phép các nhà phát triển của nó khởi chạy hàng trăm thay đổi phần mềm mỗi ngày. Trang web của nó bao gồm hàng trăm dịch vụ vi mô được lưu trữ trên đám mây và mỗi dịch vụ được duy trì bởi một nhóm DevOps chuyên dụng. Các nhà phát triển không cần yêu cầu tài nguyên từ nhóm vận hành CNTT; thay vào đó, họ có thể tự động xây dựng các đoạn mã thành các hình ảnh web có thể triển khai. Khi những hình ảnh đó được cập nhật với các tính năng hoặc dịch vụ mới, chúng có thể được tích hợp với cơ sở hạ tầng hiện có của Netflix bằng cách sử dụng nền tảng dựa trên web, được xây dựng tùy chỉnh mà trên đó các cụm cơ sở hạ tầng được tạo. Thử nghiệm được thực hiện cẩn thận trong môi trường sản xuất với một nhóm nhỏ người dùng. Sau khi hình ảnh web hoạt động, công nghệ cân bằng tải sẽ định tuyến một phần lưu lượng truy cập đến chúng từ các phiên bản cũ hơn. Giám sát tự động đảm bảo rằng nếu có sự cố xảy ra với việc triển khai hình ảnh mới, lưu lượng truy cập sẽ được chuyển trở lại các phiên bản cũ hơn và các hình ảnh mới được khôi phục lại. Do mức độ tự động hóa này, Netflix có thể triển khai mã mới vào môi trường sản xuất của mình trong vòng vài giờ, nơi mà hầu hết các công ty sẽ cần hàng tháng.

Tất nhiên, các công ty Internet như Netflix có lợi thế là có thể bắt đầu lại từ đầu với kiến trúc CNTT của họ — không có hệ thống kế thừa phức tạp nào để cấu hình lại hoặc bảo trì. Và bởi vì các sản phẩm chính của họ, các ứng dụng web, 100% là khách hàng phải đối mặt, các công ty này đã học cách phản ứng nhanh với phản hồi của khách hàng và phát hành nhanh các tính năng và cải tiến mới.

Ngược lại, hầu hết các công ty không sử dụng Internet đang tìm cách áp dụng tương tự mô hình DevOps thường gặp khó khăn với các hệ thống cũ hơn, dựa trên giao dịch mà bằng cách nào đó họ phải dung hòa với các phương pháp tiếp cận nhanh để phát triển phần mềm. Hơn nữa, không phải mọi chức năng trong tổ chức truyền thống sẽ yêu cầu DevOps; ví dụ như trường hợp này xảy ra đối với các hệ thống hồ sơ không nhạy cảm về thời gian, chẳng hạn như sổ cái tổng hợp. Do đó, các công ty này không chỉ phải cạnh tranh với việc phát triển một kiến trúc CNTT hai tốc độ mà còn cho phép một tổ chức CNTT hai tốc độ.

Quản lý kiến trúc CNTT hai tốc độ

Kiến trúc CNTT hai tốc độ cho phép các công ty quy mô lớn đẩy nhanh việc phát hành các sản phẩm và ứng dụng sáng tạo có thể tạo ra sự khác biệt đáng kể cho khách hàng trong khi vẫn duy trì các hệ thống CNTT cũ ít đổi mới hơn nhưng vẫn cần thiết cho sự ổn định của doanh nghiệp. Kiểu kiến trúc này nhấn mạnh sự tích hợp chặt chẽ giữa các ứng dụng phần mềm đang được phát triển và cơ sở hạ tầng phần cứng hỗ trợ chúng. Trước đây, các nhóm vận hành CNTT duy trì phần mềm và phần cứng được giữ hoàn toàn riêng biệt. Nhưng với sự phổ biến ngày càng tăng của các hệ thống hoạch định nguồn lực doanh nghiệp theo chiều dọc, sự ra đời của ảo hóa mạng và sự xuất hiện của các mô hình phần mềm như một dịch vụ, hai bên đã xích lại gần nhau hơn.

Môi trường hai tốc độ đòi hỏi các công ty phải giới thiệu các công cụ tự động hóa để hỗ trợ phân phối phần mềm liên tục — đặc biệt là trong giai đoạn thử nghiệm và sản xuất. Tự động hóa có thể cho phép quản lý tốt hơn, trong số những thứ khác, việc phát hành các bản cập nhật phần mềm, chuyển mã mới và môi trường xử lý chung. Quan trọng nhất, các công cụ tự động hóa và công nghệ dựa trên đám mây có thể đóng vai trò là cầu nối giữa các hệ thống CNTT kế thừa ở back end và các ứng dụng hướng tới người tiêu dùng ở front end, cho phép các công ty theo đuổi thử nghiệm, cung cấp, triển khai, quản trị và bảo mật của máy chủ một cách liền mạch. và các bản phát hành phần mềm mới 

Quản lý một tổ chức CNTT hai tốc độ

Trong khi giải quyết kiến trúc công nghệ và cơ sở hạ tầng cần thiết để kích hoạt DevOps, các công ty nên đồng thời xem xét thực hiện các thay đổi đối với các hoạt động, quy trình và cấu trúc quản trị khác nhau trong tổ chức CNTT và trong tổng thể doanh nghiệp.

Phương pháp DevOps thách thức các tiêu chuẩn phát triển sản phẩm đã được thiết lập trong hầu hết các tổ chức CNTT. Trong lịch sử, các công ty đã tách cơ sở hạ tầng (phần cứng) khỏi các tổ chức phát triển ứng dụng (phần mềm) của họ và giữ nhân viên “xây dựng” tránh xa nhân viên “điều hành”. Phương pháp tiếp cận DevOps yêu cầu các công ty phải phá bỏ các hầm chứa tổ chức này, do đó đánh dấu một sự thay đổi đáng kể trong chiến lược quản lý CNTT. Ngoài ra, các nhà lãnh đạo CNTT áp dụng mô hình tổ chức DevOps có thể cần phải xem xét lại cách các đối tác công nghệ được tích hợp vào quy trình phân phối phần mềm của họ — một xu hướng đang buộc một số nhà cung cấp hệ thống phải xem xét các cách để cung cấp nền tảng của họ như một dịch vụ.

Nhiệm vụ lớn nhất đối với các nhà lãnh đạo CNTT là xác định những bộ phận của công ty mà việc sử dụng DevOps sẽ có ý nghĩa nhất — có khả năng tập trung vào những bộ phận của doanh nghiệp nơi tốc độ đang ở mức cao và nơi có cơ hội đáng kể để công ty khác biệt trải nghiệm của khách hàng với đối thủ cạnh tranh. (Hãy nghĩ đến việc một nhà bán lẻ sử dụng DevOps để cải thiện trải nghiệm thanh toán trên trang web của họ hoặc một ngân hàng cung cấp khả năng theo dõi quỹ mới tại trang web của họ.) Đối với những bộ phận kinh doanh nơi DevOps có thể ít ý nghĩa hơn — nơi mà độ tin cậy và khả năng phục hồi của phần mềm quan trọng hơn hơn là tốc độ tiếp cận thị trường — các nhà lãnh đạo CNTT sẽ cần xác định cách duy trì sự khác biệt giữa phát triển phần mềm và hoạt động CNTT cũng như vai trò và quy trình nào để thích ứng với văn hóa phân phối liên tục.

Các vai trò được xác định lại

Về bản chất, phát triển sản phẩm tích hợp đòi hỏi sự hợp tác chặt chẽ giữa doanh nghiệp và CNTT — và trong một số trường hợp, các vai trò mới hoặc được xác định lại. Các nhà phân tích kinh doanh phải truyền đạt các yêu cầu đối với các tính năng và chức năng phần mềm mới theo điều kiện mà nhân viên trong tất cả các bộ phận có thể hiểu được — và họ phải linh hoạt và sẵn sàng thay đổi một chút các yêu cầu kinh doanh khi làm như vậy có thể đẩy nhanh tiến độ thực hiện. Các kỹ sư và nhà phát triển sản phẩm phải làm việc trên các chức năng và giữa các nhóm sản phẩm khác nhau — theo mô hình DevOps, sự cộng tác và phối hợp không chính thức giữa các đồng nghiệp kinh doanh và CNTT này thực sự trở nên quan trọng hơn các quy trình báo cáo và phê duyệt chính thức. Người kiểm tra phần mềm phải cộng tác với các nhà phát triển và nhà phân tích kinh doanh — trước tiên là với các nhà phân tích kinh doanh để làm rõ các yêu cầu về tính năng, và sau đó với các nhà phát triển sau khi mã đã được phát triển, cung cấp cho họ phản hồi ngay lập tức về hiệu suất phần mềm. Với DevOps, người dùng cuối không còn là người thụ động tiếp nhận các bản phát hành phần mềm hoặc dịch vụ “big bang” nữa – các công ty tìm kiếm thông tin đầu vào của họ sớm và thường xuyên khi họ phát triển và thử nghiệm các tính năng phần mềm mới.

Các nhóm đa chức năng gồm các chuyên gia phát triển ứng dụng, quản lý cơ sở hạ tầng và vận hành nên được triệu tập để hợp lý hóa quyền sở hữu các ngăn xếp trên toàn bộ quy trình phân phối ứng dụng. Ví dụ, trong trường hợp phân phối liên tục, một nhóm chung sẽ giám sát tất cả các quy trình (và các công cụ liên quan) liên quan đến hoạt động phát triển này, chẳng hạn như xây dựng, thử nghiệm và triển khai ứng dụng; quản lý và giám sát hiệu suất; và ảo hóa và quản lý cấu hình. Trước đây, một số thành phần này sẽ thuộc sở hữu của các tổ chức khác nhau. Ngoài ra, các nhóm cơ sở hạ tầng nên có một chỗ ngồi trên bàn, với quyền quyết định ngang bằng với các nhóm phát triển phần mềm.

Văn hóa và tài năng được xác định lại

Phát triển tích hợp và phân phối liên tục chỉ có thể xảy ra trong một nền văn hóa doanh nghiệp trao quyền cho các nhà phát triển phần mềm và cải tiến cấu trúc báo cáo CNTT và R&D của mình. Trong hầu hết các tổ chức, hoạt động phát triển sản phẩm và CNTT nằm trong các tòa tháp riêng biệt, với những người có tư duy, kỹ năng và kinh nghiệm khác nhau. Các giám đốc điều hành CNTT và doanh nghiệp sẽ cần phải phá bỏ những rào cản này. Ví dụ: thay vì yêu cầu tất cả các nhà phát triển báo cáo cho người đứng đầu “xây dựng” và tất cả các nhân viên vận hành báo cáo cho người đứng đầu “điều hành”, một số phải được chỉ định có chủ đích các dòng báo cáo khác nhau. Hơn nữa, nhân viên sẽ cần các cơ hội đào tạo và chế độ tiền lương của họ có thể cần được xem xét lại. Theo truyền thống, các nhà phát triển sản phẩm đã tập trung chủ yếu vào các khuôn khổ lập trình; trong môi trường DevOps, họ sẽ chịu trách nhiệm về chất lượng mã của họ. Họ sẽ cần biết kiến thức cơ bản về hệ điều hành và phải thể hiện kỹ năng cộng tác mạnh mẽ khi họ làm việc cùng với các kỹ sư vận hành để xác định cách tốt nhất để giải quyết các vấn đề phát triển hoặc triển khai ứng dụng. Do đó, nhiều công ty đã sửa đổi các phương thức tuyển dụng của họ để thuê các kỹ sư “full stack” — các chuyên gia hiểu tất cả các khía cạnh của máy tính, bao gồm giao diện người dùng, cơ sở dữ liệu và mạng.

Các quy trình và quản trị được xác định lại

Các công ty có thể muốn xem xét toàn bộ quy trình phân phối phần mềm để xác định quy trình nào sẽ cần được xác định lại hoặc hoàn toàn tự động để các nhóm phát triển có thể tận dụng cơ sở hạ tầng như một dịch vụ, khi cần thiết và để mã có thể được chuyển vào thử nghiệm và môi trường sản xuất một cách tiêu chuẩn hóa. Có một số bài học mà các công ty có thể rút ra từ những người tiên phong trên Internet về các loại thay đổi quy trình và quản trị để triển khai hỗ trợ DevOps. Ví dụ, các công ty Internet thực thi “tự phục vụ” cho các nhà phát triển; các nhóm có thể kiểm tra, quảng bá và triển khai mã trong môi trường sản xuất mà không yêu cầu sự tham gia thực hành liên tục từ các nhóm vận hành cơ sở hạ tầng, mặc dù cả hai nhóm đều chia sẻ trách nhiệm về hiệu suất mã. Các công ty Internet cũng áp đặt nghiêm ngặt, kiểm tra tự động mã mới ở tất cả các giai đoạn của quá trình phát triển ứng dụng; ở một số công ty dot-com, các bài kiểm tra phức tạp được hoàn thành tự động sau mỗi 10 đến 15 phút. Ngoài ra, họ tận dụng các phân tích nâng cao và các công cụ khác để quét trước mã cho các trường hợp ngoại lệ và gửi báo cáo tự động cho nhà phát triển về các đoạn mã có nhiều khả năng tạo lỗi nhất.

Kết luận: 

Giá trị của việc triển khai DevOps có thể rất quan trọng đối với cả năng suất và thời gian đưa ra thị trường. Nhưng việc triển khai DevOps không chỉ đơn giản là triển khai các phương pháp luận CNTT mới. Nó phải được coi như một sự chuyển đổi trong toàn công ty — một sự chuyển đổi bao gồm các cân nhắc về quy trình và quản trị cũng như những cân nhắc liên quan đến công nghệ.

Reference:

Oliver Bossert, Chris Ip, and Irina Starikova (September 1, 2015), Beyond agile: Reorganizing IT for faster software delivery, https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/beyond-agile-reorganizing-it-for-faster-software-delivery

 

Related Posts

Privacy Preferences
When you visit our website, it may store information through your browser from specific services, usually in form of cookies. Here you can change your privacy preferences. Please note that blocking some types of cookies may impact your experience on our website and the services we offer.