Categories
DevOps

Cloud Việt Nam hay nước ngoài – VCCloud vs Linode

saas-iaas-paas

Lựa chọn IaaS nào luôn là trăn trở của công ty cung cấp dịch vụ cloud-based (SaaS) như mình vì vấn đề cân đối giữa giá và performance hệ thống, người dùng luôn được cân nhắc. Vừa chuyển về cloud của Việt Nam (VCCloud, không có quảng cáo, cái nào tốt thì xài) thấy giá không như xưa, có thể nói là ngang ngửa giá với cloud thuộc dạng rẻ nhất của nước ngoài (Linode, mình sử dụng Linode vì chính sách giá cũng như support khá tốt, và có data center ở Singapore), nếu biết tweak có thể có một số cấu hình rẻ hơn nước ngoài về memory. Được cái cloud ở VN thì performance là tốt nhất so với nước ngoài vì độ trễ thấp hơn nhiều (trừ những lúc mấy ông nội VN cấu hình sao đó mà truy cập site ở VN mà chậm hơn ở Sing ^^!). Sau khi đo đạc, nghiên cứu thì sau 10 ngày, tức là hôm nay thì data center của Teamcrop đã về với đất mẹ.

Nội dung bài viết chia sẻ một số cách tiếp cận của mình khi phân tích performance và quyết định dời nhà hệ thống về Việt Nam.

Về giá cả

Trước đây, khi quyết định chuẩn bị một hệ thống scale thì đã quyết định không sử dụng bare metal server mà xem xét nâng cấp lên cloud server để scale cho dễ. Thời điểm cách đây nửa năm các dịch vụ cloud ở Việt Nam còn khá mơ hồ về chất lượng và giá cả, còn về mảng dịch vụ VPS hoặc Dedicated server thì chi phí khá cao.

Mình đã quyết định chuyển toàn bộ hệ thống sang Singapore và sử dụng dịch vụ server của Linode. Linode là một trong những nhà cung cấp có tiếng trên thế giới về hạ tầng Cloud server và giá thì rất cạnh tranh so với Amazon Web Service (AWS), vì dùng AWS tính toàn giá trên trời và giá của Linode cũng rẻ gần như bằng 1 nửa so với các server cùng cấu hình ở VN.

Về performance

Khi chuyển Data center ra ngoài Việt Nam thì một trong những vấn đề performance lớn nhất là tốc độ kết nối, kéo theo khá nhiều thứ bị chậm lại theo. Do hệ thống sử dụng HTTPS và đặc thù của HTTPS là cần 3 RTT (round-trip time) nên nếu 1 RTT chậm thì sẽ kéo theo https sẽ rất chậm. Còn về performance của server thì hầu như không có sự khác biệt về CPU, Memory, HDD.

Mình có cung cấp 1 số thông tin mình test và quyết định chuyển hệ thống về Việt Nam bên dưới.

Về kiến trúc ứng dụng

Do đặc thù định hướng xây dựng theo kiến trúc Microservices và Single Page App (SPA) nên một trang trong tương lai sẽ gọi khá nhiều web service và đồng thời mở ra các web service cho 3rd-party khiến cho việc di chuyển về VN sẽ có nhiều lợi thế về tốc độ hơn, kẻo đã chậm lại càng thêm chậm khi chuyển sang kiến trúc mới.

Khảo sát & so sánh

Một số kết quả khảo sát của mình thực hiện trước khi ra quyết định chuyển về dùng Cloud ở Việt Nam. Thời điểm khảo sát là ngày 29/9/2015 và thực hiện tại TPHCM. Mình có benchmark kết nối với Redis server vì hệ thống mình dùng chủ yếu là Redis cho layer cache.

1. VCCloud – SAS – 1CPU, 2G RAM

– iperf3 giữa 2 server là ~380Mbits/sec. Metric này khá quan trọng nếu bạn xây dựng microservice vì tốc độ giữa 2 server nội mạng là cực kỳ quan trọng vì các server sẽ request lẫn nhau khá nhiều. Do data center trong nước chưa đầu tư các đường truyền hoành tráng nên có vẻ metric này khá thấp so với data center của quốc tế.
– PING RTT giữa 2 server là: 0.578ms
– PING RTT từ Client Viettel đến server: 50.913
– PING RTT từ Client FPT đến server: 26.558ms
– PING RTT từ Client VNPT đến server: 31.834ms
– PING RTT từ Client 3G Mobifone đến server: 105ms
– Redis benchmark
Without pipeline:
./redis-benchmark -h redis.server.lan.ip -n 100000 -t get,set -q
SET: ~ 44K requests per second
GET: ~ 48K requests per second

With pipeline -P 1000
./redis-benchmark -h redis.server.lan.ip -n 100000 -t get,set -q -P 1000
SET: ~ 550K – 610k requests per second
GET: ~ 560K – 610k requests per second

2. Linode – SSD – 2CPU, 2G Ram

