Sunday, August 2, 2009

này là cloud computing

cái bài này muốn viết lâu rồi, mà lười quá nên không viết, nhưng hôm nay không muốn làm toán nữa, thành ra viết blog trở thành lý do rất tốt để mà chay lười :-P.

tôi thấy hype ở các nước phát triển thường mất vài năm mới đến VN. ví dụ như trào lưu blogging bùng nổ ở nước ngoài vài năm thì mới lan đến VN bằng sự xuất hiện của Yahoo! 360. rồi web 2.0, lùng bùng từ 2003-2004, đến tận 2006-2007 ở xứ mình mới manh nha vài công ty và cá nhân nói và bàn về web 2.0. và bây giờ là cloud computing.

trào lưu nói và bàn về cloud computing bùng nổ trên thế giới khi amazon ra mắt dịch vụ amazon s3 vào tháng 3/2006. và bây giờ, tháng 8/2009, ở VN bắt đầu có nhiều người nói và bàn về cloud computing.

cứ theo cái đà này, tôi dự đoán chắc khoảng 2-3 năm nữa, các dịch vụ micro-blogging như twitter, các dịch vụ location-based gắn với điện thoại như Loopt hay các công nghệ như document-oriented database như CouchDB, MongoDB hay NoSQL mới bắt đầu được bàn tán nhiều ở đây.

nói nhảm đủ rồi, giờ quay về chủ đề chính là cloud computing nha.

------

tôi bắt đầu sử dụng amazon s3 cũng như các dịch vụ khác của amazon aws từ khoảng cuối 2006 cho đến nay. tôi sử dụng amazon s3 để backup dữ liệu, sử dụng amazon ec2, amazon simpledb để thử nghiệm vài ý tưởng liên quan đến công việc cũng như kinh doanh.

có dạo tôi còn làm một cái search engine nho nhỏ để search nhạc, dùng amazon ec2 để tính toán và amazon s3, simpledb để lưu trữ dữ liệu. tôi cũng là core contributor cho dự án ThruDB, một dự án tiên phong về document-oriented database trên nền cloud computing. đề tài một thesis của tôi cũng là làm về document-oriented database. ngoài ra tôi cũng giới thiệu cloud computing và amazon aws cho nhiều người và công ty khác ở đây, ví dụ như vinapo, công ty phát triển cloud.vn.

tôi giới thiệu dông dài như thế là để chứng minh với người đọc rằng tôi biết về cloud computing. sở dĩ tôi cần phải làm thế là tôi quan sát có nhiều bạn đọc không quan tâm đến lập luận của tôi thế nào, mà chỉ chăm chăm "thằng này là thằng nào vậy". có vẻ như rất nhiều người cho rằng "authority = accuracy", nên tôi đành phải chiều theo số đông vậy.

-------

hôm rồi tôi có đi dự một cái hội thảo nói về cloud computing ở đây. bạn nào có theo đuôi tôi trên twitter thì cũng biết là từ trước khi hội thảo diễn ra, tôi đã tỏ ý nghi ngờ về việc có công ty ở VN đủ sức làm cloud computing.

trong mấy cái tweet của mình, tôi có nói đến cái ý: làm cloud computing khác xa với sử dụng cloud computing. khác ở đây là về độ khó. sử dụng thì rất dễ, ví dụ như tôi nè, chỉ vài dòng code là có thể xài được thôi. nhưng làm được là một chuyện không hề đơn giản tí nào. tôi có đưa ra lý do chính là không có người có đủ năng lực để làm.

làm sao để biết là VN không có người có khả năng làm cloud computing? trước tiên cần phải hiểu rõ là làm cloud computing là làm gì đã. tôi định nghĩa đơn giản thế này: làm cloud computing là lưu trữ và xử lý dữ liệu rất lớn cho rất nhiều người khác với chi phí nhỏ nhất.

để hình dung được chữ "lớn" và "rất nhiều" ở câu vừa rồi, bạn hãy thử tìm một công ty web startup tên tuổi (không thuộc các đại gia) mà _không_ sử dụng dịch vụ của amazon aws. twitter? có. dropbox? có. slideshare? có. cho đến hết tháng 3/2009, riêng amazon s3 đã lưu trữ 50 tỉ object, mỗi object tối đa là 5G.

