Cách devOps cấu hình hệ thống web từ đầu đến cuối

Chào mọi người !
Hôm qua em có dự buổi bảo vệ đồ án tốt nghiệp tại trường em. Ngồi nghe anh chị nói về đồ án website làm bằng AI, Machine Learning, Deep Learning , áp dụng Blockchain, Big Data, … làm em hoa cả mắt. Hội đồng chờ báo cáo xong có Thầy chốt một câu (em tóm tắt khúc quan trọng) : "Tôi không quan tâm AI, Blockchain, Machine Learning, … gì ở đây. Bây giờ tôi có 3 cái laptop (trên bàn có 3 cái thật), Tôi cho 3 em 10 phút, chỉ cần làm sao cho 1 cái chạy database, 1 cái chạy web server, 1 cái mở browser lên vào được web thì tôi chấm điểm tiếp, chỉ cần trả lời làm được hay không! Còn không thì về học lại cho cứng.

Nghe xong em cũng thấy nhột :laughing::laughing::laughing:
Theo em thì trường hợp này xử lý bằng cách :
1/ cho 3 cái lap vào 1 mạng LAN mở Public IP cả 3 cái (như ghép 3 máy thành 1, mô hình peer to peer) rồi cái này truy cập qua cái kia bằng IP đó.
2/ Dùng mấy app mở tunnel như Ngrok, … cho public cái localhost lên internet.

Không biết mọi người có ý kiến gì không ?

2 Likes

có đòi phải kết nối db đâu, python -m http.server là xong :smiling_face_with_three_hearts:

mà cái lap ko có sẵn mysql/sqlserver v.v… đố ông 10’ chạy db được :V 10’ thì cũng toàn ăn sẵn chứ có biết gì đâu :V

tự dưng đem cái ổng biết khè cái người ta ko cần biết :V Khác gì kêu toán học gia ko biết cấy gene cho vi khuẩn là dốt :V

9 Likes

IT ở VN là nghề thực hành chứ không phải khoa học máy tính nghiên cứu. Bạn dự đoán như vậy thì mượn máy tính bạn bè làm thử ngay và luôn, được hay không biết ngay. Chứ ý kiến ý cò gì cũng vô ích. Nếu nói ý kiến mình làm như thế này:

  • Đầu tiên là lắp thêm card mạng cho ba máy kia để không phục thuộc vào switch, chơi mô hình peer to peer đúng nghĩa luôn :smiley: mặc định máy có một card mạng nên 3 máy thì bó tay.
  • Đặt IP và ping xem thông mạng chưa
  • Cài mỗi máy một ứng dụng theo yêu cầu trên 2 máy, máy còn lại chắc chắn đã có browser.
  • Cấu hình ứng dụng web để trỏ vào IP của máy có database.
7 Likes

Vậy tóm lại đã chấm điểm chưa :v

2 Likes

Tôi cho 3 em 10 phút, chỉ cần làm sao cho 1 cái chạy database, 1 cái chạy web server, 1 cái mở browser lên vào được web thì tôi chấm điểm tiếp, chỉ cần trả lời làm được hay không! Còn không thì về học lại cho cứng.

Làm được, cũng đơn giản.
Giả sử cả 3 máy đều dùng windows.

  • Tại máy 1, 1 bạn cài XAMPP, bật MySQL lên.
  • Tại máy 2, 1 bạn cài XAMPP, Bật Apache lên.
  • Tại máy 3, 1 bạn bật browser lên, truy cập vào DNH

Vậy là đáp ứng được yêu cầu :slight_smile:

Còn nếu thầy muốn máy 2 đọc DB của máy 1, máy 3 vào web của máy 2.
Thì lúc đó phải tính thêm thời gian xác định mục đích, tính năng, đặc tả của trang web.
Phải có tính năng gì đó, và tính năng đó có dùng DB thì mới cần liên kết DB.
Muốn làm gì cũng phải có mục đích.

