Chuyển đến nội dung chính

Tiến trình CI/CD trong phần mềm và thực tế áp dụng cho ngành Network.


Trong kỹ thuật phần mềm, tiến trình CI/CD làm cho quá trình phát triển phần mềm nhanh hơn, thời gian release (ra đời) một sản phẩm được rút ngắn rất nhiều, nâng cao hiệu năng làm việc của developer. 

Vậy kỹ thuật CI/CD process là gì

CI viết tắt bởi Continuous Integration và CD viết tắt bởi Continuous delivery.

Liên tục tích hợp (CI) là quá trình diễn ra một cách liên tục không đứt quản trong phần việc develop --> testing --> build --> deploy. 

Liên tục chuyển giao(CD) là quá trình ra đời sản phầm một cách liên tục theo từng phiên bản của phần mềm. (versioning) làm phần mềm dần hoàn thiện hơn cho tới bản release chính thức.

Quá trình liên tục tích hợp(CD), cần có các thành phần : 

1. Nơi chứa source code của nhà phát triển có thể là các phần mềm như: github, gutlab, bitbucket, ....

2. Tiến trình testing phần mềm : chạy các unit test cũng như các thông số quét mã nguồn để tìm các lỗi bảo mật, lỗi code lặp lại, ..v.v.. 

3. Môi trường build sản phẩm;  là môi trường mà khi ra đời một sản phẩm phần mềm, sản phẩm đó chạy trên môi trường đó, ví dụ như môi trường Windows, Linux, iOS và Android.

4. Môi trường triển khai sản phẩm; 

    + Môi trường develop - môi trường dành cho nhà phát triển, 

    + Môi trường qc - môi trường dành cho bộ phận kiểm thử phần mềm, 

    + Môi trường staging - môi trường dành cho khách hàng; người thuê viết phần mềm 

    + Môi trường production - môi trường dành cho công đồng người dùng

What are the differences between continuous integration, continuous delivery, and continuous deployment? | Atlassian CI/CD

Khái niệm Continuous trong kỹ thuật này là tính liên tục của quá trình và xảy ra một các tự động. 

Để tối ưu quá trình làm việc của một developer thì khi developer merge code lên nhánh ấn định sẵn (ví dụ nhánh develop) thì tiến trình test và build xảy ra ngay tức thì và tự động. 

Nếu build và deploy thành công thì ta có một phiên bản phầm mềm ngay lúc đó (version). Các version được tạo ra và tăng lên tương ứng với qúa trình pháp triển phầm mềm của các developer. 

Bốn thành phần trên được liên kết với nhau một cách tự động; ví dụ áp dụng kỹ thuật webhook từ bitbucket trigger lên  Jenkins CI/CD để chạy, quá trình chạy phân ra các giai đoạn như: Pre-Build, Build và Post Build. 

Áp dụng tiến trình CI/CD trong network:

Sự phát triển mạnh mẽ của ngành network đòi hỏi áp dụng kỹ thuật mới cho các Network Engineer. Các Network Engineer ngày nay đòi hỏi làm viêc như một developer, Network Engineer không cần thiết phải xuống tận nơi thiết bị để cấu hình, và Network Engineer có thể cấu hình cùng một lúc nhiều thiết bị khác nhau thông qua bộ CI/CD này. 

Tiến trình CI/CD pipeline trong network xảy ra như sau: 

    1. Network Engineer đẩy một cấu hình lên git repository. (nơi chưa source code)

    2. Repository kiểm tra syntax và sự hợp lệ của cấu hình. 

    3. CI/CD sẽ chuẩn bị môi trường để test và build. Trong network sẽ test và build dựa trên Ansible-playbook. 

    4. Nhận thông báo build thành công hay thất bại trả về khi cấu hình được chạy. 


Kết luận

Nếu so sánh tiến trình CI/CD trong ngành kỹ thuật mạng và CI/CD trong kỹ thuật phần mềm thì hầu như giống nhau, chỉ khác nhau kỹ thuật mạng dùng bộ ansible để deploy lên các thiết bị mạng, trong khi kỹ thuật phầm mềm dùng các công cụ phù hợp với ngôn ngữ phần mềm để test và deployment. 

* developer : nhân viên phát triển phần mềm

* develop : phát triển phần mềm.

* testing: quá trình kiểm thử phần mềm.

* build : xây dựng một phần mềm.

* deploy: triển khai phần mềm. 

* source code : mã nguồn phần mềm.

* merge code: quá trình tích hợp một sự thay đổi mã code vào nhánh chính 


Nhận xét

Bài đăng phổ biến từ blog này

Cách sử dụng sys.argv trong python.

Cách sử dụng sys.argv trong python.

sys.argv là môt danh sách [list] trong python, nó được sư dụng khi bạn chạy một lệnh command-line nào đó trên hệ thống.
Và argument này được đẩy vào script python để thực thi khi chạy câu lệnh.

Ví dụ: python sys.argv arg1 arg2

Trước tiên bạn phải import mô đun sys trong script.



import sys print"This is the name of the script: ", sys.argv[0]print"Number of arguments: ", len(sys.argv)print"The arguments are: ", str(sys.argv)

Tên của script này : sysargv.py
Số lượng arg là : 1
Arg là : ['sysargv.py']


python test1020.py 111 This is the name of the script:  test1020.py
Number of arguments:  2
The arguments are:  ['test1020.py', '111']

Thiết kế một RESTful API bằng python và flask.

Như các bạn đã biết thì REST viết tắt bởi REpresentational State Transfer. Bạn có thể tham khảo thêm ở đây.

Vậy REST là gì:

Có 6 yếu tố của REST như sau:

1. Client-Server: phía server side phục vụ như một service còn phía client sẽ dùng service này.

2.Stateless:  Mỗi request từ client phải chứa tất cả các thông tin mà phía server yêu cầu phải có. Nói nôm na là mỗi request chứa các thông tin riêng rẽ không liên quan đến những request khác.

3. Cacheable : Phía server side phải cảnh báo chỉ ra cho client side biết là request đó có cache hay không.

4. Hệ thống phân lớp: Giao tiếp giữa server side và client side có thể thông qua lớp trung gian ở giữa để trả lời các request được gọi mà không cân phía client phải làm những động tác khác nữa.

5. Các cổng giao tiếp là giống nhau : Các phương thức giao tiếp giữa client và server là khuôn mẫu giống nhau.

6. Mã code linh động. Phía server có thể thực thi cho môt API gọi duy nhất mà không ảnh hưởng tới các API khác.

RESTful web service là gì :

Kiế…

Cài đặt docker trên windows server 2016.

1. Cài đặt Windows Server 2016 Container Feature:  Mở PowerShell : Cài đặt các container feature dùng powershell: Dùng lệnh: InstallWindowsFeature containers Restart lại windows: 2. Cài đặt windows server 2016 base image:  Cài đặt mô đun : ContainerImage Dùng lệnh: Install-PackageProvider ContainerImage -force List các image có giá trị: Cài đặt Windows Server Core : 3. Cài đặt docker trên windows server 2016. Download script để cài đặt docker : Chạy script : Kiểm tra các image có trên server :