Infrastructure as code (IaC)

Bài viết đến từ anh Bùi Nguyễn Huy Hoàng – Quản lý DevSecOps DevSecOp team @Techcombank

Techcombank

I. Tại sao lại sử dụng Infrastructure as Code?

Những công việc như ảo hóa, điện toán đám mây (Cloud), container, tự động hóa (CI/CD) giúp đơn giản hóa công việc vận hành hành công nghệ thông tin (IT Operations). Việc triển khai, cấu hình, cập nhật và vận hành dịch vụ sẽ tiêu tốn ít thời gian và công sức hơn. Vấn đề sẽ được phát hiện và giải quyết nhanh chóng, các hệ thống luôn được cấu hình và cập nhật một cách đồng nhất. Những kỹ sư IT sẽ tiết kiệm được thời gian trong công việc vận hành hàng ngày, để có thể nhanh chóng thay đổi, học hỏi và cải tiến bản thân đáp ứng nhu cầu thay đổi liên tục của thế giới công nghệ.

Tuy nhiên, ngay cả với những công cụ và nền tảng mới nhất, các nhóm vận hành công nghệ vẫn thấy họ không thể đáp ứng nổi khối lượng công việc hàng ngày của mình. Họ không có thời gian để sửa chữa các vấn đề đã tồn tại lâu đời trong hệ thống cũ, chưa thể tái cấu trúc và tận dụng tối đa các công cụ và công nghệ mới. Trên thực tế thì việc dễ dàng khởi tạo tài nguyên trên Cloud sẽ khiến tình hình trở nên tồi tệ hơn. Do việc triển khai hạ tầng mới quá dễ dàng dẫn đến việc danh mục hệ thống và tài nguyên cần vận hành ngày càng tăng lên, điều này khiến việc duy trì mọi thứ ổn định đòi hỏi một lượng thời gian ngày càng lớn. Việc quản lý thay đổi một cách nhất quán và đáng tin cậy là một thách thức nan giải và cần có những quy trình, công cụ, thói quen để có thể giải quyết được vấn đề đó.

Một số công ty công nghệ đã đối mặt với thách thức này bằng cách áp dụng lại các quy trình, cấu trúc quản trị mà họ đã từng sử dụng để quản lý hạ tầng và phần mềm trước khi dịch vụ Cloud được trở nên phổ biến. Nhưng hạn chế là các nguyên tắc và quy trình này thường mất từ vài ngày đến vài tuần để có thể được chấp thuận triển khai tài nguyên mới, trong khi chỉ mất vài phút hoặc vài giây để triển khai trên Cloud. Các quy trình quản lý tài nguyên này thường bị bỏ qua hoặc xin sự chấp thuận ngoại lệ để không phải tuân theo từ nhóm những người cần hoàn thành công việc. Các công ty áp dụng thành công hơn thì lại cảm thấy đang bị thụt lùi do bị các đối thủ linh hoạt về công nghệ vượt mặt.

Các phương pháp quản lý cũ đã không thể đáp ứng được với tốc độ thay đổi do điện toán đám mây và tự động hóa mang lại. Nhưng vẫn cần phải giải quyết vấn đề về kiểm soát sự thay đổi và phát triển liên tục mà điện toán đám mây mang lại. Đó là lúc Infrastructure as Code(IaC) xuất hiện.

II. Infrastructure as Code là gì?

Infrastructure as Code là một phương phát tự động hóa hạ tầng dựa trên những nguyên lý của quá trình phát triển phần mềm, sử dụng các đoạn mã để khởi tạo, cung cấp các tài nguyên trong những trung tâm dữ liệu vật lý và các nền tảng Cloud một cách tự động, thay vì cài đặt và cấu hình thủ công. Nó tập trung vào các quy trình có tính lặp đi lặp lại và nhất quán cho việc cung cấp và thay đổi tài nguyên trên Cloud và cấu hình của chúng. Những thay đổi được thực hiện sẽ đi qua quá trình kiểm thử và xác thực kỹ lưỡng trước khi được đưa vào áp dụng.

Tiền đề việc này là những công cụ mới có thể xử lý tài nguyên hạ tầng như xử lý phần mềm và dữ liệu. Điều này cho phép áp dụng các công cụ, quy trình phát triển phần mềm như các hệ thống kiểm soát phiên bản (Version Control System), kiểm thử tự động và điều phối việc triển khai hạ tầng. Nó cũng mở ra cơ hội cho việc áp dụng các quy chuẩn phát triển phần mềm vào việc triển khai hạ tầng như Test Driven Design (TDD), tự động hóa(CI/CD).

