Hãy quên DevOps đi và dùng tới OpsDev

1798

Có rất nhiều tranh cãi khi nói về DevOps với sự quan tâm của developer về Operations function từ sysadmins cho đến DBAs. Câu hỏi được đặt ra rằng liệu ta có nên gọi DevOps là OpsDev hay không?

Ý nghĩa của Application Interconnectivity

Trong tương lai các công ty sẽ tận dụng việc tích hợp và cá nhân hóa kĩ thuật số trong trải nghiệm của người dùng, với nhiều dịch vụ online sẽ được tích hợp để tạo ra một trải nghiệm thống nhất cho người dùng ở mọi kênh và nền tảng.

Điều đó có nghĩa trải nghiệm của khách hàng sẽ được thông qua các application có kết nối với nhau, với những code bases, data sources, hosted khác nhau cũng như được tạo ra từ các team developer với công nghệ và API riêng biệt.

Trách nhiệm của Operation

Đứng từ góc nhìn của operation, trong khi applications và code có thể bị chia cách, trong thế giới mà mọi thứ luôn được kết nối với nhau, sẽ tồn tại nhu cầu cần đảm bảo tất cả các phần của dịch vụ vẫn chạy mượt mà và không bị gián đoạn. Rõ ràng việc inter-connected và cá nhân hóa software application sẽ ảnh hưởng lên thiết kế, quá trình phát triển và mô hình hoạt động.

DevOps xuất hiện để giúp các công ty cải thiện tốt hơn dịch vụ của họ đến tới người dùng cuối. DevOps giúp giải quyết những vấn đề của developer như Agile development, code review, và code standards, tự động hóa và tích hợp liên tục…

Hơn hết, DevOps trải dài cả software delivery pipeline từ Dev đến Ops, và giá trị thật sự của nó chính là nằm ở Operations khi những app chính thức được đưa ra sử dụng bởi người dùng cuối.

OpsDev ám chỉ Front-Loading Ops sớm

Ngoài ra, việc tự động hóa của delivery pipeline – bao gồm toolchain, processes, tests, etc. – còn mở code từ CI stage cho đến quá trình deploy đều được thiết kế và phát triển song song với quá trình phát triển sản phẩm.

Pipeline đóng vai trò chủ chốt trong application bởi nó bảo đảm tính thống nhất giữa các configuration qua mọi môi trường trong quá trình software delivery, cải thiện chất lượng của sản phẩm, ít lỗi hơn và rút ngắn thời gian xử lí.

Luôn nhớ rằng: “mặc quần trước rồi mới mang giầy”

Ví dụ, các dependencies  của nhiều application component khác nhiều cần phải được xác định, hiểu rõ và có mô hình hóa trước khi quá trình phát triển software được bắt đầu.

  • Xem xét tính ổn định trong infrastructure, môi trường, security, và audit cũng như compliance measures.
  • Môi trường mà component được deploy cho quá trình production cần phải được modeled.
  • Quá trình deploy các components khác nhau đến môi trường đối tượng cần phải được tự động hóa hết mức có thể.

Nhờ đó, design và development teams có thể sao chép application với model môi trường  và quá trình tự động hóa trong giai đoạn phát triển và testing một cách thống nhất và lặp lại được.

Nhóm phát triển và thiết kế sẽ biết rõ những vấn đề gây hạn chế sản xuất từ rất sớm. OpsDev giúp quá trình operation được thuận lợi và dễ đoán hơn.

Trong khi theo hình thức cũ thì quá trình sẽ rất tốn thời gian với các app vốn đã được pass qua QA nhưng vẫn không chạy tốt. Do đó mà thường ngày phát hành thường phải bị delay do những lỗi crash xuất hiện bất ngờ.

Release Pipeline

Trong phương thức tiếp cận của OpsDev, một Release pipeline sẽ chịu trách nhiệm cho deploy của application tới dev, test, staging, và launch. Nó không chỉ giúp đẩy nhanh tiến độ bằng tự động hóa và phát triển song song mà còn cải thiện chất lượng nhờ vào giảm thiểu lỗi. Release pipeline tổng hợp các Commit pipelines để tạo nên một Release. Một commit pipeline là một CI hay feature và component pipeline. Release pipeline có thể chứa nhiều application component được phát triển bởi nhiều team khác nhau.

Release pipeline sẽ phải hiểu sự phụ thuộc lẫn nhau trong các application components và sắp xếp chúng vào trong các Staging và Production environments. Release pipeline có thể được thực hiện bằng cách thủ công hoặc tự động để bảo đảm Release vẫn theo đúng lịch deploy.

ITSM Integration

Từ góc nhìn của OpsDev, Release pipeline có thể tích hợp với các giải pháp của ITSM (Information Technology Service Management) và APM (application performance monitoring). Pipeline có thể report lại các tools để hỏi sự chấp thuận cho một automated task, record lại một task hoàn chỉnh như code được promoted qua nhiều stage khác nhau của pipeline, hoặc các tool này có thể kích hoạt các bước tiếp theo một cách tự động hóa.

Tương tự như việc tích hợp với service desk tools, Release pipeline cũng có thể chạy phương pháp APM để theo dõi hiệu năng và load testing khi app đã được deploy hoặc đang thực hiện một task tự động.

Lời kết

Sự phát triển của software trong mọi mặt của đời sống hằng ngày của chúng ta cũng như việc software applications đóng vai trò chủ chốt trong trải nghiệm khách hàng ngày nay khiến cho việc cải thiện cách chuyển phát và quản lí software updates quyết định sự thành bại cho cả công ty. Sự phụ thuộc lẫn nhau giữa các dịch vụ số hóa và application components (SaaS, software trong thiết bị, software trong data center, mobile apps, web app, etc…). Chúng ta cần phải khuyến khích developers nghĩ về Ops-trước, nhằm thúc đẩy thay đổi mindset từ DevOps thành OpsDev.

Techtalk via dzone

CHIA SẺ