Tiger's working blog

Tiger's working blog Blog cá nhân của genz đi code dạo

 #18 DevOps là gì?Bất kì một dự án IT nào cũng sẽ có 2 giai đoạn chính, là "Phát triển" và "Vận hành". Hầu hết trong các...
03/06/2022

#18 DevOps là gì?

Bất kì một dự án IT nào cũng sẽ có 2 giai đoạn chính, là "Phát triển" và "Vận hành". Hầu hết trong các dự án lớn, hoặc thuộc công ty lớn, 2 giai đoạn này thường tách rời nhau. Tuy nhiên để tối ưu hóa, tăng khả năng giao tiếp giữa các nhân sự làm việc trong 2 giai đoạn nói trên, khái niệm DevOps ra đời.

DevOps là sự kết hợp của từ Development (phát triển tính năng sản phẩm) + Operations (vận hành):

- Giai đoạn phát triển (development) bao gồm phần việc của designer, developer, QA QC…
- Giai đoạn vận hành (operations) có sự tham gia của system engineer, system administrator, operation executive, release engineer, DBA, network engineer, security engineer…

Vậy công việc của một người làm DevOps là gì?

Về mặt quy trình, DevOps cần đảm bảo làm thế nào để các bộ phận hợp tác trơn tru thuận lợi hơn
Về mặt sản phẩm, DevOps cần làm thế nào để các service kết nối và giao tiếp với nhau theo rules hiệu quả, cũng như đảm bảo việc scaling được “êm ái”.

Có rất nhiều kĩ năng mà một devops cần có, trong số đó bao gồm:
- Kĩ năng lập trình cứng.
- Sử dụng tốt hệ điều hành ubuntu (HĐH thường được dùng trong server).
- Khả năng giao tiếp trong nội bộ team và giữa các team tốt.
- Tỉ mỉ, chính xác đến từng chi tiết.
- Thành thạo triển khai CI/CD.
- Đầy đủ kiến thức và thành thạo sử dụng Git.
- Luôn làm theo quy trình, để tránh mọi rủi ro không đáng có.
- Nhưng cũng phải biết linh động giữa các tình huống cụ thể.

Đường dẫn truy cập nhanh:1. Blog đầu tiên: https://www.facebook.com/TigerLifeBlog/posts/7640747649731192. BẮT ĐẦU HÀNH N...
01/06/2022

Đường dẫn truy cập nhanh:

1. Blog đầu tiên: https://www.facebook.com/TigerLifeBlog/posts/764074764973119

2. BẮT ĐẦU HÀNH NGHỀ
https://www.facebook.com/TigerLifeBlog/posts/764076038306325

3. CÁCH LÀM RA TIỀN CỦA LẬP TRÌNH VIÊN
https://www.facebook.com/TigerLifeBlog/posts/764078761639386

4. KHÔNG NGỪNG TÍCH LŨY & TÌM HIỂU MỌI MẶT
https://www.facebook.com/TigerLifeBlog/posts/764094478304481

5. QUẢN LÝ CODE
https://www.facebook.com/TigerLifeBlog/posts/764110971636165

6. VIẾT UNIT TEST https://www.facebook.com/TigerLifeBlog/posts/765076178206311

7. Lập trình viên FRONT-END, BACK-END và FULLSTACK
https://www.facebook.com/TigerLifeBlog/posts/767633924617203

8. MÔ HÌNH PHÁT TRIỂN PHẦN MỀM https://www.facebook.com/TigerLifeBlog/posts/767965907917338

9. CI/CD
https://www.facebook.com/TigerLifeBlog/posts/767975514583044

10. ĐỒNG BỘ & BẤT ĐỒNG BỘ https://www.facebook.com/TigerLifeBlog/posts/768401847873744

11. FRAMEWORK https://www.facebook.com/TigerLifeBlog/posts/768420164538579

12. DATABASE https://www.facebook.com/TigerLifeBlog/posts/768556537858275

13. DBMS (Database Management System) https://www.facebook.com/TigerLifeBlog/posts/768575077856421

14. DOS và DDOS (Một số hình thức tấn công mạng) https://www.facebook.com/TigerLifeBlog/posts/769621101085152

15. HA Proxy https://www.facebook.com/TigerLifeBlog/posts/772971534083442

16. Cookies https://www.facebook.com/TigerLifeBlog/posts/773686907345238