Infrastructure as Code đã chứng minh được sự hữu dụng của mình trong những nơi có những yêu cầu cao về môi trường phát triển/triển khai và phát triển nhanh về công nghệ. Đối với ngân hàng số như Techcombank, các hệ thống công nghệ thông tin không chỉ là Business Critical mà chính là Business. Việc gián đoạn dịch vụ là không thể chấp nhận vì hệ thống ngân hàng xử lý hàng triệu giao dịch mỗi ngày. Vì vậy không có gì ngạc nhiên khi Techcombank đang tiên phong trong việc áp dụng các công nghệ mới, giải pháp mới để tăng tính tin cậy cho hạ tầng công nghệ thông tin quy có mô lớn.

Mục tiêu của việc áp dụng Infrastructure as Code trong Techcombank:

  • Khuyến khích sự thay đổi của hệ thống công nghệ thông tin.
  • Các kỹ sư công nghệ có thể dành thời gian cho các công việc quan trọng và phát triển năng lực của bản thân thay vì tốn thời gian cho những công việc nhỏ lặp đi lặp lại.
  • Bản thân người có nhu cầu (thường là project team) có thể chủ động xác định, cung cấp, quản lý các tài nguyên họ cần mà không cần sự giúp đỡ từ các kỹ sư vận hành (IT Operation).
  • Hạ tầng có thể dễ dàng phục hồi nhanh chóng sau sự cố.
  • Các cải tiến, nâng cấp được áp dụng và thực hiện liên tục thay vì thông qua các dự án đắt đỏ và rủi ro.
  • Các giải pháp cho vấn đề hạ tầng có thể được chứng minh thông qua kiểm thử, triển khai, đo lường tự động thay vì thông qua các cuộc họp và tài liệu.

III. Lợi ích của Infrastructure as Code

1. Tự động hóa hạ tầng công nghệ thông tin

Infrastructure as Code giúp tự động hóa các hoạt động liên quan đến hạ tầng công nghệ thông tin, bao gồm việc khởi tạo, cài đặt, triển khai, quản lý và giám sát hạ tầng thông qua mã nguồn. Với Infrastructure as Code, các nhóm phát triển không cần thực hiện các thao tác này thủ công, giảm thiểu thời gian và chi phí trong việc triển khai và quản lý hạ tầng. Việc tự động hóa này giúp đẩy nhanh quá trình cung cấp hạ tầng cũng như giảm thiểu rủi ro, khi hạn chế được tối đa sự can thiệp thủ công, đảm bảo tính ổn định của hạ tầng.

2. Kiểm soát phiên bản

Infrastructure as Code cho phép quản lý phiên bản, giúp các kỹ sư vận hành liên tục phát triển và quản lý đảm bảo tính nhất quán, kiểm soát các thay đổi. Khi sử dụng mã nguồn để quản lý hạ tầng, các phiên bản của mã nguồn đóng vai trò rất quan trọng trong việc kiểm soát và quản lý các thay đổi. Các phiên bản được theo dõi và đảm bảo rằng người dùng (đội dự án) đang sử dụng phiên bản mới nhất và người quản lý hạ tầng (đội vận hành) có thể xác minh tính nhất quán của hạ tầng và mối liên kết, liên quan, thay đổi giữa các phiên bản hạ tầng khác nhau. Từ đó có thể kiểm tra, giải quyết những vấn đề phát sinh liên quan đến việc triển khai sản phẩm.

3. Sản xuất nhanh

Infrastructure as Code cho phép các nhóm phát triển triển khai sản phẩm/ứng dụng một cách nhanh chóng và hiệu quả hơn. Khi việc cài đặt, triển khai hạ tầng được tự động hóa, các nhóm phát triển có thể giảm thiểu thời gian sản xuất và đưa được sản phẩm đến với khách hàng một cách nhanh chóng hơn. Điều này là rất quan trọng để đáp ứng kịp thời nhu cầu của khách hàng và tạo ưu thế cạnh tranh trong thị trường công nghệ khốc liệt hiện tại.

4. Xác định sự thay đổi

