CodeGym /Các khóa học /Python SELF VI /Triển khai mã lên server

Triển khai mã lên server

Python SELF VI
Mức độ , Bài học
Có sẵn

3.1 Thay đổi mã nguồn

Như mình đã nói ở trên, phát triển phần mềm chỉ là việc thực hiện các thay đổi nhỏ trong mã nguồn. Quá trình này đã được hàng triệu lập trình viên thực hiện trong nhiều thập kỷ, dẫn đến việc nó được tinh chỉnh, chuẩn hóa và làm theo cách có hệ thống nhất có thể.

Để lưu trữ mã nguồn, có một chương trình đặc biệt – Git. Git – là một hệ thống quản lý phiên bản phân tán. Nó không chỉ lưu trữ mã, mà còn theo dõi tất cả thay đổi trong đó và giúp lập trình viên làm việc trên các dự án cùng nhau mà không gây cản trở cho nhau.

Với Git, lập trình viên có thể tạo các phiên bản khác nhau của dự án (nhánh), lưu giữ toàn bộ lịch sử thay đổi và thậm chí quay trở lại bất kỳ thời điểm nào trong quá khứ. Nó giống như một cỗ máy thời gian cho mã nguồn! Git giúp hợp nhất các thay đổi và giải quyết xung đột, vì vậy nó đã trở thành công cụ chính cho công việc nhóm trong phát triển hiện đại.

3.2 Xây dựng dự án

Trước khi kiểm tra hoặc tải dự án lên server, cần phải xây dựng nó.

Xây dựng dự án – là quá trình biên dịch mã nguồn dự án thành các chương trình thực thi hoặc các định dạng có thể chạy khác, thường bao gồm kiểm thử và triển khai. Đây là một khía cạnh quan trọng của phát triển phần mềm, đảm bảo rằng chương trình sẵn sàng để sử dụng.

Xây dựng không chỉ đơn thuần là biên dịch, mặc dù biên dịch cũng là một phần của quá trình xây dựng. Sau khi hoàn thành xây dựng, bạn có thể có hàng chục hoặc thậm chí hàng trăm tệp cần tải lên nhiều server khác nhau.

Có những công cụ xây dựng mức thấp, chẳng hạn như:

MavenGradle – được sử dụng rộng rãi trong các dự án Java để quản lý các phụ thuộc và xây dựng dự án.

Apache Ant – cũng là một công cụ để xây dựng dự án trên Java, cung cấp sự linh hoạt lớn hơn trong việc viết kịch bản xây dựng.

MSBuild – được sử dụng để xây dựng dự án được tạo bằng Microsoft Visual Studio.

Make – công cụ xây dựng cổ điển, sử dụng Makefile để xác định quy tắc xây dựng, đặc biệt phổ biến trong các dự án C và C++.

Webpack – thường được sử dụng để xây dựng ứng dụng JavaScript, quản lý các phụ thuộc và mô-đun.

GulpGrunt – các công cụ giúp tự động hóa các nhiệm vụ thường xuyên thực hiện trong phát triển ứng dụng web, chẳng hạn như nén tệp và biên dịch SCSS thành CSS.

Còn có những công cụ xây dựng mức cao. Về chúng – dưới đây.

3.3 CI/CD

CI/CD (Continuous Integration/Continuous Delivery) – phương pháp luận, đề xuất việc liên tục hợp nhất các thay đổi từ tất cả các nhánh phát triển vào nhánh chính, cũng như kiểm thử tự động và triển khai những thay đổi này. Điều này cho phép phát hiện và sửa lỗi nhanh chóng, nâng cao hiệu quả và tốc độ phát triển.

Một trong những hệ thống CI/CD phổ biến nhất, mặc dù hơi lỗi thời, là Jenkins. Nếu bạn làm việc trong một công ty nhỏ, có khả năng 80% sẽ sử dụng chính nó.