17. Local Storage https://www.facebook.com/TigerLifeBlog/posts/773688527345076

18. DevOps
https://www.facebook.com/TigerLifeBlog/posts/775119827201946

(Updating ...)

#17 Local Storage?

Tương tự như cookie, HTML5 hỗ trợ LocalStorage là một loại lưu trữ web cho phép các trang web và ứng dụng Javascript lưu trữ và truy cập dữ liệu ngay trong trình duyệt mà không có ngày hết hạn. Hay dữ liệu được lưu trữ trong trình duyệt sẽ tồn tại ngay cả sau khi cửa sổ trình duyệt đã bị đóng, Dữ liệu chỉ mất khi bạn sử dụng chức năng clear history của trình duyệt, hoặc bạn sử dụng localStorage API để xóa.

Thông tin trong LocalStorage chỉ được lưu trữ trong trình duyệt của người dùng (Không lưu trên server) , localStorage được sandbox theo domain name của ứng dụng web. Hay nói cách khác mỗi trang web sẽ có 1 LocalStorage riêng và không thể truy cập đến LocalStorage khác. Đây có thể xem là ưu điểm cũng có thể là nhược điểm của LocalStorage.

Không nên lưu các dữ liệu nhạy cảm của người dùng vào LocalStorage: LocalStorage chỉ được lưu ở phía client nên có thể có 1 số lỗi bảo mật mà hacker có thể tận dụng để lấy ra dữ liệu của người dùng từ Local Storage như Cross Site Scripting (XSS), DNS spoofing attacks, ...

Để sử dụng LocalStorage, ta sẽ có 4 method chính:
setItem(): Gán dữ liệu vào LocalStorage
getItem(): Lấy ra dữ liệu từ LocalStorage
removeItem(): Xóa dữ liệu khỏi LocalStorage
clear(): Xóa toàn bộ dữ liệu của LocalStorage.

VD:
window.localStorage.setItem('key', 'value')
window.localStorage.getItem('key')
window.localStorage.removeItem('key')
window.localStorage.clear();

 #17 Local Storage?Tương tự như cookie, HTML5 hỗ trợ LocalStorage là một loại lưu trữ web cho phép các trang web và ứng ...
01/06/2022

#17 Local Storage?

Tương tự như cookie, HTML5 hỗ trợ LocalStorage là một loại lưu trữ web cho phép các trang web và ứng dụng Javascript lưu trữ và truy cập dữ liệu ngay trong trình duyệt mà không có ngày hết hạn. Hay dữ liệu được lưu trữ trong trình duyệt sẽ tồn tại ngay cả sau khi cửa sổ trình duyệt đã bị đóng, Dữ liệu chỉ mất khi bạn sử dụng chức năng clear history của trình duyệt, hoặc bạn sử dụng localStorage API để xóa.

Thông tin trong LocalStorage chỉ được lưu trữ trong trình duyệt của người dùng (Không lưu trên server) , localStorage được sandbox theo domain name của ứng dụng web. Hay nói cách khác mỗi trang web sẽ có 1 LocalStorage riêng và không thể truy cập đến LocalStorage khác. Đây có thể xem là ưu điểm cũng có thể là nhược điểm của LocalStorage.

Không nên lưu các dữ liệu nhạy cảm của người dùng vào LocalStorage: LocalStorage chỉ được lưu ở phía client nên có thể có 1 số lỗi bảo mật mà hacker có thể tận dụng để lấy ra dữ liệu của người dùng từ Local Storage như Cross Site Scripting (XSS), DNS spoofing attacks, ...

Để sử dụng LocalStorage, ta sẽ có 4 method chính:
setItem(): Gán dữ liệu vào LocalStorage
getItem(): Lấy ra dữ liệu từ LocalStorage
removeItem(): Xóa dữ liệu khỏi LocalStorage
clear(): Xóa toàn bộ dữ liệu của LocalStorage.

VD:
window.localStorage.setItem('key', 'value')
window.localStorage.getItem('key')
window.localStorage.removeItem('key')
window.localStorage.clear();

 #16 Cookies?Cookies là các tệp được trang web người dùng truy cập tạo ra. Cookie giúp trải nghiệm trực tuyến của bạn dễ...
01/06/2022

#16 Cookies?

