SlideShare une entreprise Scribd logo
1  sur  27
Sử dụng CI pipeline bằng Jenkins
cho Salesforce
Created Date 2021/2/21
Mục lục
Tại sao nên sử dụng CI với
Salesforce Development?
Continuous Integration
(CI) là gì?
Cấu hình Jenkins CI
Pipeline cho Salesforce
Continuous Integration (CI) là
gì?
Continuous Integration
Định nghĩa
CI là quá trình tích hợp các phiên bản mã nguồn của các lập trình viên
trên một bản chính thường xuyên.
Các bước cơ bản
• Đẩy code lên source control.
• Kiểm tra convention tự động.
• Đóng gói, đẩy code lên môi trường tạm thời.
• Chạy test tự động, phát hiện lỗi nếu có.
Kết quả
Đảm bảo mã nguồn được tích hợp vào bản chính luôn thoả mãn yêu
cầu về convention và hạn chế phát sinh code degration.
Tích hợp liên tục
Source: https://developers.redhat.com/blog/2017/09/06/continuous-integration-a-typical-process/
Tại sao nên sử dụng CI với
Salesforce Development?
Tại sao nên sử dụng CI với Salesforce Development?
2
3
1 Version Control (+ SFDX)
Đảm bảo source deploy được
Tự động hoá unit test
Source: https://www.soliantconsulting.com/blog/salesforce-continuous-integration/
Cấu hình Jenkins CI Pipeline cho
Salesforce
Jenkins CI
2
3
1
Platform Agnostic, Self-Contained, Free Open Source CI Server
Dễ cài đặt và cấu hình
Khả năng mở rộng
Source:
https://www.simplilearn.com/tutorials/jenkins-tutorial/what-is-jenkins
https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet
Jenkins CI
Hướng dẫn chính thức của Salesforce:
https://developer.salesforce.com/docs/atlas.en-
us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ci_jenkins.htm
Source:
https://www.simplilearn.com/tutorials/jenkins-tutorial/what-is-jenkins
https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet
Jenkins CI
Hướng dẫn của Hiếu:
•Cài đặt Jenkins CI
•Chuẩn bị môi trường cho Jenkins
•Tạo Private Key và Certificate File cho JWT Authentication Flow
•Tạo Conntected App ở môi trường org DevHub
•Chuẩn bị Jenkinsfile
•Thiết lập Jenkins và project
•Tạo Github webhook để tự động kích hoạt Jenkins
Source:
https://www.simplilearn.com/tutorials/jenkins-tutorial/what-is-jenkins
https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet
Cài đặt Jenkins CI
Build Docker image từ dockerfile
https://gist.github.com/kagoromo/6ac88cab9351
8f6ad75e8c2cfb1c4d2c
Chạy dòng lệnh như comment.
Cài đặt Jenkins CI
Tìm password khởi tạo từ Container
Log trong Docker
Copy password từ Container Log.
Cài đặt Jenkins CI
Thiết lập ban đầu Jenkins từ giao diện
web
Giao diện web của Jenkins có ở:
http://localhost:8080/
Nhập password ở bước trước.
Continue.
Chọn Recommended Plugins.
Continue.
Cài đặt Jenkins CI
Thiết lập ban đầu Jenkins từ giao diện
web
Giao diện web của Jenkins có ở:
http://localhost:8080/
Nhập password ở bước trước.
Continue.
Chọn Recommended Plugins.
Continue.
Cài đặt Jenkins CI
Tạo tài khoản Admin
Nhập thông tin đăng nhập tuỳ ý.
Save and Continue.
Cài đặt Jenkins CI
Tạo tài khoản Admin
Nhập thông tin đăng nhập tuỳ ý.
Save and Continue.
Chuẩn bị môi trường cho Jenkins
Tạo Private Key và Certificate File cho
JWT Authentication Flow
https://developer.salesforce.com/docs/atlas.en-
us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_
and_cert.htm
Chuẩn bị môi trường cho Jenkins
Tạo Connected App ở môi trường org
DevHub
https://developer.salesforce.com/docs/atlas.en-
us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_conn
ected_app.htm
Chuẩn bị môi trường cho Jenkins
Chuẩn bị Jenkinsfile
• Jenkinsfile có thể được coi như là kịch bản của
CI workflow
• Jenkinsfile đặt ở directory gốc của repo (cùng
tầng với .git)
• Nội dung Jenkinsfile gồm nhiều bước, thực tế
khi thực hiện các tác vụ bằng tay như thế nào
thì trong Jenkinsfile cũng định nghĩa tương tự.
Jenkinsfile + Sample Github repo:
https://github.com/kagoromo/sfdx-jenkins-
package/blob/master/Jenkinsfile
Thiết lập Jenkins và project
Thiết lập Global properties
Là các biến được sử dụng trong Jenkinsfile
Thiết lập Jenkins và project
Định nghĩa toolbelt SFDX cho Jenkins
Workflow cần SFDX để chạy.
Định nghĩa custom tool để Jenkins có thể gọi
được SFDX.
*Thêm plugin Custom Tools từ Manage Jenkins >
Plugin Manager nếu chưa có.
Thiết lập Jenkins và project
Định nghĩa Credentials
Credentials ở đây hiểu là:
・ server.key file dùng trong JWT
Authentication Flow để Jenkins đăng nhập
vào SF DevHub org.
・ Github Personal Access Token để Jenkins
có thể đăng nhập vào Github.
https://docs.github.com/en/github/authentic
ating-to-github/creating-a-personal-access-
token
Thiết lập Jenkins và project
Tạo project
Sử dụng Multibranch Pipeline để Jenkins tự động
scan tất cả các branch có thay đổi và chạy test.
Thiết lập Jenkins và project
Tạo project
Tối thiểu cần chỉ định Github Credential, địa chỉ
Github repo.
Thiết lập Jenkins và project
Click Build Now.
Tạo Github webhook để tự động kích hoạt Jenkins
Sfdx jenkins

