Cloud Computing — Những điều bạn “nên” biết
Đây là bài viết đầu tiên của mình nhằm chia sẻ các vấn đề về kỹ thuật. Mình sẽ nói về “điện toán đám mây”. Một thuật ngữ không thật sự là mới. Nhưng chắc hẳn nhiều bạn, nhất là các bạn sinh viên vẫn muốn biết đến.
Bài thuyết trình này cũng là bài thuyết trình có số vote cao thứ nhì tại Barcamp Saigon 2013. Sau bài thuyết trình nói về Marketing Secrets for Tech Entrepreneurs của Chris Forrest Harvey
Như đã nói trong trang 2 của slide. Đối tượng chính mà mình muốn hướng tới là newbies. Các bạn có thể thảo luận thông qua hệ thống Disqus ở bên dưới.
Cloud Computing
Nói đến điện toán đám mây thì mình chia ra làm 3 tầng. Tầng Software, Tầng Platform, Tầng Infrastructure. Và thuật ngữ của 3 tầng này là SaaS, PaaS, IaaS.
Đã gọi là mây, tức là hầu hết mọi thứ các bạn sử dụng đều được thiết lập, cài đặt và cấu hình từ xa. Và thường phân tán ra rất nhiều nơi trên thế giới.
Mình đi theo hướng từ dưới lên, từ tầng IaaS. Tầng này nói đến cơ sở hạ tầng bên dưới nhằm phục vụ hầu hết các như cầu của doanh nghiệp, tổ chức. Nổi tiếng nhất hiện này và AWS (Amazon Web Service) được thành lập từ năm 2006 bởi tập đoàn Amazon (Quá nổi tiếng nên hầu như mọi người đều biết).
Tiếp đến là tầng PaaS. Nơi mà sẽ cung cấp cho các bạn các nền tảng phần mềm, chủ yếu là hệ thống quản lý để các bạn có thể xây dựng, thiết lập, cài đặt các phần mềm của các bạn. Mình thì thường hay sử dụng Heroku, vì nó đơn giản, dễ sử dụng, nhiều add-on rất hữu ích.
Tầng SaaS. Đây là tầng mà các bạn trực tiếp sử dụng nhiều nhất. Hầu hết những gì bạn đang sử dụng như Google Drive, Dropbox, Evernote, Gmail, WordPress.com… đều là những SaaS. Chỉ có điều là cách họ kiếm tiền từ bạn có thể khác nhau mà thôi.
Tiếp đến mình xin giới thiệu các công cụ cho những bạn mới làm quen với Cloud Computing để dễ dàng tiếp cận nó hơn.
Tools
tmux: Một terminal multiplexer nổi tiếng nhất hiện nay. Đơn giản là nếu bạn muốn chia đôi một của sổ SSH khi đã đăng nhập vào server. Bạn phải đăng nhập lại vì nếu các bạn new tab cho một terminal, xem như các bạn đã thiết lập một session mới. Còn nếu sử dụng tmux thì đều đó không còn nữa. Vì tmux đã chạy trên chính server đó rồi.
fish: Một shell thú vị. Nó có thể nhắc lệnh và làm cho cái shell của bạn dễ dùng hơn vì các tính năng hightlight.
zsh: Tương tự như fish nhưng mạnh mẽ hơn và nhiều theme. Hỗ trợ tốt hiển thị thông tin branch trong một git repository
vim: Là một text editor chạy trên môi trường terminal. Rất mạnh mẽ.
keepass: Tại sao mình liệt kê nó vào đây vì nó là một ứng dụng giúp bạn nhớ password. Điểm hay của nó là database được xuất ra một file. Các bạn có thể sử dụng nó mọi nơi mà không phụ thuộc vào internet như lastpass
Ngoài ra mình còn giới thiệu trong slide về Amazon S3, Amazon EC2và cách hoạt động của Heroku.
Và còn nhiều tools khác nữa.
Lưu ý
Những điều các bạn cần lưu ý
Khi muốn sử dụng một ngôn ngữ nào hay một hệ thống cloud nào. Các bạn cần lưu ý những điều sau.
Programing Language
Đây là phần rất quan trọng và cốt lõi cho một hệ thống, Nó tương tự như hệ thống cơ bắp trong cơ thể chúng ta vậy. Ứng dụng của bạn chạy nhanh hay chậm, tính ổn định của hệ thống cũng phụ thuộc rất nhiều vào đặc tính này.
Mình chia ngôn ngữ lập trình thành hai nhóm.
Nhóm cho frontend và nhóm cho backend
Backend
- Ruby with Rails, Sinatra…
- Python with Django…
- Node.js with Express…
- PHP with Slim, Yii, Codeiginter
- Java with Playframework or Grovy
- .NET with C# or F#
Frontend
- HTML5/CSS3
- SASS
- Ruby with HAML
- Twitter Bootstrap
- Backbone.js… more here http://todomvc.com
Database
Đây là hệ thống chứa toàn bộ CSDL của ứng dụng. Có thể một ứng dụng sử dụng nhiều hệ database khác nhau tùy thuộc vào nhưu cầu và đặc điểm của từng module cần sử dụng. Nhưng nó cũng ảnh hưởng rất nhiều tới tính nhanh nhẹn, mức độ bảo mật, đáp ứng của hệ thống.
Có hai phân hệ quản trị cơ sở dữ liệu hiện nay gồm NoSQL và Relations Database
NoSQL (Not only SQL)
- Key — Value
- Document
- Graph
- Big-Table
Relations Database
- Postgres
- MariaDb
- MySQL
Protocol
Có thể đây là phần mà ít ai nghĩ tới. Nhưng với sự phát triển của công nghệ như hiện nay, khi mà những thiết bị cầm tay xuất hiện ngày càng nhiều và càng mạnh mẽ. Thì các bạn cũng nên chú ý tìm hiểu thêm về từ khóa này.
Để giao tiếp với các thiết bị thông qua Internet. Có rất nhiều cách. Nhưng cách vẫn đang được sử dụng rộng rãi và nhiều nhất là qua giao thức HTTP sử dụng RESTful
Logging
Khi còn là sinh viên, mình cũng thường rất hay bỏ quên điều này khi viết một ứng dụng. Nhưng nó chính là thứ giúp bạn kiểm soát tốt nhất hệ thống của bạn nhằm phát hiện lỗi, Phát hiện những lỗi logic dù có thể rất nhỏ nhưng sẽ ảnh hưởng nhiều đến ứng dụng của bạn. Các bạn có thể tự viết một module quản lý Logging cho hệ thống kết hợp với sử dụng các Logging SaaS
Monitoring
Sẽ nhiều người nhầm lẫn giữa Montoring và Logging. Monitoring là công việc nhằm giát sát, theo dõi hệ thống. Nó mang tính quản lý các con số và đáp ứng kịp thời để đảm bảo cho ứng dụng chạy tốt hơn. Hiện tại thì mình vẫn chỉ và chuyên dùng NewRelic.
Tổng kết
Tại sao mình đặt tựa đề là Some keyword you must know. Vì slide này mình focus vào các bạn mới làm quen với điện toán đám mây. Bằng cách xây dựng slide từ các keyword. Giúp các bạn có thể hệ thống hóa lại, và dùng các từ khóa này nhằm tìm kiếm, mở mang sự hiểu biết, kiến thức công việc cho các bạn.
I give keywords, You search and learn
Toàn là những ngôn ngữ xịn
Rails, .NET, PHP…
Các ngôn ngữ dành cho Backend
Software as a Service
Mình thật nhỏ bé
Tmux, Fish, Keepass
EC2 là dịch vụ mình thích nhất vì nghịch thoãi mái nhất.
Amazon Web Service nổi tiếng bởi EC2 và S3
Bắt đầu session
Mình tự hào là session có số vote cao nhì tại BarCamp 2013
Đây là năm diễn ra BarCamp tại RMIT Hồ Chí Minh ở tòa nhà mới.
Topic của mình được khá là nhiều vote
Qua quá trình đi học và đi làm mình đúc rút ra một kết luận là
Do more, read less
Code more, dreamless
Test from unit, don’t forget it