Cookies là các tệp được trang web người dùng truy cập tạo ra. Cookie giúp trải nghiệm trực tuyến của bạn dễ dàng hơn bằng cách lưu thông tin duyệt web. Với Cookies, các trang web có thể duy trì trạng thái đăng nhập của bạn, ghi nhớ tùy chọn trang web và cung cấp nội dung phù hợp với vị trí của người dùng.

Cookies giúp việc truy cập Website của người dùng nhanh hơn, tiện lợi hơn, không quá mất nhiều thời gian đăng nhập lại nhiều lần.

Đối với các doanh nghiệp, việc sử dụng Cookie sẽ giúp họ theo dõi được hành vi người dùng, từ đó biết được họ thường truy cập ít hay nhiều, thời gian là bao lâu hay các sở thích khác để có thể tối ưu hóa Website, dịch vụ của mình.

 #15 HA ProxyHAProxy, viết tắt của High Availability Proxy, là một phần mềm cân bằng tải open source cho TCP/HTTP. Nó có...
31/05/2022

#15 HA Proxy

HAProxy, viết tắt của High Availability Proxy, là một phần mềm cân bằng tải open source cho TCP/HTTP. Nó có thể chạy trên Linux, Solaris và FreeBSD. Mục đích chính của nó là dùng để cải thiện hiệu năng và tính tin cậy của hệ thống bằng cách dẫn tải đến các server khác. HAProxy cũng được sử dụng tại nhiều các công ty nổi tiếng như GitHub, Imgur, Instagram,...

Quay lại với việc khi một server bị quá nhiều lượt truy cập một lúc, sẽ dẫn đến quá tải băng thông, tràn bộ nhớ, … HA Proxy có khả năng điều hướng truy cập sang các máy chủ khác cùng host một project. Giúp giảm tải lượng truy cập vào các server.

Hoặc HA Proxy có thể đặt các máy chủ làm server chính và các server thứ cấp. Nếu chẳng may server chính bị sập vì một lí do nào đó, các server thứ cấp sẽ được chọn để tiếp tục host production. Giữ cho hoạt động của trang web luôn ổn định.

26/05/2022

Up-coming HA Proxy, Cookies & Localstorage …

 #14 DOS và DDOSKhi thực hiện tác vụ trên một trang web, một việc tất nhiên sẽ xảy ra đó là máy tính client gửi request ...
26/05/2022

#14 DOS và DDOS

Khi thực hiện tác vụ trên một trang web, một việc tất nhiên sẽ xảy ra đó là máy tính client gửi request tới máy chủ host lên trang web đó. Từ đây cũng sinh ra hình thức tấn công qua mạng tên là DOS.

DOS - Denial of Service
Còn được gọi là "Tấn công từ chối dịch vụ". Dựa vào cơ chế gửi request, một máy tính của hacker có thể được cài đặt để liên tục gửi một lượng lớn request về máy chủ của trang web, gây ra tràn bộ nhớ, nghẽn băng thông, ... Việc này khiến cho những người muốn truy cập vào trang web trên sẽ không thể vào được, gây ra hiện tượng giật lag. Tuy nhiên tấn công DOS có thể dễ dàng bị chặn nếu máy chủ trên chặn địa chỉ IP gửi quá nhiều request cùng lúc. Từ ấy sinh ra một loại hình tấn công mới là DDOS.

DDOS - Distributed Denial of Service
Còn gọi là "Tấn công từ chối dịch vụ phân tán". Vì hình thức tấn công DOS có thể dễ dàng ngăn chặn. Hình thức DDOS khó nhằn hơn khi việc gửi quá nhiều request về server đến từ nhiều máy tính trên khắp thế giới, việc chặn từng IP một là điều không thể. Một hacker có thể cho lây nhiễm virus vào máy tính của những người khác qua đường mạng bằng nhiều cách mà họ không biết, từ ấy hacker có thể cài đặt thời gian cho một cuộc tấn công DOS trên máy người đó vào một trang web. Nhiều cuộc tấn công DOS diễn ra cùng một lúc vào một trang web, đến từ nhiều máy tính khác nhau tại nhiều nơi trên thế giới, gọi là tấn công DDOS.

 #13 DBMSDBMS là viết tắt của Database Management System, dịch sang tiếng Việt là Hệ quản trị Cơ sở dữ liệu. DBMS là phầ...
24/05/2022

#13 DBMS