thế còn "chi phí nhỏ nhất"? đây là điểm mấu chốt quyết định một công ty thành công hay thất bại khi làm cloud computing. tại sao các công ty lại thuê dịch vụ của amazon aws? đơn giản vì giá cả hợp lý. thay vì đầu tư rất nhiều tiền để làm data center, thì sử dụng dịch vụ của amazon aws sẽ tiết kiệm được rất nhiều tiền của và thời gian, và đạt được mục đích mong muốn rất dễ dàng: lưu trữ và xử lý một lượng cực lớn dữ liệu.

lý do thứ hai nhưng cũng không kém phần quan trọng khiến cho các công ty quyết định sử dụng các dịch vụ cloud computing của amazon, google hay microsoft: các đại gia này là những người làm hạ tầng tốt nhất thế giới. khó mà làm tốt hơn họ, nên xài của họ là tốt nhất. đây chính là lợi thế cạnh tranh cực lớn của amazon, google hay microsoft. cũng chính là nguyên nhân khiến cho 3 đại gia này độc chiếm thị phần public cloud computing service.

họ làm hạ tầng tốt nhất với chi phí thấp nhất thế giới. tại sao họ làm được điều đó? đơn giản vì đó là công việc hàng ngày của họ. công việc của amazon là chạy cái amazon.com. với google thì đó là google.com. còn microsoft là microsoft.com hay bing.com. tại sao ibm không làm public cloud computing service? tôi nghĩ một lý do là ibm không có kinh nghiệm trong việc vận hành một hệ thống có độ lớn tương tự như amazon.com hay google.com hay bing.com.

thế làm hạ tầng là làm gì mà khó dữ vậy?

thử tưởng tượng bạn có vài chục ngàn máy chủ, làm sao để nhét được hết chúng vào một cái data center mà vẫn đảm bảo đủ điện năng, máy lạnh, chống sét, chống ẩm và hệ thống mạng thông suốt với tốc độ lớn nhất có thể. sau khi đã giải được bài toán đó, bạn đụng tiếp bài toán thứ hai: ổ cứng của chúng như thế nào, RAM ra sao, CPU loại nào, card mạng ra sao. rồi quy trình quản lý, theo dõi, thay mới, sửa chữa...nói chung là vận hành cái data center đó thế nào. sau khi làm xong cho 1 data center, bạn cần phải nhân 3, nhân 5 lên nữa nha. rõ ràng muốn giải hai bài toán này với chi phi nhỏ nhất cần một đội quân làm phần cứng và data center hàng đầu thế giới.

nhưng đó chỉ mới là vấn đề phần cứng thôi. vấn đề phần mềm còn quan trọng hơn: chạy cái gì, như thế nào trên các máy chủ này? ví dụ như amazon s3, thiết kế và chạy cái đó ra sao, để người ta lưu 50 tỉ object vào mà vẫn không xi nhê gì hết. hay với google là lưu trữ toàn bộ thông tin trên Internet. rõ ràng muốn giải bài toán này một cách hiệu quả nhất thì cần phải có thêm một đội quân phd làm distributed system nữa nha.

rõ ràng chỉ có các đại gia như amazon, google hay microsoft mới có đủ tiền và động lực để nuôi các đội quân hàng khủng này. đó là lý do tôi cho rằng ở VN không có nhân lực có khả năng làm public cloud computing service.

------

quay trở lại hội thảo cloud computing mà tôi nói ở trên. tôi đánh giá cao việc tổ chức các buổi hội thảo như thế này, bởi bản thân tôi cho rằng cloud computing là một loại hình dịch vụ mà các doanh nghiệp ở VN nên tìm hiểu để có cái nhìn toàn cảnh khi đề ra chiến lược phát triển hệ thống thông tin.

tôi đến trễn nên chỉ nghe được 04 bài nói chuyện sau.

bài đầu tiên là của một anh bên ibm. bài này thì chủ yếu là sales, nên cũng không có gì đáng để nói. àh có một chỗ cần lưu ý, nhiều bạn nghe bài này nhầm tưởng rằng VN mình cũng làm được cloud computing, nhưng thực ra đây là công nghệ của ibm, họ đem qua để bán thôi.

bài thứ hai là của bạn Ngôn. bài này thì tôi nghĩ là phù hợp nhất cho hội thảo này. nên có nhiều bài nói chuyện thế này để mọi người thấy được lợi ích của việc sử dụng cloud computing.

