XCrawler “truyền kì”: Ubuntu, nhiều node, và câu chuyện “setup hoài mệt vl”
Well… nói cho ngay: series này không phải kiểu “lúc nào cũng chỉ chăm chăm XCrawler”. XCrawler chỉ là cái trục để mình kể một loạt chuyện xung quanh: setup môi trường, triển khai, scale workers, chống block, rồi dần dần mới đến những thứ nâng cao hơn.
Version mình đang dùng hiện tại là Ubuntu 20.04 LTS. Ubuntu 20.04 phát hành ngày 23/04/2020.
Ubuntu: không thần thánh, nhưng phổ cập và dễ “đập automation”
Ubuntu thì bản chất vẫn là Linux thôi. Không có gì kiểu “đặc biệt vãi”, nhưng được cái:
- Phổ cập: tài liệu nhiều, cộng đồng đông
- Dễ dùng: rất hợp để chuẩn hoá môi trường
- Dễ automation: apt/systemd/packaging khá “đàng hoàng”
Nên mọi câu chuyện trong series này sẽ xoay quanh Ubuntu là chính.
Mình đã “chơi lớn” như nào để chạy XCrawler?
Để chơi project XCrawler này mình cũng chơi lớn:
1 con Workstation Dual Xeon E5-2680 v4 – 256GB RAM
- Load Balancer với 2 line Internet (1 tĩnh & 1 động)
Có nhiều cách triển khai, nhưng cách mình chọn là:
1) Workstation chạy các primary services

- MariaDB
- MongoDB
- Redis
- Memcached
- …v..v
2) VirtualBox chạy n clients + chính XCrawler
Tức là riêng XCrawler tối thiểu cũng đã ngốn 2 VM:
- 1 VM cho UI
- 1 VM cho workers
Mục tiêu là tách rõ:
- Host (workstation) lo hạ tầng lõi (DB/cache)
- VM lo application nodes (UI/workers) — muốn đẻ thêm node thì đẻ.