DBMS là viết tắt của Database Management System, dịch sang tiếng Việt là Hệ quản trị Cơ sở dữ liệu. DBMS là phần mềm được thiết kế để có thể xác định, tiến hành các thao tác, truy xuất và quản lý dữ liệu trong Cơ sở dữ liệu. DBMS thường có khả năng tự thao tác với dữ liệu, định dạng dữ liệu, tên trường, cấu trúc bản ghi và cấu trúc tệp. Nó cũng xác định các quy tắc để xác nhận và thao tác với dữ liệu.

Với DBMS, người dùng có thể thao tác sửa/xóa/thêm dữ liệu mà không còn cần các chương trình khung. Các ngôn ngữ lập trình truy vấn như SQL thường đi kèm với DBMS để lập trình viên dễ dàng tương tác với dữ liệu họ cần.

DBMS nhận các lệnh từ Quản trị viên Cơ sở dữ liệu và theo đó thiết lập hệ thống thực hiện các thay đổi cần thiết. Các lệnh mà quản trị viên có thể đưa ra bao gồm tải thêm lên, lấy xuống hoặc sửa đổi dữ liệu hiện có trên hệ thống.

 #12 DATABASEDatabase (Cơ sở dữ liệu) là một tập hợp có tổ chức các thông tin có cấu trúc hoặc dữ liệu, thường được lưu ...
24/05/2022

#12 DATABASE

Database (Cơ sở dữ liệu) là một tập hợp có tổ chức các thông tin có cấu trúc hoặc dữ liệu, thường được lưu trữ trực tuyến trong một hệ thống máy tính. Một cơ sở dữ liệu thường được kiểm soát bởi hệ thống quản lý cơ sở dữ liệu (DBMS). Cùng với nhau, dữ liệu và DBMS, cùng với các ứng dụng được liên kết với chúng, được gọi là một hệ thống cơ sở dữ liệu, thường được rút ngắn thành cơ sở dữ liệu.

Dữ liệu trong các loại cơ sở dữ liệu phổ biến nhất đang hoạt động hiện nay thường được mô hình hóa theo hàng và cột trong một loạt các bảng để giúp xử lý và truy vấn dữ liệu hiệu quả. Dữ liệu sau đó có thể dễ dàng truy cập, quản lý, sửa đổi, cập nhật, kiểm soát và tổ chức. Hầu hết các cơ sở dữ liệu sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để viết và truy vấn dữ liệu.

Phân loại Database theo mục đích sử dụng:
- Database dạng file: Đây là dữ liệu được lưu trữ dưới dạng các file. Loại Database dạng file hay được sử dụng nhất đó *.mdb Foxpro, ngoài ra còn có *.dbf, ascii,…

- Database quan hệ: Chúng là các dữ liệu khác nhau được lưu trữ trong các bảng dữ liệu nhưng giữa chúng lại có mối liên hệ với nhau. Vì vậy, chúng mới có tên gọi là “database quan hệ”. Một số hệ quản trị hỗ trợ database quan hệ hiện rất được ưa chuộng bao gồm: MySQL, MS SQL server, Oracle,…

- Database hướng đối tượng: Điểm giống nhau giữa database hướng đối tượng và database quan hệ chính là chúng đều được lưu trữ trong bảng dữ liệu. Còn điểm khác biệt các bảng của database hướng đối tượng có thêm các tính năng hướng đối tượng, ví dụ như lưu trữ thêm 1 số hành vi để thể hiện rõ hơn hành vi của đối tượng. Nhắc đến tên các hệ quản trị hỗ trợ database hướng đối tượng, người ta sẽ nhớ ngay đến những cái tên nổi bật như: MS SQL server, Postgres SQL, Oracle,…

- Database bán cấu trúc: Loại database này được lưu với định dạng XML, nó có thông tin mô tả dữ liệu và đối tượng được trình bày trong các thẻ tag. Database bán cấu trúc có ưu điểm vượt trội đó là lưu trữ được nhiều loại data khác nhau, chính vì vậy nó đang dần khẳng định được vị trí và giá trị sử dụng của mình.

 #11 FRAMEWORKFramework là các đoạn code đã được viết sẵn, cấu thành nên một bộ khung và các thư viện lập trình được đón...
24/05/2022

#11 FRAMEWORK

Framework là các đoạn code đã được viết sẵn, cấu thành nên một bộ khung và các thư viện lập trình được đóng gói. Chúng cung cấp các tính năng có sẵn như mô hình, API và các yếu tố khác để tối giản cho việc phát triển các ứng dụng web phong phú, năng động. Các framework giống như là chúng ta có khung nhà được làm sẵn nền móng cơ bản, bạn chỉ cần vào xây dựng và nội thất theo ý mình.