bài thứ ba nói về kỹ thuật sandboxing để "kèm kẹp" các ứng dụng chạy trên cloud service theo hình thức "platform as a service" như google app engine và cloud.vn. bài này là một thảm họa. bạn trình bày không có kỹ năng trình bày và có cảm giác bạn ấy cũng rất lơ tơ mơ về đề tài mà bạn ấy đang nói. ở bên dưới thì tôi xác nhận cái cảm giác này là sự thật.

bài thứ tư nói về một "platform as a service" là cloud.vn của bạn PhươngCSA. bài này thì bạn PhươngCSA thể hiện được sự nhiệt tình của bạn ấy. nhưng đồng thời nó cũng chứng minh được rằng bạn ấy và các cộng sự không hiểu được làm cloud computing là làm gì.

theo thông tin của bạn PhươngCSA thì cloud.vn được chạy trên 6 máy chủ mà vinapo thuê rồi đặt tại data center của VDC, bởi theo ý bạn PhươngCSA "làm cloud computing là đi thuê lại". nội cái này thôi thì thấy đã có rất nhiều ngộ nhận.

nếu bạn theo dõi ngay từ đầu, bạn sẽ thấy tôi nhấn mạnh đến chi phí hiệu quả là một trong những yếu tố quyết định sự thành bại của một nhà cung cấp dịch vụ cloud computing. bởi vì nếu doanh nghiệp tự làm data center và các hệ thống phần mềm kèm theo để lưu trữ và xử lý dữ liệu thì sẽ tốn nhiều tiền hơn, nên họ mới thuê lại để tiết kiệm chi phí và rút ngắn thời gian.

công ty làm cloud computing phải là công ty làm được data center và các hệ thống phần mềm kèm theo với chi phí thấp nhất so với các khách hàng của họ. nếu cloud.vn đi thuê lại của VDC, thì tại sao doanh nghiệp không thuê trực tiếp máy chủ và đường truyền của VDC luôn cho nó rẻ? hay là thuê của Amazon.

"nhưng cloud.vn làm sẵn website, template cho doanh nghiệp luôn mà?". chúng ta đang nói đến dịch vụ cloud computing, chứ không phải dịch vụ thiết kế website cho doanh nghiệp. doanh nghiệp mà cần người khác thiết kế rồi làm website cho thì doanh nghiệp đó cũng chẳng cần phải sử dụng cloud computing làm gì.

ngoài các công ty web startup ra, những khách hàng nào là khách hàng tiềm năng của dịch vụ cloud computing? những khách hàng cần có nhu cầu lưu trữ và xử lý dữ liệu lớn, ví dụ như các ngân hàng, các tập đoàn kinh tế lớn. mà nếu họ đã có nhu cầu đó, thì họ chẳng cần phải nhờ một công ty khác làm giùm website cho họ.

"nhưng cloud.vn còn làm sẵn cả kiến trúc hệ thống để giúp cho doanh nghiệp có thể mở rộng website ra bất kỳ lúc nào mà?". có thật sự như thế không?

thứ nhất, không có cơ sở để tin rằng các bạn cloud.vn hay vinapo có kiến thức vững chắc về hệ thống phân tán. không có ai trong số các bạn ấy có bằng tiến sĩ về lãnh vực này cũng có thể là một lập luận. nhưng điều quan trọng hơn, là những gì các bạn ấy làm là đều dựa trên các tài liệu đã công bố của google về hệ thống của họ. cần phải phân biệt giữa "đọc hiểu sơ sơ" và "sáng tạo ra được".

thứ hai, không có cơ sở để tin rằng các bạn đó có kinh nghiệm trong việc thiết kế hệ thống phân tán. nhắc lại ý bên trên: sở dĩ amazon có khả năng làm cloud computing là vì họ đã làm việc đó hàng ngày, đó là công việc của họ. nếu như các bạn cloud.vn hay vinapo là những người làm ra vnexpress chẳng hạn, tôi sẽ tạm tin là các bạn ấy có kinh nghiệm trong việc thiết kế hệ thống có khả năng phục vụ nhiều người cùng một lúc. có dịch vụ hay phần mềm nào của các bạn ấy đã và đang được rất nhiều người sử dụng không? hình như là không.