Contenu connexe

Similaire à Sfdx jenkins

Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0Huân Bùi Đình
 
giới thiệu về Asp.net core 2.0
giới thiệu về Asp.net core  2.0giới thiệu về Asp.net core  2.0
giới thiệu về Asp.net core 2.0VanSy9x
 
Hướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ideHướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ideThiện Dương
 
Tìm hiểu và triển khai ứng dụng Web với Kubernetes
Tìm hiểu và triển khai ứng dụng Web với KubernetesTìm hiểu và triển khai ứng dụng Web với Kubernetes
Tìm hiểu và triển khai ứng dụng Web với KubernetesGMO-Z.com Vietnam Lab Center
 
Quản lý dự án phần mềm bằng SVN
Quản lý dự án phần mềm bằng SVN Quản lý dự án phần mềm bằng SVN
Quản lý dự án phần mềm bằng SVN Lương Bá Hợp
 
Docker Overview
Docker OverviewDocker Overview
Docker OverviewThinh Duc
 
Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...
Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...
Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...VKhang Yang
 
Netbeans_Subversion
Netbeans_SubversionNetbeans_Subversion
Netbeans_SubversionNguyen Linh
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTMasterCode.vn
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptxTunTrung15
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformMasterCode.vn
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015IT Expert Club
 
Pham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkPham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkVu Hung Nguyen
 
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)Levis Nickaster
 

Similaire à Sfdx jenkins (20)

Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0Giới thiệu ASP.NET Core 2.0
Giới thiệu ASP.NET Core 2.0
 
giới thiệu về Asp.net core 2.0
giới thiệu về Asp.net core  2.0giới thiệu về Asp.net core  2.0
giới thiệu về Asp.net core 2.0
 
Hướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ideHướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ide
 
Tìm hiểu và triển khai ứng dụng Web với Kubernetes
Tìm hiểu và triển khai ứng dụng Web với KubernetesTìm hiểu và triển khai ứng dụng Web với Kubernetes
Tìm hiểu và triển khai ứng dụng Web với Kubernetes
 
Quản lý dự án phần mềm bằng SVN
Quản lý dự án phần mềm bằng SVN Quản lý dự án phần mềm bằng SVN
Quản lý dự án phần mềm bằng SVN
 