Hiện nay có nhiều framework cho backend, front end, ứng dụng mobile…phổ biến nhất có lẽ là các web framework và các framework cho mobile.

Các framework ứng dụng web là các framework phần mềm được sử dụng để sắp xếp hợp lý các ứng dụng web và phát triển trang web, các dịch vụ web và các tài nguyên web. Một loại framework ứng dụng web phổ biến là kiến trúc Model-View-Controller (MVC). Như chúng ta đã biết để lập trình một website chúng ta sử dụng tới 3 ngôn ngữ thành phần là HTML, CSS và Javascript sau đó kết hợp với một ngôn ngữ kịch bản máy chủ như PHP, ASP.NET, JAVA… với mỗi thành phần này chúng ta có các framework khác nhau.

Một framework cho web bao gồm:
- Libraries: Thư viện là các đoạn mã xây dựng sẵn cho một chức năng nào đó (Design pattern), bạn có thể tái sử dụng chức năng đó mà ko phải code lại. Có nhiều tools quản lý thư viện như NPM, Composer…
- API: là phương thức trao đổi dữ liệu giữa các ứng dụng chính và ứng dụng khác. Đọc thêm RESTful API là gì nhé.
- Scaffolding: Một bộ khung các quy tắc mà một framework MVC sử dụng quy hoạch cơ sở dữ liệu có thể được truy cập như thế nào.
- AJAX: update thông tin lên database mà không cần load lại trang.
- Caching: giúp giảm request đến máy chủ, tăng tốc độ load trang.
- Security: framework xác thực và ủy quyền user.
- Compilers : trình biên dịch từ code của bạn qua ngôn ngữ cho máy.

 #10 ĐỒNG BỘ & BẤT ĐỒNG BỘTỔNG QUÁT:- Synchronous (đồng bộ) là một quy trình xử lý các công việc theo một thứ tự đã được...
24/05/2022

#10 ĐỒNG BỘ & BẤT ĐỒNG BỘ

TỔNG QUÁT:
- Synchronous (đồng bộ) là một quy trình xử lý các công việc theo một thứ tự đã được lập sẵn. Công việc sau được bắt đầu thực hiện chỉ khi công việc thứ nhất hoàn thành. Quá trình đồng bộ là một quá trình rất phổ biến trong thực tế. Ví dụ dây chuyền sản xuất sản phẩm trong các nhà máy, hay lộ trình học tập của một học sinh từ lớp 1 đến lớp 12, … Trong lập trình, một chương trình đồng bộ là một chương trình được thực hiện theo từng câu lệnh từ trên xuống dưới, từ trái qua phải, câu lệnh sau được thực hiện chỉ khi câu lệnh trước đã hoàn thành. Đa số các ngôn ngữ biên dịch đều tuân theo quy tắc lập trình đồng bộ ví dụ C++, Java, …Vì thế chỉ cần biên dịch một câu lệnh sai là cả chương trình sẽ dừng lại và báo lỗi.

- Ngược lại, với Asynchronous (bất đồng bộ), nhiều công việc có thể được thực hiện cùng lúc. Và nếu công việc thứ hai kết thúc trước, nó có thể sẽ cho ra kết quả trước cả câu lệnh thứ nhất. Vì thế, đôi khi kết quả của các câu lệnh sẽ không trả về đúng theo đúng thứ tự như trực quan của nó.

ƯU & NHƯỢC ĐIỂM
- Lập trình đồng bộ có ưu điểm là chương trình sẽ chạy theo đúng thứ tự từ trên xuống, và sẽ phát dừng lại ngay khi gặp một câu lệnh lỗi. Điều này sẽ khiến chương trình dễ kiểm soát và dễ phát hiện ra lỗi hơn.

- Lập trình đồng bộ cũng có một nhược điểm là hiệu suất chương trình sẽ chậm. Có rất nhiều câu lệnh cần phải thao tác với các dữ liệu bên ngoài nên nó cần có một thời gian chờ để nhận được dữ liệu trước khi hoạt động bình thường. Như thế thời gian thực hiện của chương trình sẽ bằng tổng thời gian chờ của các câu lệnh và thời gian hoạt động bình thường của các câu lệnh đó. Ở một số ngôn ngữ đồng bộ đa luồng, vấn đề này được xử lý bằng cách bổ sung một luồng để thực hiện các câu lệnh khác. Luồng ban đầu sẽ chờ kết quả của luồng bổ sung, sau đó hai luồng sẽ đồng bộ hóa để kết hợp lại kết quả của chúng.

