CI (Continuous Integration) và CD (Continuous Delivery/Deployment) là một quy trình kết hợp tự động hoá giúp đẩy nhanh tiến độ phát triển sản phẩm. Để quá trình tích hợp và triển khai được diễn ra liên tục thì CI/CD phải được tích hợp vào trong vòng đời phát triển phần mềm.
Các chuyên gia công nghệ đều cho rằng nên áp dụng quy trình CI/CD càng sớm càng tốt. Bởi khi có quy trình tốt thì chất lượng công việc của Developer cũng tối ưu hơn.
Cụ thể, CI/CD sẽ giúp triệt tiêu các bước thủ công trong quy trình phát triển phần mềm/ứng dụng giúp Developer chỉ cần commit code, còn lại tất cả quy trình bao gồm chạy build, test, deploy sẽ được tự động thực hiện hoàn toàn bởi công cụ (tool) CI/CD.
- Vậy có những khó khăn, thách thức gì khi triển khai quy trình CI/CD?
- Các nguyên tắc khi triển khai quy trình CI/CD cho tổ chức?
- Quy trình làm việc với CI/CD tại công ty SaaS ra sao?
Cùng xem chia sẻ từ Mr. Tạ Văn Dậu - Head Of Technical tại Stringee với 8+ năm kinh nghiệm về Java và 5+ năm kinh nghiệm về C++, anh Dậu có kinh nghiệm triển khai CI/CD tại Stringee - hệ thống real time đang phục vụ hơn 70M người dùng cuối cho các doanh nghiệp lớn như TP Bank, VietinBank, VNDIRECT, HDBank, Techcombank, Shinhan, VIB,...
-------------
Stringee Communication APIs là giải pháp cung cấp các tính năng như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài chăm sóc khách hàng có thể tích hợp trực tiếp vào các ứng dụng/website của doanh nghiệp nhanh chóng. Bộ giải pháp này giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.
👉 Đăng ký dùng thử miễn phí 30 ngày tại: https://stringee.co/free-trial
- Website: https://stringee.com
- Hotline: 1800 6670
- Email: info@stringee.com
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...
Kinh nghiệm triển khai CI/CD tại cong ty SaaS phục vụ 70M người dùng
1. KINH NGHIỆM TRIỂN
KHAI CI/CD TẠI
STRINGEE
Hồ Chí Minh 08.2023
Tạ Văn Dậu – Head of Technical
2. Quy trình phát triển phần mềm
Môi trường phát triển phần mềm
Source scan (Security scan, Coding convention scan, ...)
Unit test và Automation test
NỘI DUNG
Giới thiệu
Demo
Ứng dụng CI/CD trong công ty SaaS
Quy trình phát triển phần mềm và CI/CD tại Stringee
Giới thiệu Stringee API, StringeeX Contact Center
Kiến trúc hệ thống Stringee
Tải hệ thống và các con số hiện tại
SaaS là gì và khác các công ty khác ở đâu?
Ứng dụng CI/CD mang lại lợi ích gì
Vai trò Unit Test & Automation Test
stringee.com 2
3. or sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sit amet purus gravida quis blandit turpis. At erat pellentesque adipiscing commodo elit at.
placerat orci nulla.
Stringee SMS
APIs
Stringee Video
Conference APIs
Stringee Chat
APIs
SẢN PHẨM STRINGEE
StringeeX - Contact Center Platform
Stringee Programable Contact Center APIs
Stringee Call
APIs
APIs
Completed
Software
stringee.com 3
4. STRINGEE CALL APIs
App to App
01
03
05
02
04
06
Phone to App
Voice/Video Conference
App to Phone
Phone to Phone
RESTful API
stringee.com 4
5. APP TO APP
2. Get SCCO (Stringee Call
Control Object)
stringee.com 5
13. CÁC MODULE CHÍNH CỦA STRINGEE
Stringee server:
Module chính, quản lý các core nghiệp vụ,
call, voice call, chat, …
Charging server:
Quản lý charging, account balance, …
Payment server:
Quản lý subscription
Daemon server:
Chịu trách nhiệm export các loại dữ liệu liên
quan đến file, dữ liệu lớn
ICC server:
Quản lý, control nghiệp vụ các cuộc gọi voice,
video call, video conf
StringeeX server:
quản lý nghiệp vụ live chat, tích hợp với các
social network
File server:
Quản lý, đồng bộ file giữa các server
File agent:
Đồng bộ file giữa các server
Push server:
xử lý push notification đến các device
Hệ thống website, Web app:
Giao diện người dùng cuối
01
01 06
06
07
07
08
08
09
09
10
10
02
02
03
03
04
04
05
05
stringee.com 13
15. 1000+
70M+
2.5M+
6000+
Hà Nội
4 Data center:
Mumbai (Ấn Độ)
TP Hồ Chí Minh
Oregon (USA)
5B+
Doanh nghiệp
Người dùng cuối
cuộc gọi
mỗi ngày
cuộc gọi
đồng thời
Tổng số lượng
cuộc gọi
TẢI HỆ THỐNG VÀ CÁC CON SỐ HIỆN TẠI CỦA
stringee.com 15
16. ỨNG DỤNG CI/CD TRONG CÔNG TY SAAS
SaaS là gì và khác các
công ty khác ở đâu?
Ứng dụng CI/CD
mang lại lợi ích gì
Vai trò Unit Test &
Automation Test
stringee.com 16
17. SaaS
(Software as a Service)
Phần mềm được cung cấp
dưới dạng dịch vụ (service)
qua internet thay vì cài đặt
trên thiết bị.
Thanh toán theo thời gian sử
dụng hoặc theo tính năng,
không cần mua bản quyền.
Làm sao đảm bảo hệ thống
phục vụ người dùng, dễ nâng
cấp, ít lỗi
Sử dụng CI/CD
VD: Slack, Office 365, Salesforce, Dropbox
Sử dụng phần mềm thông qua
trình duyệt web hoặc ứng dụng di
động.
stringee.com 17
18. CI/CD LÀ GÌ? LỢI ÍCH? ƯU NHƯỢC ĐIỂM?
CI/CD là một bộ đôi công việc bao gồm CI (Continuous Integration) và CD (Continuous Delivery), 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).
stringee.com 18
20. Quy trình
phát triển
phần mềm
Môi trường
phát triển
phần mềm
Source scan Unit test
Automation
test
QUY TRÌNH PHÁT TRIỂN PHẦN MỀM VÀ CI/CD TẠI STRINGEE
stringee.com 20
22. Tính năng được release liên tục (mỗi sprint 2 tuần) có nhiều sprint chạy song song.
Nhiều nhân sự thực hiện các công việc khác nhau, ở các giai đoạn khác nhau.
Nhân sự CSKH, NVKD, thậm chí cả khách hàng cũng tham gia vào quá trình phát
triển/nghiệm thu sản phẩm trước khi tính năng được đưa lên production cho người dùng cuối.
CÁC MÔI TRƯỜNG PHÁT TRIỂN TẠI STRINGEE
stringee.com 22
27. met, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sit amet purus gravida quis blandit turpis. At erat pellentesque adipiscing commodo elit at. Ultrices
Security scan
Check dirty code
Check duplicate code, smell code
Coding convention scan
SOURCE SCAN
stringee.com 27
28. Viết bởi developer.
Phát hiện thuật toán thực thi không hiệu quả.
UNIT TEST
Phát hiện các lỗi nghiêm trọng có thể xảy ra.
Tăng độ tin tưởng vào mã nguồn, đặc biệt khi mã nguồn dự án phình lớn sau 1
khoảng thời gian dài phát triển sản phẩm, lúc đó các tính năng mới phát triển có
thể gây lỗi các tính năng cũ.
Java: Junit, TestEG
PHP: PHPUnit
JavaScript: Jest, jest-dom Testing Library (for vuejs, reactjs)
Các công cụ unit test:
stringee.com 28
29. UNIT TEST - BEST PRACTICES
Chạy nhanh
Phản ánh đúng hoạt động của module
Chạy độc lập các test case
Sử dụng data dễ đọc, dễ hiểu
Coverage code tối thiểu 60% code
01
02
04
03
05
stringee.com 29
30. AUTOMATION TESTING
Ngoài unit test, thì automation test là khâu quan trọng trước
và sau khi deploy lên một môi trường mới.
Tại mỗi môi trường, sẽ cần chạy automation test nghiệm thu
trước khi được deploy lên môi trường tiếp theo.
Nếu quá trình automation test trên production không đạt tiêu chí
đề ra, thì sẽ phải roll back.
stringee.com 30
32. Tester chuẩn bị test case từ ban đầu sprint cho mỗi tính năng.
Tester implement các case test với Java: Selenium WebDriver.
Thực hiện trigger build và deploy.
Trigger Automation test.
Theo dõi kết quả test.
AUTOMATION TESTING TẠI STRINGEE
stringee.com 32
33. 2. Demo CI/CD với Jenkins
1. Giới thiệu
3. Demo automation test
Chạy luồng CI/CD trên jenkins
Demo scan source với sonar qube
Demo unit test
Chạy automation test trên máy local
Demo automation với Jenkins
Demo rollback ứng dụng khi gặp lỗi
stringee.com 33