– iperf giữa 2 server là 5.78Gbits/sec
– PING RTT giữa 2 server là: 0.508ms
– PING RTT từ Client Viettel đến server: 49.015
– PING RTT từ Client FPT đến server: 160.753ms
– PING RTT từ Client VNPT đến server: 306.097 ms
– PING RTT từ Client 3G Mobifone đến server: 311ms
– Redis benchmark

Without pipeline:
./redis-benchmark -h redis.server.lan.ip -n 100000 -t get,set -q
SET: ~ 33K requests per second
GET: ~ 32K requests per second

With pipeline -P 1000
./redis-benchmark -h redis.server.lan.ip -n 100000 -t get,set -q -P 1000
SET: ~ 790k – 950K requests per second
GET: ~ 1100K requests per second

Một số lưu ý là Cloud server ở Việt Nam nếu bạn dùng nhiều ổ cứng, SSD thì giá sẽ khá cao nên cần tối ưu giữa sử dụng nhiều ở cứng hay không vì mình không dùng nhiều ổ cứng mà dùng nhiều memory, nên một số server cache memory thì cứ để memory mong muốn, hdd và cpu ở mức chạy được là sẽ tiết kiệm hơn khá nhiều so với cloud ở quốc tế.

Hy vọng một số chia sẻ ở đây sẽ giúp các bạn có một số góc nhìn về hệ thống cũng như hạ tầng cloud và ra quyết định sao cho có lợi cho sản phẩm của mình trong quá trình triển khai và scale phục vụ nhiều người dùng.

Categories
PHP Web Programming

Xây dựng hệ thống load balancer cho web

load-balancer

Dạo này với xu hướng mọi người bắt đầu làm Tech startup ngày càng nhiều (cụ thể là web & app startup), tuy nhiên do chưa có kinh nghiệp triển khai kiến trúc server nên đôi khi các bạn đâu đó sẽ gặp tình huống khóc dỡ là web quá nhiều lượt truy cập (có thể do chạy campaign hoặc ngày ra mắt…) làm cho web bị treo vì không trở tay kịp.

Mình viết bài này với hy vọng các anh chị em tech startup hoặc anh chị em IT chịu trách nhiệm lo về phần scaling cho website có một chút thông tin về xây dựng hệ thống Load balancer phòng trường hợp server quá tải.

Categories
PHP Web Programming

Cài đặt Web Server cho Amazon EC2 Instance [Video Clip]

cai-dat-web-server-cho-amazon-ec2-instance

Đã lâu không viết blog, nay mình trở lại với bài viết hướng dẫn cài đặt một LAMP Stack hoàn chỉnh cho 1 Amazon EC2 Instance. Mình đã quay clip lại quá trình khởi tạo Instance cũng như cài đặt các phần mềm cần thiết cho Web Server.

Một số phần mềm đã cài cho Web Server là: Apache, PHP, MySQL, FTP cũng như các cấu hình FTP, Apache hỗ trợ virtual host…

Categories
Business PHP Web Programming

Barcamp Saigon 2012 – Summer

barcamp-saigon-2012

Chào mọi người, thế là đã sắp tới barcamp saigon 2012 (mùa hè). Đợt cuối năm vừa rồi thật tiếc là không có thời gian tham gia để chia sẻ với các bạn các kinh nghiệm của mình như các lần barcamp trước. Năm nay, mình nhất định tham gia cũng với tinh thần chia sẻ kiến thức của mình đến các bạn đồng đạo dev.

Năm nay, với xu hướng các bạn làm khởi nghiệp (startup) nhiều, và tình hình kinh tế khó khăn khiến việc duy trì các dự án online dường như là một gánh nặng cho các doanh nghiệp làm online. Kéo dài sự sống của website qua mùa mưa bão là điều rất cần thiết cho các bạn trong thời điểm này, một trong những cách kéo dài sự sống của 1 dự án online là giảm thiểu tối đa chi phí duy trì website.

Categories
Web Programming

Lấy bản thảo ebook trên Alezaa.com

alezaa-ebook-system

Nếu bạn có theo dõi bài viết trước đây giới thiệu về Alezaa thì có lẽ biết site này làm gì rồi. Cũng như các bài viết khác trên bloghoctap khi phân tích website, mình chẳng có ý định dìm hàng website nào mà chỉ là đứng trên vị trí một web developer phân tích, rị mọ xem kỹ thuật bên trong họ hoành tráng cỡ nào và có thực sự như đã quăng bom hay không thôi, và đối tượng bài viết này hướng đến là Alezaa và hệ thống phân phối ebook bản quyền của họ.

Thật sự mình cũng tính viết bài này lâu rồi bởi từ khi họ chính thức bật tính năng chạy (ngày 1/9/2011) thì mình đã hoàn tất việc “thăm dò” nhưng chưa có thời gian viết, sáng nay rảnh rồi nên ngồi viết cho các bạn đồng đạo hay các bạn nào liên quan đến bán ebook, mua ebook, crack ebook hay xuất bản ebook hiểu hơn về “sự bảo vệ ebook” của alezaa. Đợt thăm dò này tốn 100k nhưng “rờ” được bản thảo của khoảng 4 cuốn khá mới và nổi tiếng.