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

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 NoSQLRelations 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
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.