Environment (Môi Trường) trong lập trình là cái chi chi? – Code Dạo Dễ Òm
Hello các bạn! Mình là Tôi Đi Code Dạo. Chào mừng các bạn đã quay lại với Series Code dạo dễ òm nha.. Mấy nay mình không làm series này do các bạn chê chữ mình xấu quá n
Environment (Môi Trường) trong lập trình là cái chi chi? – Code Dạo Dễ Òm
Hello các bạn! Mình là Tôi Đi Code Dạo. Chào mừng các bạn đã quay lại với Series Code dạo dễ òm nha.. Mấy nay mình không làm series này do các bạn chê chữ mình xấu quá nên mình lên núi luyện chữ để chữ mình đẹp rồi thì quay lại làm series này tiếp nha. Hôm nay mình sẽ chém gió về cái gì ???. Mình sẽ chém gió về Môi trườngEnvironment. Đây là khái niệm rất phổ biến mà các công ty họ hay dùng. Để họ có thể thêm chức năng nè, fix bug, hoặc là sửa hệ thống nè mà không ảnh hưởng tới hệ thống đang chạy nha. Những bạn đi làm tầm nửa năm đến 1 năm khá là rành rồi. Còn những bạn nào là sinh viên thì hầu như không biết về nó luôn nên hôm nay mình chia sẻ về cái này nha. Đầu tiên, môi trường là gì?. Môi trường là tổng hợp từ phần cứng đến phần mềm, cho đến thiết lập, dữ liệu để mà hệ thống chạy được đàng hoàng nha.
Giả sử các bạn làm 1 trang web chiếu phim. Các bạn làm 1 trang tên là phimheo.com. Vừa chiếu phim vừa bán thịt heo chẳng hạn Vậy thì môi trường là gì? Để trang này chạy được thì bạn phải có 1 server có CPU nè, RAM nè Trên Server này bạn viết code bằng C#, Java, PHP, tạo ra trang web Các bạn phải có cơ sở dữ liệu chính là Database. Database này có thể là MySQL nè, MsSQL Khi người dùng vào thì CPU đọc dữ liệu từ Database và trả kết quả cho người dùng Ngoài ra các bạn cũng phải có code của trang web đó để bỏ lên cái server này Toàn bộ những thứ từ phần cứng cho đến phần mềm như C#, Java, etc xài trên này nè. Code của bạn, cho tới Database này.
Những thiết lập như database này ở đâu, connection như thế nào. Thì toàn bộ cái cục này gọi là môi trường. Tức là Environment ha!. Thông thường, các công ty phần mềm hoặc các dự án họ không dùng 1 môi trường mà họ dùng tới 3 môi trường. 3 môi trường đó là local, staging, môi trường cuối là production. Khi các bạn mới làm 1 dự án thì các bạn sẽ được hướng dẫn dùng môi trường luôn. Local trong máy, các bạn làm trang web phimheo.vn nha. Các bạn phải cài vào máy, cài trên laptop của các bạn. Các bạn phải cài đủ từ. Từ C# để code, cho tới MySQL. Toàn bộ các cục này để các bạn chạy trang web phimheo.vn tại máy của các bạn. Đó gọi là môi trường local. Môi trường này cho phép các bạn chỉnh sửa, thêm bớt, xóa sửa Database mà không ảnh hưởng đến ai hết. Các bạn thêm chức năng cũng là thêm trong môi trường này.
Khi các bạn commit code chính của nhóm thì deloy trên môi trường staging. Môi trường staging này là môi trường được dùng chung của cả team và nó có thể có 1 máy chủ thật sự. Có 1 DB thật sự luôn. Code sau khi đã thì nó sẽ nằm trên môi trường này. Môi trường staging dành cho anh em mà ghép code với nhau thì chạy trên môi trường này. Và có thể các bạn QA, PM, người ta sẽ vào môi trường này test trước khi lên các chức năng chính. Môi trường Staging này nó sẽ khá giống production, dùng những công nghệ gì, settings như thế nào. Môi trường staging cũng tương tự vậy. Khi có vấn đề, có thể test trên staging, trên local. Môi trường quan trọng nhất là môi trường Production. Đây là môi trường hệ thống hoạt động thực sự và người dùng vào sử dụng thực sự. Local là môi trường chỉ có bạn chạy trên máy bạn thôi. Staging chỉ có team bạn, bên QA, mấy bạn testers, người ta chạy. Hoặc là team bạn người ta dùng thôi.
Production là môi trường phục vụ cho hàng trăm ngàn người dùng. Nó là môi trường để host trang phimheo.com của bạn luôn. Trên môi trường này, ta có thể dễ dàng đưa code lên staging. Staging là môi trường nội bộ, ít người dùng.. Khi mà code đã test đầy đủ rồi, mọi người thấy code đã chạy ok rồi thì mới đưa code lên môi trường Production. Từ ngữ mà người ta hay nói là lên Production tức là đưa code lên Production để cho code nó chạy đó.. Môi trường này toàn bộ người dùng sử dụng, để hư hỏng 1 tý thôi thì nó sẽ ảnh hưởng rất là nhiều. Do vậy code trên này phải được check rất là cẩn thận rồi mới đưa lên. Giả sử trang phimheo.vn. Môi trường staging có dạng staging.phimheo.vn. Local thì có dạng localhost:7000 gì đó. Local có gì hay? Local thì các bạn có thể thoải mái code ở local nè không phải sợ chỉnh sửa code ở local sẽ ảnh hưởng tới trang phimheo.vn này.
Khi các bạn muốn ghép code, các bạn đưa code lên staging để test trước. Staging có database này nọ rồi, các bạn cũng không cần sợ nó ảnh hưởng đến trang phimheo.vn. Khi nào mà code chạy hoàn thành, ổn định rồi thì các bạn mới cho nó lên phimheo.vn. Đơn giản vậy thôi! ^o^/. Nói là vậy thôi, trên thực tế nó có những cái phức tạp như: làm sao để đảm bảo những thiết lập của các môi trường đều giống nhau. Trên Staging các bạn chạy C# 6.0, rồi dùng MySQL đời 5.0 chẳng hạn. Trong khi đó, ở Production các bạn chạy C# 4.0, MySQL đời cũ hơn chẳng hạn. Khi có vấn đề trên Production, các bạn không thể chạy lại trên Staging được. Do vậy người ta sẽ cố gắng cho các môi trường này tương đồng với nhau. Đó là lý do mà người ta thường dùng docker. Mình sẽ làm clip về docker sau nha. Với Docker, dùng 1 Docker Image đảm bảo cho các bạn khi dùng dockering. Phần mềm đảm bảo tương tự nhau giữa các môi trường staging, local.. bản chất giống nhau để test dễ hơn.
Liên quan đến môi trường thì nói cả ngày không hết :D. Về cơ bản nó rất là dễ nhưng mà khi hệ thống càng phức tạp thì môi trường càng phức tạp Các bạn tưởng tượng như facebook chẳng hạn. Môi trường Production họ có cả ngàn con servers chạy ở nhiều data center khác nhau. Và đống đó rất là tốn tiền. Các bạn không thể chạy trên staging cả ngàn con servers như vậy được mà các bạn chạy nhỏ hơn để đỡ tốn tiền Khi các bạn muốn test ở local, các bạn không thể chạy cả ngàn con servers ở local được. Các bạn chỉ có thể chạy được 1 phần của nó thôi Do vậy hệ thống càng lớn thì cái việc chạy môi trường càng phức tạp. Nhiều khi các bạn muốn tạo môi trường thì mất cả tuần, cả tháng đó Nếu các bạn làm dev, các bạn không cần quan tâm nhiều. Các bạn chỉ cần biết môi trường này làm cái gì?. Làm sao để thiết lập các môi trường? Môi trường có những biến môi trường gì? vv..
Các bạn đi làm về SysAdmin và DevOps thì việc thiết lập môi trường, làm sao cho các môi trường tương thích với nhau nè,. Việc này DevOps nên biết và hay làm nha Thường thường thì khi phỏng vấn DevOps sẽ hỏi về set up môi trường, environment, pineline này nọ trên hệ thống,.. OK.. Vlog lần này đến đây là hết rồi. Chủ đề hơi kỹ thuật một tý. Những bạn mà thật sự đi làm, trong ngành thật sự mới hiểu được Do vậy bạn nào quan tâm cứ comment để mình làm về những vấn đề kỹ thuật chuyên sâu này nhiều hơn nha Sắp tới thì mình sẽ hồi sinh Serie code dạo dễ òm này do chữ mình đỡ xấu hơn 1 tý rồi. Mình sẽ làm về Docker, CI, CD này nọ, v.vv
https://youtu.be/pZMUPtJQkU0Environment (Môi Trường) trong lập trình là cái chi chi? – Code Dạo Dễ Òm
Hello các bạn! Mình là Tôi Đi Code Dạo. Chào mừng các bạn đã quay lại với Series Code dạo dễ òm nha.. Mấy nay mình không làm series này do các bạn chê chữ mình xấu quá n