nhưng hai lập luận ở trên của tôi cũng chỉ là những suy luận mà thôi, rất có thể các bạn cloud.vn hay vinapo hay vdc là những người rất am hiểu và làm rất tốt về hệ thống phân tán. thời gian sẽ chứng minh. nhưng có một điều mà tôi có thể chứng minh ngay.

sau khi nghe trình bày về cloud.vn, tôi có thử sử dụng dịch vụ này. kết quả là vì tò mò mà tôi đã vô tình làm treo toàn bộ hệ thống cloud.vn của các bạn ấy chỉ với 1 dòng mã python. còn có một bạn khác thì đã đi thẳng vào được cơ sở dữ liệu của cloud.vn. tôi tin là nếu muốn thì bất kỳ ai có chút hiểu biết về an toàn thông tin cũng đều có thể làm treo hay phá hủy toàn bộ hệ thống cloud.vn và megaweb.

"nhưng mấy cái này là vấn đề an toàn thông tin thôi, đâu có liên quan gì đến cloud computing, vả lại các bạn cloud.vn cũng đã nói là họ đang trong quá trình xây dựng mà?". an toàn thông tin, nhất là đối với cloud computing, khi mà dữ liệu khách hàng nằm trong tay của nhà cung cấp dịch vụ, không thể là dạng tính năng "chưa phát triển, để làm sau". chuyện gì sẽ xảy ra nếu như bây giờ một ai đó xâm nhập vào cloud.vn, cấy mã độc vào chương trình của họ?

tại sao google app engine có thể "sandboxing" được các ứng dụng python chạy trên đó rất dễ dàng, còn cloud.vn thì không? đơn giản vì Guido van Rossum, người tạo ra Python, làm việc cho google. như đã nói ở trên, chỉ có google mới có đủ tiền thuê các tay cỡ như Guido và các tay cỡ như Guido cũng chỉ muốn làm cho các công ty như google, nên chỉ có google mới có đủ người để làm cloud computing.

đây cũng là điểm mấu chốt mà tôi đã nhắc đi nhắc lại từ đầu bài: VN không có nhân lực (và tiền) để làm cloud computing.

----

những lập luận trên đây không nhằm để chỉ trích cloud.vn hay bất kỳ cá nhân nào. điều tôi muốn chia sẻ là cloud computing là sân chơi của các đại gia hàng đầu thế giới, các doanh nghiệp ở VN chỉ nên nghĩ đến cách tận dụng các dịch vụ này, hơn là phát triển các dịch vụ cạnh tranh.

19 comments:

ANP said...

"nhưng cloud.vn làm sẵn website, template cho doanh nghiệp luôn mà?". chúng ta đang nói đến dịch vụ cloud computing, chứ không phải dịch vụ thiết kế website cho doanh nghiệp"

Đồng ý với câu này, cái cloud.vn làm gợi lại những năm tháng xa xưa của Geocities , hay Web Builder ...

ePi.Longo said...

Rất đồng ý với Thái. Từ hồi đi dự cái CTO Conf của IDG và cũng nghe bác ở IBM nói chuyện về cloud, mình đã đặt câu hỏi liệu chăng cloud có phải là một marketing term/advertising term tiếp theo hay không. Bản thân Việt Nam còn có rất ít (ko dám nói chưa có vì mình ko biết hết) các Data Center đạt chuẩn của các doanh nghiệp (để sử dụng với nhu cầu thông thường - ko sử dụng cho chính phủ), cho thấy kinh nghiệm làm DC của VN còn rất ít, nay lại định nhảy cóc lên tiếp hay sao?
DC và IDC cũng đã được nói đến rất nhiều trong khoảng 7 năm gần đây nhưng ko ăn thua, nay rồi có lẽ sẽ tiếp tục là mấy bạn bán hàng nhảy ra nhảy vô mà thôi. Phải thực tế, phải thực tế!

Ban Nguyễn said...

Mình biết đến cloud computing chủ yếu là qua đọc sách, và trong những cuốn sách đó, họ đều nhấn mạnh 2 điều mà Thái nói: "Cơ sở hạ tầng" và "Nguồn nhân lực", để giải quyết bài toàn "đem lại một hệ thống có khả năng phục vụ cao nhất với chi phí thấp nhất". Sẽ rất bất ngờ nếu có ai đó vào đây và chỉ ra được ở blog trên Thái nói sai cái gì?