Mặc dù thật ra là em hiểu ý thầy, nhưng em cảm thấy thầy chưa suy nghĩ đủ sâu khi đưa ra yêu cầu này, có cảm giác chỉ là “nói thách”.

À, nhưng trong trường hợp này, có thể sử dụng kỹ năng đàm phán để kéo thêm thời gian.
VD:

Vâng ạ, em nghĩ là em làm được.
Nhưng mà thầy có thể nói chi tiết hơn về yêu cầu của trang web không ạ?
Nếu thầy không có yêu cầu gì đặc biệt thì em sẽ làm tính năng XXX để demo.
Và để làm tính năng này thì sẽ cần thêm 20 phút.
Vậy chúng em sẽ làm trong 30 phút được không?

Mình nghĩ nếu team đó tự tin, và có khả năng đàm phán như trên,
thì thầy có thể sẽ trả lời như sau

Không cần làm nữa, tôi hỏi vậy thôi. Các anh trình bày tiếp đi.

Câu hỏi của thầy nếu suy nghĩ theo một chiều hướng khác thì nó khá hay,
tùy vào câu trả lời của sinh viên mà có thể đánh giá được nhiều điều.

Tuy nhiên liệu thầy có đang nghĩ theo chiều hướng đó không? Hay chỉ là “nói thách” cho vui?
Chúng ta sẽ không biết được điều đó.

Túm lại, câu hỏi này của thầy chưa chắc 100% nói về kỹ thuật,
kỹ thuật setup (thật ra ai cũng làm được nếu có thời gian) chỉ là tiêu chí đánh giá đầu tiên,
còn các tiêu chí đánh giá khác nữa được ẩn trong câu hỏi.
:smiley:

8 Likes

Theo mình nghĩ thì ý ông thầy là “hãy học những cái cơ bản trước rồi mới tới mấy cái cao siêu”, thầy không bắt phải set up 3 máy tính nhưng kiểu như hỏi việc cơ bản này có làm được hay không (vì những công việc này ai làm web cũng đều phải làm được còn AI, Blockchain, … đâu phải web nào cũng có), kiểu kiểu như phải nắm chắc mấy cái cơ bản trước đã rồi hãy nghĩ đến AI, deep learning, blockchain, … mình nghĩ là vậy.

10 Likes

câu hỏi của thầy bạn là về system. không chứ liên quan devops.
đồng ý với coder tập sự. thầy hỏi vậy ý muốn là các anh chị làm to làm lớn làm gì? trong khi hệ thống như trên có xây được chưa. vì hệ thống ai blockchain là hệ thống lớn và phức tạp chứ không phải code xong là tự nhiên nó chạy được.

6 Likes

theo mình thì

  1. check thử 3 máy có kết nối với nhau qua mạng gì không (internet,lan) , nếu có kết nối thì dễ , còn không thì phải cấu hình ip tĩnh , 1 máy làm dhcp rồi cho các máy khác kết nối vào
  2. xong thì cái máy database xem thử cài hệ quản trị gì , sql thì enable cho nó remote , mysql thì cũng vậy cho phép remote , tắt tường lửa
  3. máy server chỉ cần chạy cái webserver , cấu hình ip/port của máy database , rồi cho nó chạy
  4. máy còn lại truy cập đến ip/port đã mở của máy server

p/s tất cả thứ mình nói dựa trên kinh nghiệm của mình thôi , ở nhà mình dùng mysql làm database rồi viết 1 webserver đơn giản úp lên heroku , ở heroku kết nối đến database ở nhà , network ở đây là internet …

3 Likes

Có lẽ thấy SV đi mây về gió khiếp quá nên mấy thầy muốn SV quay về mặt đất ấy mà.

Gì chứ từng phải cài đặt hệ điều hành và bộ Visual Studio cho những ông viết code (mấy ông này không tệ vì viết ra được ứng dụng để đếm người ra vào bãi gửi xe dựa trên input là video clip) là mình biết có nhiều kiểu. Một số tay viết phần mềm rất tốt nhưng lại chỉ biết mỗi một món đó thôi thì cũng phải có team hỗ trợ nhau.

