Kinh nghiệm lập trình website mã nguồn mở PHP

Viếng thăm đại bản doanh Tiki

Viếng thăm đại bản doanh Tiki

Nhớ thời đó…

Hôm nay tôi đến Tòa nhà Tiki để tham dự hội thảo nói về event Dzựt Cô Hồn. Thời sinh viên tôi rất thích tham gia mấy sự kiện hội thảo công nghệ, mỗi chuyến đi lại học hỏi được rất nhiều điều mới mẻ, cũng như tiếp xúc với môi trường rộng lớn bên ngoài khiến mình càng có thêm nhiều động lực trong học tập.
Sau này khi đi làm tôi không còn tham gia những hoạt động như vậy nữa, cho tới hôm nay thì may mắn được ông bạn đồng nghiệp tặng lại chiếc vé, thế là cũng háo hức, cũng quần áo chỉnh tề, ba lô con cóc, lóc chóc tới hội thảo như thời sinh viên.

Công ty Tiki

Đại bản doanh Tiki rất hoành tráng. Đó là 1 tòa nhà 7 tầng, có tầng hầm giữ xe, tầng trệt là nơi tiếp khách, mỗi một tầng là nơi làm việc, họp hành của nhân viên, tầng 7 là cafeteria, cũng là nơi tổ chức buổi hội thảo. Qua các video giới thiệu “Inside Tiki”, tôi cảm nhận được họ rất chú trọng tới môi trường làm việc, không chỉ là văn phòng nơi bạn làm việc 8 tiếng mỗi ngày, mà nó còn là nơi vui chơi, gặp gỡ, kết nối các thành viên, các hoạt động thể dục, thể thao, yoga… Giống mô hình của công ty Google thu nhỏ. Tôi nghĩ làm việc trong môi trường như vậy khiến nhân viên cảm thấy mình được quan tâm, sẽ cống hiến tích cực.



Hệ thống Tiki eCommerce và ứng dụng Dzựt Cô Hồn



Trước khi tham dự buổi hội thảo, tôi có kham khảo trước vài tài liệu về hệ thống Tiki

Thật sự rất cần thiết khi ta tìm hiểu trước chủ đề của buổi hội thảo, cũng như những công nghệ mà diễn giả sẽ đề cập tới. Nhìn chung hệ thống Tiki là 1 hệ thống tầm lớn, khả năng chịu tải rất đáng nể, kỹ thuật load balance qua nhiều con server giúp Tiki đáp ứng được lượng truy cập cực cao từ người dùng. Quả nhiên trong buổi hội thảo, anh CTO của Tiki đề cập tới lượng kiến thức rất phong phú, fullstack, từ những thách thức khi triển khai ứng dụng Dzựt, cho tới những giải pháp thực tế và cuối cùng là những bài học kinh nghiệm cho năm sau. Đại khái nội dung bao gồm:

1. Tiki triển khai sự kiện Dzựt được 5 lần
Trong đó có 3 lần fail. Lần thứ 1 quá chủ quan nên sập luôn server, lần 2 cũng bị trục trặc với server tuy đã có sự chuẩn bị, lần 3 thì server đã ngon lành thì lại bị tình trạng gian lận, lần thứ 4 là năm ngoái, đã ổn về mặt server, cheat tuy nhiên cũng bị phê bình ít nhiều, năm nay là lần thứ 5, Tiki triển khai trên ứng dụng mobile, và cũng gặp nhiều phản ánh.

Nội dung này cho thấy Tiki cũng chịu khó tiếp thu ý kiến người dùng, và biết rút kết kinh nghiệm để hoàn thiện dần. Ví dụ như Tiki triển khai trên ứng dụng mobile lý do vì những lần trước họ thấy thời gian Dzựt bất tiện cho người dùng.

2. Thử thách về hệ thống Realtime
Bài toán đặt ra, nếu mỗi lượt click dzựt của user, hệ thống phải connect database, phân tích, thống kê, tính toán, thì khả năng kết quả thiếu chính xác, hệ thống quá tải… Vậy thì làm sao để giảm tối đa các thao tác này bên phía server?
Tiki sử dụng queue để giải quyết bài toán trên. Khi user click Dzựt, hệ thống sẽ ghi nhận thời gian hit và ghi vào queue, xong. Không thực hiện xử lý gì nữa. Kết quả sẽ được tính toán 1 lần sau vòng chơi.

Khái niệm Message Queue không còn quá xa lạ trong các hệ thống eCommerce, đây là mô hình giao tiếp truyền tin bất động bộ, các bạn có thể kham khảo thêm:
http://labs.septeni-technology.jp/technote/su-dung-beanstalkd-message-queue-system-voi-cakephp/
https://viecbonus.com/blog/thu-tu-message-xu-ly-bat-dong-bo/
https://kipalog.com/posts/Tim-hieu-RabbitMQ—Phan-1

3. Các thử thách khác
Lần lượt diễn giả trình bài các bài toán khó trong quá trình triển khai mô hình Dzựt như:
Sự tăng đột biến truy cập do sự kiện Dzựt – xử lý bằng EC2: service cung cấp scalable trong Amazon Web Services (AWS) cloud + Terraform
https://tech.smartling.com/getting-started-with-terraform-and-aws-ec2-first-steps-workshop-1-e38607f0fd4c
Deploy hotfix ứng dụng mobile nhanh nhất – React native + redux
Current time – tự cấu hình Nginx
Cheat – cái này Tiki xử lý khá vui, dùng fake token, giả bộ để 1 token giả mạo để “phá game” dễ dàng chôm được, nếu request của user chứa đoạn token giả này thì phát hiện đây là cheat.
Auto click – đây là vấn đề rất đau đầu của Tiki, vì click này y hệt như hành vi click của người dùng.
Những bài học thực tế khi dùng Redis, PHP OPcache, ElasticSearch…

***

Tiếp sau bài thuyết trình của anh CTO Tiki thì 1 anh khác lên nói về performance test. Developers mà nghe giảng về lý thuyết testing thì đúng là… đàn gảy tai trâu. Tôi thấy lúc anh QC lên nói thì ai cũng mất chú ý cả, cũng do anh kia cứ đọc trong slide ra, lâu lâu lại “Ồ, nhầm rồi, không phải cái này, à đây…” Thế rồi anh đọc ro ro.

Thế mà sau bài thuyết trình, mấy bạn dev vẫn đặt câu hỏi rất sôi nổi. Tôi cũng thấy vui vì dev giờ đã quan tâm tới test hơn xưa – thời của tôi nghe test là chạy quăng cả dép. Và các bạn rất chủ động hỏi, thời của tôi nghe hội thảo, tới phần Q&A thì nhìn nhau cười trừ. Quả nhiên thế hệ lập trình viên mới càng ngày càng tiến bộ.


Tòa nhà Tiki
30/9/2017

Viếng thăm đại bản doanh Tiki
Đánh giá bài viết

Gửi phản hồi

Your email address will not be published. Required fields are marked *