- Lập trình không đồng bộ có cách khác để giải quyết vấn đề trên. Chúng cho phép các hành động được thực hiện cùng lúc. Do đó, sẽ tối ưu được thời gian chờ của các câu lệnh vì các câu lệnh sẽ được “chờ cùng nhau”.

- Tuy nhiên, lập trình không đồng bộ cũng có nhược điểm. Do các câu lệnh không đồng bộ có thể sẽ không được thực hiện theo đúng thứ tự từ trên xuống theo quy trình nên đòi hỏi chúng ta cần có các kỹ thuật để kiểm soát chúng.

 #9 CI/CDTrong quá trình phát triển một dự án, thường trải qua 3 công việc chính DEV -> TEST -> DEPLOY. Bài toán đặt ra ...
23/05/2022

#9 CI/CD

Trong quá trình phát triển một dự án, thường trải qua 3 công việc chính DEV -> TEST -> DEPLOY. Bài toán đặt ra đó là làm thế nào để tự động hóa các quy trình trên, giúp cho việc giao tiếp giữa dev và tester nhanh hơn, giúp cho bản phần mềm được triển khai cập nhật nhanh hơn, ... Từ đó khái niệm CI/CD ra đời.

CI/CD là một bộ đôi công việc, bao gồm CI (Continuous Integration) và CD (Continuous Delivery), ý nói là quá trình tích hợp (integration) thường xuyên, nhanh chóng hơn khi code cũng như thường xuyên cập nhật phiên bản mới (delivery).

Mình cũng tham khảo đã tham khảo nhiều lí thuyết về triển khai CI/CD trên mạng, nhưng có lẽ tổng hợp lại thành các bước dưới đây là hợp lí. Đây cũng là quy trình mà công ty mình sử dụng, để đảm bảo luôn luôn tạo ra các sản phẩm production nhanh, không có lỗi.

– Bước 1: [Manual] Khởi tạo repository và có branch default là master và dev. Cài đặt trên Gitlab 9.

– Bước 2: [Manual] Trừ owner ra, thì các coder sẽ push code tính năng lên branch dev

– Bước 3: [Auto] Hệ thống tự động thực hiện test source code, nếu PASS thì sẽ deploy tự động (rsync) code lên server test.

– Bước 4: [Manual] Tester/QA sẽ vào hệ test beta để làm UAT (User Acceptance Testing) và confirm là mọi thứ OK.

– Bước 5: [Manual] Coder hoặc owner sẽ vào tạo Merge Request, và merge từ branch dev sang branch master.

– Bước 6: [Manual] Owner sẽ accept merge request.

– Bước 7: [Auto] Hệ thống sẽ tự động thực hiện test source code, nếu PASS sẽ enable tính năng cho phép deploy lên production server.

– Bước 8: [Manual] Owner review là merge request OK, test OK. Tiến hành nhấn nút để deploy các thay đổi lên môi trường production.

– Bước 9: [Manual] Tester/QA sẽ vào hệ thống production để làm UAT và confirm mọi thứ OK. Nếu không OK, Owner có thể nhấn nút Deploy phiên bản master trước đó để rollback hệ thống về trạng thái stable trước đó.

Một số lưu ý (file .gitlab-ci.yml và Gitlab Runner):
- Mặc định Gitlab không có cơ chế nào về CI cho dự án của bạn, chỉ khi nào dự án của bạn có file .gitlab-ci.yml nằm ở thư mục gốc thì Gitlab mới nhận dạng được dự án của bạn muốn áp dụng Gitlab CI.

- Gitlab Runner là thành phần cực kỳ quan trọng trong workflow Gitlab CI. Nếu không có Runner thì sẽ không có lệnh test, deploy nào được thực thi. Runner có nhiều loại, phân biệt dựa vào cái gọi là executor. Khi khởi tạo runner, bạn sẽ phải chọn nó là loại executor nào, và nó sẽ quyết định môi trường thực thi các câu lệnh trong file config ở trên.

Address

Hanoi

Website

Alerts

Be the first to know and let us send you an email when Tiger's working blog posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share