Ltgd ch01
Ltgd ch01Ltgd ch01
Ltgd ch01
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...
Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...
Lập trình background job bằng azurequeue và webjob sử dụng azure storage emul...
 
Netbeans_Subversion
Netbeans_SubversionNetbeans_Subversion
Netbeans_Subversion
 
Arrowjs.io
Arrowjs.ioArrowjs.io
Arrowjs.io
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Auto
AutoAuto
Auto
 
Subversion Seminar [2010]
Subversion Seminar [2010]Subversion Seminar [2010]
Subversion Seminar [2010]
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
 
Pham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkPham Anh Tu - TK Framework
Pham Anh Tu - TK Framework
 
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
 
Docker 101
Docker 101Docker 101
Docker 101
 
Challenge-1.1.pdf
Challenge-1.1.pdfChallenge-1.1.pdf
Challenge-1.1.pdf
 

Plus de furuCRM株式会社 CEO/Dreamforce Vietnam Founder

Plus de furuCRM株式会社 CEO/Dreamforce Vietnam Founder (20)

GithubAction+DevOpsCenter.pptx
GithubAction+DevOpsCenter.pptxGithubAction+DevOpsCenter.pptx
GithubAction+DevOpsCenter.pptx
 
BackupMetadataByGitAction.pptx
BackupMetadataByGitAction.pptxBackupMetadataByGitAction.pptx
BackupMetadataByGitAction.pptx
 
Salesforce Flow_InternalTraining.pptx
Salesforce Flow_InternalTraining.pptxSalesforce Flow_InternalTraining.pptx
Salesforce Flow_InternalTraining.pptx
 
FlowErrorHandling.pptx
FlowErrorHandling.pptxFlowErrorHandling.pptx
FlowErrorHandling.pptx
 
DevOpsCenter_BetaVersion.pptx
DevOpsCenter_BetaVersion.pptxDevOpsCenter_BetaVersion.pptx
DevOpsCenter_BetaVersion.pptx
 
Omni-Chanel_ForInternal.pptx
Omni-Chanel_ForInternal.pptxOmni-Chanel_ForInternal.pptx
Omni-Chanel_ForInternal.pptx
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
 
SVF cloud for salesforce
SVF cloud for salesforceSVF cloud for salesforce
SVF cloud for salesforce
 
External services
External servicesExternal services
External services
 
Data spider servista for Beginner
Data spider servista for BeginnerData spider servista for Beginner
Data spider servista for Beginner
 
Record level-access in Salesforce
Record level-access in SalesforceRecord level-access in Salesforce
Record level-access in Salesforce
 
Salesforce CMS
Salesforce CMS Salesforce CMS
Salesforce CMS
 
Salesforce Scheduler
Salesforce SchedulerSalesforce Scheduler
Salesforce Scheduler
 
Pardot MA Fundamental
Pardot MA FundamentalPardot MA Fundamental
Pardot MA Fundamental
 
Field service lightning
Field service lightningField service lightning
Field service lightning
 
ETL And Salesforce Integration
ETL And Salesforce IntegrationETL And Salesforce Integration
ETL And Salesforce Integration
 
Heroku platform introduction
Heroku platform introductionHeroku platform introduction
Heroku platform introduction
 
Unlocked package
Unlocked packageUnlocked package
Unlocked package
 
Asynchronous apex
Asynchronous apexAsynchronous apex
Asynchronous apex
 
Sales cloud overview
Sales cloud overviewSales cloud overview
Sales cloud overview
 