Mình có ông bạn rất giỏi mấy món văn nghệ, nhạc nhẽo thì dễ vô cùng, nghe bài hát rồi ngồi tọc tạch một chút là đánh đàn được mà không cần phải có bản nhạc. Nhưng với thể thao, anh ấy bó tay toàn tập, khi chơi đá banh, anh ấy đá không trúng bóng đến 7/10 lần bóng tới.

Túm lại là có 3 dạng sau

  1. Thích & biết làm cái cao siêu nhưng máy tính khởi động lên không được, web server không chạy thì không biết tự làm gì tiếp theo.
  2. Sợ những cái cao siêu nhưng những cái bình thường làm rất nhanh, rất tốt
  3. Cái gì cũng nói là biết nhưng bảo làm thì làm như… mèo mửa

Ngoài ra còn có dạng 4, 4’ gì đó là từng kinh qua 3 dạng trên nhưng lại không còn theo sát kỹ thuật mà lên làm quản lý hay gì gì đó dẫn đến không hề biết rằng ngày nay đang ngồi quản lý đám robot mà cứ nghĩ đang làm việc với con người :smiley:

5 Likes

10’. Không chuẩn bị thì không làm được đâu nhé.
Thường sinh viên làm cũng chăng tìm hiểu phải deploy như thế nào. thường mở IDE lên rồi start chứ biết chứ gi đâu.
Ông thầy chắc làm chuyên về operator :v

6 Likes

Vậy tóm lại là “Cấu hình máy chạy demo trên locahost cũng không được thì AI, blockchain, machine learning cái giề”. Hihi :joy:

4 Likes

chuẩn này , nội setup mạng để 3 máy liên kết với nhau phải chuẩn bị các soft rồi cài đặt nữa , nếu đã được chuẩn bị từ trước và từng setup vài lần thì may ra chứ chưa setup lần nào thì có mà mò =))

Liên quan gì đến public IP đâu. Giả sử máy A cài database, máy B cài web server, máy C có browser thì thực ra là:

  • Web server trong máy B kết nối vào database trên máy A.
  • Trình duyệt của máy C mở website do server trên máy B tạo ra.

Tất cả chỉ dùng địa chỉ IP nội bộ (trong mạng LAN) thôi. Với một người làm web bài bản thì việc này dễ, vì trong khi làm việc, 3 thứ này họ đều phải cài và làm việc với nó rồi, chỉ là cài tất cả trên cùng một máy. Khi tách ra thành 3 máy như vầy thì chỉ có thay đổi mỗi 3 cấu hình:

  • Cấu hình database để cho nó chấp nhận kết nối từ bên ngoài. Một số loại DB (ví dụ PostgreSQL), cấu hình mặc định là chỉ chấp nhận kết nối từ phần mềm trên cùng máy (localhost) nên mới phải có bước này.
  • Cấu hình web server để trỏ qua DB trên máy khác (bình thường khi làm việc thì nó trỏ vô localhost).
  • Cấu hình web server để nó nghe trên mọi network interface (bình thường khi làm việc thì nó chỉ nghe trên 127.0.0.1).

Trên Windows thì cài mấy phần mềm này mới lâu (vì thường mấy bạn Windows xài MS SQL, IIS), chứ trên Linux thì cài dễ, phần lớn thời gian là chờ download các gói thôi.

2 Likes

public IP mới dễ kết nối đó bạn, không cần cấu hình gì hết. VD : public server databse thì lấy URLconnection để kết nối giống chỉ cần nhập servername, username, password như thuê của mấy server online.

Nếu DB nằm trên cùng một máy thì cấu hình lại càng dễ hơn vì có cách chỉ cần điền tên database, không cần điền server name, username, password gì luôn.
Lúc đấy URL để kết nối chỉ cần là postgres:///databasename (đọc thêm: https://quan.hoabinh.vn/blog/2015/10/22-truy-cap-nhanh-giao-dien-dong-lenh-cua-postgresql)

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?