Đặt giả thuyết là chúng ta có tiền thuê, cho nhân tài, thì cũng còn một vấn đề nữa là làm cái đó cho ai, phục vụ cái gì. Những đối tượng khách hàng mà cái CCC đó đang nhắm tới, họ đâu có cần cloud computing?

Lương Duy Hoài said...

Bài viết của anh Thái hay quá.

Bài thứ ba nói về kỹ thuật sandboxing <-- bài này đúng thật là thảm họa.

Phần trước khi anh Thái đến là bài của thầy Thoại Nam khoa mình, nhiều người đánh giá phần của thầy không có ý nghĩa trong buổi này ... theo em hiểu thì đó là vì họ đều lầm tưởng như anh nói bên trên. Riêng em đánh giá bài nói chuyện của thầy là cao (có điều cũng quảng cáo cho BKHCM nhiều quá :D ) Mọi người có lẽ chưa hiểu ý của thầy ở đây là nhân lực của VN chúng ta chưa đủ khả năng tự xây dựng CC services và muốn làm được điều đó thì ít nhất phải đẩy mạnh đào tạo nguồn nhân lực từ các môi trường đại học...

Em cũng tham gia nhóm research về Cloud computing của thầy trong khoa và với tầm nhìn hạn hẹn của mình cũng thấy được rằng để tiếp cận CC thì cần có lượng kiến thức rất lớn về Parallel Processing, Grid Computing, Distributed Systems, Operating Systems ...
Để có được nguồn nhân lực có đủ lượng kiến thức như thế thì quả là bài toán lớn của đào tạo.

Tuy nhiên vẫn ủng hộ những hội thảo như vầy vì nó gắn kết cộng đồng công nghệ lại với nhau hơn và từ đó mới phát sinh ra nhiều vấn đề đề lại gặp nhau và giải quyết :d.

Nguyễn Thoại said...

Nice post. Thanks.

Kucku said...

Đồng ý là phần "product positioning" của cloud.vn hơi có vấn đề. Nhưng Kucku nghĩ cũng không sao. Lúc sản phẩm mới ra và khái niệm còn mới thì có chút trục trặc vẫn OK.

Vấn đề mình muốn nói ở đây là nhân lực và khả năng hiện tại ở VN. Nếu cloud.vn thiệt sự là "build from scratch" mà ở "Infrastructure level" thì coi bộ hơi khó à. Không phải mình nói nhân lực VN thấp kém hay gì. Người khởi đầu ý tưởng này rất có ý chí và đây cũng là điều nên làm. Cái mà Kucku không hiểu ở đây là tại sao phải dựng lại từ đầu mà sao không dựa trên "infrastructure" đã có sẵn của Google App Engine hay Amazon. Bộ giá Data Center ở VN rẻ hơn nhiều hay sao ta? Vì theo mình được biết, Google, Amazon và rồi Microsoft từ từ sẽ có Data Center ở Asia (Singapore/Vietnam/China) để hỗ trợ cloud & CDN. Như vậy bước làm infrastructure này rồi trước sau gì cũng có sẵn cho người VN thôi. Bây giờ dựng lên cái này cững chưa hẳn cloud hòan tòan, vì mình còn không biết Service Level Agreement (SLA) ra sao nữa. Nói chung rất mạo hiểm nếu mình là khách hàng.

Long Nguyen Hai said...

Bài viết của anh hay lắm.
Trong fever của em, bài viết này lên 37.7 độ đấy :D
Thanks.

anhn said...

Nếu cloud "build from scratch" thì nói đúng ra là không thể kiếm người làm được nhưng nếu dùng một open source cloud platform như Nimbus chẳng hạn, thì mình vấn đề chỉ còn là đọc hiểu tài liệu hướng dẫn và chỉ cần có kiến thức cơ bản, không nhất thiết chuyên sâu về cloud computing.

huu nhan said...

Dùng nimbus rồi hệ thống của bạn biến thành 1 cái beowulf hả. Nếu bạn có thể lập trình cải tiến nimbus thì không nói làm gì, còn đọc tài liệu mà xây dc cloud thì chắc để host web quá :D

hatza700 said...