Sfdx jenkins

  • 1. Sử dụng CI pipeline bằng Jenkins cho Salesforce Created Date 2021/2/21
  • 2. Mục lục Tại sao nên sử dụng CI với Salesforce Development? Continuous Integration (CI) là gì? Cấu hình Jenkins CI Pipeline cho Salesforce
  • 4. Continuous Integration Định nghĩa CI là quá trình tích hợp các phiên bản mã nguồn của các lập trình viên trên một bản chính thường xuyên. Các bước cơ bản • Đẩy code lên source control. • Kiểm tra convention tự động. • Đóng gói, đẩy code lên môi trường tạm thời. • Chạy test tự động, phát hiện lỗi nếu có. Kết quả Đảm bảo mã nguồn được tích hợp vào bản chính luôn thoả mãn yêu cầu về convention và hạn chế phát sinh code degration. Tích hợp liên tục Source: https://developers.redhat.com/blog/2017/09/06/continuous-integration-a-typical-process/
  • 5. Tại sao nên sử dụng CI với Salesforce Development?
  • 6. Tại sao nên sử dụng CI với Salesforce Development? 2 3 1 Version Control (+ SFDX) Đảm bảo source deploy được Tự động hoá unit test Source: https://www.soliantconsulting.com/blog/salesforce-continuous-integration/
  • 7. Cấu hình Jenkins CI Pipeline cho Salesforce
  • 8. Jenkins CI 2 3 1 Platform Agnostic, Self-Contained, Free Open Source CI Server Dễ cài đặt và cấu hình Khả năng mở rộng Source: https://www.simplilearn.com/tutorials/jenkins-tutorial/what-is-jenkins https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet
  • 9. Jenkins CI Hướng dẫn chính thức của Salesforce: https://developer.salesforce.com/docs/atlas.en- us.sfdx_dev.meta/sfdx_dev/sfdx_dev_ci_jenkins.htm Source: https://www.simplilearn.com/tutorials/jenkins-tutorial/what-is-jenkins https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet
  • 10. Jenkins CI Hướng dẫn của Hiếu: •Cài đặt Jenkins CI •Chuẩn bị môi trường cho Jenkins •Tạo Private Key và Certificate File cho JWT Authentication Flow •Tạo Conntected App ở môi trường org DevHub •Chuẩn bị Jenkinsfile •Thiết lập Jenkins và project •Tạo Github webhook để tự động kích hoạt Jenkins Source: https://www.simplilearn.com/tutorials/jenkins-tutorial/what-is-jenkins https://dzone.com/articles/how-to-setup-scalable-jenkins-on-top-of-a-kubernet
  • 11. Cài đặt Jenkins CI Build Docker image từ dockerfile https://gist.github.com/kagoromo/6ac88cab9351 8f6ad75e8c2cfb1c4d2c Chạy dòng lệnh như comment.
  • 12. Cài đặt Jenkins CI Tìm password khởi tạo từ Container Log trong Docker Copy password từ Container Log.
  • 13. Cài đặt Jenkins CI Thiết lập ban đầu Jenkins từ giao diện web Giao diện web của Jenkins có ở: http://localhost:8080/ Nhập password ở bước trước. Continue. Chọn Recommended Plugins. Continue.
  • 14. Cài đặt Jenkins CI Thiết lập ban đầu Jenkins từ giao diện web Giao diện web của Jenkins có ở: http://localhost:8080/ Nhập password ở bước trước. Continue. Chọn Recommended Plugins. Continue.
  • 15. Cài đặt Jenkins CI Tạo tài khoản Admin Nhập thông tin đăng nhập tuỳ ý. Save and Continue.
  • 16. Cài đặt Jenkins CI Tạo tài khoản Admin Nhập thông tin đăng nhập tuỳ ý. Save and Continue.
  • 17. Chuẩn bị môi trường cho Jenkins Tạo Private Key và Certificate File cho JWT Authentication Flow https://developer.salesforce.com/docs/atlas.en- us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_ and_cert.htm
  • 18. Chuẩn bị môi trường cho Jenkins Tạo Connected App ở môi trường org DevHub https://developer.salesforce.com/docs/atlas.en- us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_conn ected_app.htm
  • 19. Chuẩn bị môi trường cho Jenkins Chuẩn bị Jenkinsfile • Jenkinsfile có thể được coi như là kịch bản của CI workflow • Jenkinsfile đặt ở directory gốc của repo (cùng tầng với .git) • Nội dung Jenkinsfile gồm nhiều bước, thực tế khi thực hiện các tác vụ bằng tay như thế nào thì trong Jenkinsfile cũng định nghĩa tương tự. Jenkinsfile + Sample Github repo: https://github.com/kagoromo/sfdx-jenkins- package/blob/master/Jenkinsfile
  • 20. Thiết lập Jenkins và project Thiết lập Global properties Là các biến được sử dụng trong Jenkinsfile
  • 21. Thiết lập Jenkins và project Định nghĩa toolbelt SFDX cho Jenkins Workflow cần SFDX để chạy. Định nghĩa custom tool để Jenkins có thể gọi được SFDX. *Thêm plugin Custom Tools từ Manage Jenkins > Plugin Manager nếu chưa có.
  • 22. Thiết lập Jenkins và project Định nghĩa Credentials Credentials ở đây hiểu là: ・ server.key file dùng trong JWT Authentication Flow để Jenkins đăng nhập vào SF DevHub org. ・ Github Personal Access Token để Jenkins có thể đăng nhập vào Github. https://docs.github.com/en/github/authentic ating-to-github/creating-a-personal-access- token
  • 23. Thiết lập Jenkins và project Tạo project Sử dụng Multibranch Pipeline để Jenkins tự động scan tất cả các branch có thay đổi và chạy test.
  • 24. Thiết lập Jenkins và project Tạo project Tối thiểu cần chỉ định Github Credential, địa chỉ Github repo.
  • 25. Thiết lập Jenkins và project Click Build Now.
  • 26. Tạo Github webhook để tự động kích hoạt Jenkins