Infrastructure as Code giúp các nhóm vận hành xác định và quản lý sự khác biệt giữa các phiên bản hạ tầng. Chỉ cần kiểm tra phiên bản mới nhất và so sánh với phiên bản trước đó, các nhóm phát triển có thể xác định sự khác nhau và đưa ra các điều chỉnh cần thiết để giảm thiểu rủi ro trong việc triển khai. Điều này giúp giảm thiểu rủi ro, đảm bảo tính nhất quán của việc cài đặt và triển khai hạ tầng.

5. Tăng tính linh hoạt

Infrastructure as Code cho phép các tổ chức có thể nhanh chóng thay đổi hạ tầng mà không cần lo ngại về tính linh hoạt. Các yêu cầu mới có thể được triển khai nhanh chóng và có tính nhất quán với các phiên bản trước đó. Do đó, Infrastructure as Code trở thành một giải pháp hiệu quả cho các tổ chức muốn mang lại tính linh hoạt trong kinh doanh.

6. Giảm thiểu rủi ro

Infrastructure as Code giúp các tổ chức có thể giảm thiểu rủi ro liên quan đến cài đặt hạ tầng, đảm bảo tính nhất quán trong việc triển khai. Infrastructure as Code cho phép các nhóm thực hiện kiểm tra tự động, đảm bảo rằng hạ tầng đang hoạt động chính xác và ổn định. Sự hỗ trợ của Infrastructure as Code giúp đảm bảo tính toàn vẹn và độ tin cậy cho hạ tầng công nghệ thông tin.


Thuộc dự án Inside GemTechnology do TopDev hợp tác cùng Techcombank triển khai, chuỗi nội dung thuần “Tech” độc quyền được chia sẻ bởi đội ngũ chuyên gia Công nghệ & Dữ liệu tại Techcombank sẽ được cập nhật liên tục tại chuyên mục Tech Blog | Techcombank Careers x TopDev. Cùng theo dõi & gặp gỡ các chuyên gia bạn nhé!

 

Các cơ hội việc làm tại Techcombank


Bài viết liên quan

Hơn cả một phương pháp, DevSecOps chính là “triết lý bảo mật” tại Techcombank

Là một thành viên mới tại Techcombank, anh Bùi Nguyễn Tuấn Minh hiện đang là Giám đốc DevSecOps, đây cũng là công việc đầu tiên của anh sau những năm tháng làm việc tại Singapore. Anh cũng là một trong những người góp phần mang lại những góc nhìn mới trong các phương pháp phát triển phần mềm của Techcombank. Được biết, Techcombank là một trong những đơn vị tiên phong ứng dụng phương pháp DevSecOps trong việc phát triển sản phẩm. Đây cũng được xem là một trong những định hướng giúp các ngân hàng số hóa và phát triển mạnh mẽ trong tương lai. Sau đây là những chia sẻ của anh Bùi Nguyễn Tuấn Minh về công việc DevSecOps tại Techcombank. Anh có thể chia sẻ một chút về môi trường làm việc tại Techcombank? Khi chuyển công tác từ Singapore về Việt Nam, mình nhận thấy môi trường và cách thức làm việc [...]

DevSecOps Philosophy (Triết lý DevSecOps)

Bài viết đến từ Ngô Doãn Thông - DevSecOps Engineer    DevSecOps team @Techcombank Giới thiệu Trong 20 năm qua, DevOps đã cùng với Agile, thay thế cho mô hình phát triển Waterfall. Microservices được coi là công nghệ tiên tiến nhất để triển khai kiến trúc dịch vụ. Thời gian phát triển sản phẩm đã được giảm đi, triển khai tự động được thực hiện hàng tuần hoặc hàng ngày và cloud thì cung cấp khả năng tính toán, cơ sở hạ tầng, lưu trữ và mạng rất mạnh mẽ. Triết lý DevOps thường được tóm tắt bằng khẩu hiệu "move fast and break things", điều này có nghĩa là triển khai mọi thứ nhanh hơn, mạnh dạn hơn và sẵn sàng, phá bỏ các cấu trúc silo, rào cản, chấp nhận rủi ro và khắc phục nhanh từ những rủi ro đó. Tuy nhiên, có một yếu tố quan trọng chưa được đề cập tới. Các tổ chức áp dụng DevOps vẫn cần đáp ứng tiêu chuẩn an [...]