Bài viết của anh rất hay. Nhưng cloud computing không phải là cuộc chơi chỉ dành riêng cho các đại gia. Vẫn còn nhiều công ty ko to như Google, Amazon, hay MS,... vẫn tham gia cuộc chơi nay. Không nhưng chỉ chơi, họ còn là những tay chơi cừ nữa!

anhn said...

Hiện nay có gogrid.com đang vươn lên rất tốt, khả năng sẽ cạnh tranh được với amazon ec2 đấy. Chờ 1 thời gian chắc sẽ có kết quả.

huu nhan: hình như bạn đang nói đến cái nimbus nào đó chứ cái mình biết (và để link ở đó) thì để xây dựng giải pháp IaaS chứ không phải beowulf, và nó đang tăng cường khả năng tương thích với amazon ec2. Hãy khoan nói đến chuyện làm tốt hay không, tôi chỉ đang nói vấn đề làm nó chạy được. Còn muốn có một chất lượng tiêu chuẩn thì tất nhiên lại phải đầu tư về con người và hạ tầng, quay trở lại vấn đề mà bài viết đã nói.

huu nhan said...

Uh đúng rồi, do mình xem chưa kỹ, Srr mọi người. Quay lạu vấn đề chính, con người và hạ tầng mới là quan trọng, có lẽ chỉ có những công ty lớn, đại gia hoặc chính phủ mới đủ khả năng tham gia cuộc chơi này.

Anonymous said...

"kết quả là vì tò mò mà tôi đã vô tình làm treo toàn bộ hệ thống cloud.vn của các bạn ấy chỉ với 1 dòng mã python. còn có một bạn khác thì đã đi thẳng vào được cơ sở dữ liệu của cloud.vn"

Tác giả có kiến thức về cloud computing. Tuy nhiên có đoạn trên làm mình khá ngạc nhiên. KHông biết tác giả muốn show-off technical skills của mình hay làm treo hệ thống của người khác là một điều bình thường ở Việt Nam. Điều này cho thấy là law enforcement và administrative control trong vấn đề bảo mật ở Việt Nam còn quá kém.

thaidn said...

@Anonymous:

Có 2 chỗ mình nghĩ bạn chưa rõ:

1. Trong buổi giới thiệu về hệ thống này, các bạn ở Vinapo có đưa ra ý kiến là hệ thống của các bạn ấy còn rất mới, nên muốn nhờ mọi người kiểm thử.

2. Cách làm của vinapo là host và chạy ứng dụng từ một bên thứ 3. Mình chỉ viết một ứng dụng bình thường, đưa lên chạy thử trên hệ thống của vinapo, ai ngờ nó crash.

-Thái

BaoBoi said...

Bài viết của anh rất hay!!!!!!!!!!!!!!!
Anh Thái cho em xin mail or nick yahoo của anh để em hỏi thêm về CLoud Computing nhé. Em đang học về Cloud Comp và rất cần được giúp đỡ... em cảm ơn anh. Mail của em là: phuongnguyen0203@gmail.com

truc said...

Very well written. I learned quite a few things reading your blog. Thanks.

Ricky said...
This comment has been removed by the author.
Ricky said...

Tôi chưa có biết nhiều về CC, và đang tập tành xài thử Amazon EC2, nếu có thời gian, bạn Thái vùi lòng chia sẽ kinh nghiệm về khoản này.

Thanks bài viết của bạn
ricky.ngk@gmail.com

Chris Tran said...

Vấn đề nằm ở chỗ này: "làm cloud computing là lưu trữ và xử lý dữ liệu rất lớn cho rất nhiều người khác với chi phí nhỏ nhất". Sẽ có nhiều người không có cùng quan điểm với Thái, nhất là ở chỗ "dữ liệu rất lớn" (có thể hiểu nôm na như dữ liệu của các banking, hay các tập đoàn đa quốc gia,...). Tôi cũng không nghĩ cloud.vn nhắm đến các đối tượng khách hàng này khi xây dựng cloud.vn. Cứ làm, rồi sẽ học được nhiều điều, hy vọng một ngày không xa, cloud.vn thật sự hiểu rõ cloud computing là gì, và xây được một cloud có thể "lưu trữ và xử lý dữ liệu rất lớn cho rất nhiều người khác với chi phí nhỏ nhất" của khách hàng.