Notes de l'éditeur

  1. Một cấu hình hay gặp là khi code được đẩy lên source control (ví dụ thông qua PR của Github) thì hệ thống CI sẽ được kích hoạt. Bước đầu tiên của quá trình CI thường là việc check code convention, linting v.v... các loại phân tích code mà không cần deploy. Sau đó, CI workflow đóng gói và đẩy code lên một môi trường test. Môi trường test này có thể được sinh mỗi lần chạy test để đảm bảo các yêu cầu để code chạy được thoả mãn, cũng như tránh các hoạt động khác ảnh hưởng đến kết quả test. Tiếp theo, CI workflow thực hiện chạy test trên code vừa được deploy. Pass test nghĩa là code đã đặt yêu cầu và có thể được đóng gói và chuyển đến cho khách hàng. Nếu fail ở bất kỳ bước nào, lập trình viên cũng sẽ cần phải xác nhận kết quả CI workflow và sửa lại code.
  2. CI yêu cầu version control nên quá trình dev sẽ phải thích nghi với việc sử dụng version control. Source of truth chuyển từ bản thân org sang version control. Khuyến khích developer đưa chỉ những metadata cần thiết cho project hiện tại vào version control. Khả năng backup/review code Nhiều developer làm việc cùng lúc trên cùng một code base mà ko sợ gặp conflict. Các ưu điểm trên nói chung đều nhờ có sự hỗ trợ của sfdx Ai đã có động chạm đến salesforce metadata chắc đều biết là có nhiều lý do làm cho một version của source code không deploy được lên org CI bắt được lỗi khi deploy và yêu cầu developer sửa ngay để đảm bảo code sau khi đã merge vào VC thì luôn có thể deploy được lên một org mới để dev CI có thể chạy unit test tự động để bắt các loại lỗi syntax hoặc failed test, đảm bảo đạt yêu cầu code coverage cho packaging
  3. Jenkins chạy trên Windows, MacOS, Unix Ubuntu vv... Cấu hình thông qua giao diện web, có thể kết nối đến server thông qua internet, không nhất thiết phải cài đặt ở local Nhiều plugin, mở rộng tính năng của Jenkins. Dễ dàng phân phối thông qua Docker. Scalability với Kubernetes (cái này mình chưa có cơ hội động vào nên nói lý thuyết thôi nhé) Jenkins sử dụng cấu trúc Master - Slave, nghĩa là một Master server có thể đẩy công việc cho nhiều môi trường Slave khác. Mục đích là để build, test sản phẩm cho nhiều version của code, nhiều môi trường hardware/OS khác nhau Kubernetes là platform quản lý các môi trường đóng gói (container), có khả năng deploy, mở rộng nhiều container từ một Có thể chạy Jenkins Slave trên Kubernetes Sandbox
  4. Setup free duckdns Forward port