Jenkins – hệ thống tự động hóa phổ biến, được sử dụng để tích hợp liên tục và cung cấp (CI/CD). Jenkins cho phép tự động hóa các giai đoạn khác nhau của phát triển phần mềm, bao gồm xây dựng, kiểm thử và triển khai, từ đó cải thiện chất lượng mã và tăng tốc quá trình phát triển.

Nếu bạn vào một công ty lớn, có thể có thêm 5 lựa chọn khác:

TeamCity – hệ thống thương mại mạnh mẽ của JetBrains. Đề xuất tích hợp sâu với các môi trường phát triển và kiểm thử khác nhau.

GitLab CI – phần tích hợp sẵn của GitLab, đảm bảo tích hợp và cung cấp liên tục với khả năng tùy chỉnh thông qua tệp YAML.

CircleCI – dịch vụ CI/CD đám mây, hỗ trợ tự động hóa kiểm thử và triển khai cho nhiều dự án.

Travis CI – một trong những dịch vụ CI đám mây đầu tiên, được sử dụng trong nhiều dự án mã nguồn mở. Tích hợp tốt với GitHub.

Bamboo – sản phẩm của Atlassian, tích hợp chặt chẽ với các công cụ khác của công ty này, như Jira và Bitbucket.

Bạn không cần phải biết và làm việc với chúng – thường trong công ty có các chuyên gia DevOps, họ thiết lập tất cả các quy trình này. Bạn chỉ cần biết rằng chúng tồn tại, và hiểu được nội dung khi nhắc đến Jenkins, CI/CD hoặc "continuous integration".

3.4 Triển khai dự án lên server

Viết xong dự án chưa đủ – nó phải được đưa lên server của bạn. Triển khai (deploy) dự án lên server – là quá trình đặt và kích hoạt ứng dụng web lên server để nó có thể truy cập được qua internet.

Quá trình này bao gồm việc chuyển các tệp dự án lên server, cấu hình môi trường server, cơ sở dữ liệu, các phụ thuộc, cũng như thiết lập cấu hình mạng và bảo mật.

Bạn nghĩ mã nguồn của bạn sẽ lên server thế nào? Ai đó sẽ tải nó lên? Hay có thể bạn sẽ kết nối qua SSH đến server từ xa, tải lên một số tệp và cấu hình mọi thứ? Đừng lo lắng: giờ đây không ai làm thế nữa. Giờ có Docker.

Docker – là nền tảng phát triển, cung cấp và chạy ứng dụng bằng container. Docker đơn giản hóa việc tạo, triển khai và thực thi các ứng dụng bằng cách đóng gói chúng cùng với tất cả phụ thuộc và môi trường vào một đối tượng gọn nhẹ. Điều này đảm bảo tính nhất quán của môi trường ở tất cả các giai đoạn: từ phát triển đến kiểm thử và triển khai sản phẩm.

Docker cho phép đóng gói dự án của bạn hoặc các dự án vào Docker container. Đây là thứ giống như một máy ảo.

Và mặc dù trên bất kỳ diễn đàn nào về Docker bạn sẽ bị ném dép nếu bạn gọi nó là "máy ảo", bạn có thể nghĩ về Docker container như một máy ảo. Chỉ là nhẹ hơn nhiều.

Về cơ bản, Docker container là "máy ảo" ảo. Máy ảo bao gồm bản sao đầy đủ của hệ điều hành, kernel của hệ điều hành, và phần cứng ảo, trong khi Docker container chia sẻ kernel của hệ điều hành chủ và có thể nhẹ và nhanh hơn.

Triển khai dự án bằng Docker đơn giản hóa quá trình này, đảm bảo tốc độ và độ tin cậy. Dự án được đóng gói trong Docker container, có thể dễ dàng di chuyển và chạy trên bất kỳ hệ thống nào hỗ trợ Docker.

Điều này giúp loại bỏ các vấn đề liên quan đến sự khác biệt giữa các môi trường server, và cho phép dễ dàng mở rộng ứng dụng, thêm hoặc xóa container theo nhu cầu. Mọi người đã chuyển sang Docker – rất tiện lợi và đơn giản.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION