Thursday, May 28, 2020

Cách cài đặt công cụ Podman trên CentOS 8

Bây giờ hỗ trợ chính thức cho thời gian chạy bộ chứa Docker đã bị loại bỏ bởi RHEL 8 / CentOS 8, quản trị viên container phải làm gì? May mắn thay, các nhà phát triển tại Red Hat đã làm việc trên libpod một thời gian. Libpod là thư viện quản lý container mới, bao gồm mọi thứ cần thiết để quản lý các pod, container và hình ảnh container.

Giải pháp mới đó được gọi là Podman có chức năng mà không yêu cầu trình nền chứa, vì tất cả các container và nhóm được tạo như các tiến trình con. Đối với tất cả những người đã dành hàng tuần, hàng tháng và hàng năm để tăng tốc với thời gian chạy docker, bạn không có gì phải lo sợ vì Podman CLI dựa trên docker CLI.

Tôi muốn hướng dẫn bạn các bước để cài đặt và sử dụng Podman trên CentOS 8.

Những gì bạn cần

Điều duy nhất bạn sẽ cần để thực hiện công việc này là:

  • Một phiên bản đang chạy của CentOS 8
  • Tài khoản người dùng có quyền sudo

Cách cài đặt Podman

Podman không có gói cài đặt riêng, vì nó là một phần của công cụ khác. Vì vậy, để có quyền truy cập vào Podman, hãy mở một cửa sổ đầu cuối trên máy chủ CentOS 8 của bạn và nhập lệnh:

sudo dnf install @container-tools -y

Quá trình cài đặt bắt đầu

Cách dùng Podman

Hãy để tôi chỉ cho bạn cách tương tự như Docker Podman. Ví dụ bạn muốn kéo một hình ảnh. Nếu bạn đã sử dụng lệnh kéo Docker, bạn sẽ nhận ra:

podman pull ubuntu

Để liệt kê các hình ảnh hiện có của bạn, hãy nhập lệnh:

podman images

Lệnh trên sẽ liệt kê tất cả các hình ảnh bạn đã kéo, cùng với ID hình ảnh.

Để xóa một hình ảnh, bạn có thể làm như vậy bằng ID hình ảnh, giống như bạn làm với thời gian chạy Docker. Nhập lệnh:

podman rmi ID

Trong đó ID là ID của hình ảnh sẽ bị xóa.

Bây giờ, giả sử bạn muốn triển khai một thùng chứa bằng hình ảnh Ubuntu mới tải xuống. Ta sẽ trình diễn một triển khai vùng chứa cực kỳ cơ bản, một triển khai sẽ chứa một container dựa trên hình ảnh Ubuntu và sau đó sử dụng lệnh echo từ bên trong container để in thông báo “Chào mừng bạn đến với Blogf4vnn.”

Để triển khai container này với Podman, nhập lệnh:

podman run --rm ubuntu /bin/echo "Welcome to Blogf4vnn."

Bạn gần như sẽ thấy ngay văn bản được in ra (Hình A).

Hình A

Cách cài đặt công cụ chứa Podman trên CentOS 8
Created with GIMP

Tất nhiên, container đó sẽ không giúp bạn nhiều. Hãy triển khai một container định tuyến cổng ngoài 8080 đến cổng bên trong 8080. Điều này có thể được thực hiện bằng lệnh:

sudo podman run -dit --name ubuntu-apache -p 8080:8080 ubuntu

Chúng ta phải chạy lệnh này với sudo vì các ràng buộc cổng chưa được hỗ trợ bởi các container không root.

Để liệt kê các container đang chạy của bạn, bạn sẽ phải một lần nữa, hãy sử dụng sudo như vậy:

sudo podman ps

Lệnh trên sẽ liệt kê các thùng chứa đang chạy của bạn (Hình B).

Hình B

Created with GIMP

Để dừng container đó, nhập lệnh:

sudo podman stop ID

Trong đó ID là tên của ID container.

Để xóa container hiện đã dừng, hãy nhập lệnh:

sudo podmand rm ID

Trong đó ID là tên của ID container.

Và đó là ý chính của việc cài đặt và sử dụng công cụ thời gian chạy container mới, Podman. Hãy theo dõi để biết thêm cách làm trung tâm xung quanh công nghệ mới này.

Share:

Tuesday, May 5, 2020

Top Mistakes That Back End Developers Make

It’s easy for developers to make mistakes, but we can prevent them if we know them beforehand.
In this article, we’ll look at mistakes that back end developers make.

Deploy on a Friday

If we don’t want to fix problems on the weekend, then we shouldn’t deploy on Friday.
Any deployment is risky and we should always think twice before doing if it’s not an emergency.
Things never go the way that we expect. And we definitely don’t want to ignore anything bad that comes up on the weekend and have angry customers to deal with on Monday.

Bad Input Validation

Server-side input validation is important. They serve 2 purposes. We need them to ensure security and also to prevent corrupt data from being saved.
We have to prevent SQL injection issues so that attackers can’t run malicious code to do whatever they want in our databases.
Also, we should validate input data to make sure that the data is in the proper format that we’re looking for.
If we don’t, then we’ll probably run into problems in some other places.
Most back end frameworks should be able to do both out of the box so that we don’t have to write all the code from scratch to do all that validation.

Authentication and Authorization

Authentication and authorization are 2 different things. People may not be aware of that.
Authentication is just checking for the ability to be able to log into a system with valid credentials. Authorization is the privileges that we give users.
We should make sure that users aren’t authorized to do more than they should.
For instance, if they’re a regular user, then they shouldn’t be able to view other user’s private profile. That’s an authorization.
Authentication is just making sure that a username and password or anything else that we have to enter is valid so that we can log into a system.

Ignoring Performance and Scaling

Performance and scaling are always important things to consider in the back end. We don’t want our systems to time out when we’re dealing with too much data.
Therefore, we should consider caching, doing long-running jobs in the background, pagination, etc. These are things that’ll help us prevent overloading our servers.
It’s bad if our app is overloaded since it’ll fail before it can do what customers want.

Not Running Resource-Intensive Processes in the Background

Resource intensive jobs like report generation, sending mass emails, etc. should all be done in the background. They’re all resource-intensive and it’s hard to do them synchronously without holding up our app for a long time.
Users will be frustrated if they’re left waiting for a long time when we have jobs running in the foreground and keeping users waiting.
Therefore, we should create background jobs for these resource-intensive tasks and batch them so that they won’t overload our servers.
Also, we should move these tasks to run on their own servers so it won’t overwhelm the main app.

Not Optimizing Bandwidth Usage

We should minimize bandwidth usage in all communications. For instance, we may be sending large chunks of data or images between multiple remote servers.
To make the transfer process more efficient, we should compress everything before sending it to save bandwidth. Then they can be decompressed on the receiving server.

Using RESTful Anti-Patterns

REST API should follow some basic best practices. For instance, the HTTP verbs to match the database operations that they’re doing.
GET should retrieve data, POST should create data, PUT and PATCH should update data, and DELETE should delete data.
This way, no one will be confused as to what our code is doing.
Also, our endpoints have to send the right HTTP status codes. 200 series is for successful operations. 400 series for errors coming from client-side and 500 series errors for errors occurring on the server-side.
For instance, 401 is for unauthorized, 403 means that we’re forbidden to access a resource because of a lack of privileges, 404 for not found, 502 for timeout errors.

Conclusion

We should stop ourselves before committing these mistakes if we’re doing back end development.
We should think about performance, scaling, validating inputs, and returning errors with the right status code.
Share:

Chuyện bên lề của dev










Bạn đi đến đâu, bạn làm điều gì, thì cũng đang phải tuân theo những nguyên tắc, điều lệ cho dù bạn có biết hay không biết về sự tồn tại của nó. Vậy đâu là những nguyên tắc của developer?
Duới đây là nhìn nhận cá nhân, rút ra dựa trên kinh nghiệm bản thân, bài học mà cái giá của nó không hề rẻ. Xin nhắc lại, những nguyên tắc dưới đây mang góc độ chủ quan.




Công nghệ là công cụ, không phải giải pháp

Bạn có thể học những framework mới nhất, công cụ xịn nhất, nhưng tất cả những thứ đó không phải là giải pháp cho các vấn đề mà chúng ta cần giải quyết, chúng chỉ đơn giản là các công cụ giúp bạn giải quyết các vấn đề.
Bạn cần cẩn thận, tránh tình trạng cuồng một công nghệ nào đó, hoặc say đắm các công nghệ đang hot. Nhưng không có nghĩa là bạn lại không thành thạo một công nghệ nào cả !

Thông minh là kẻ thù của sự đơn giản, dễ hiểu

Thường những developer muốn thể hiện sự thông minh của mình qua những đoạn code rẩt khó hiểu, code rất ngắn, code với những funciton, hay cú pháp rất rất lạ. Nên nhớ một điều rằng, code của bạn tốt, khi bạn và những đồng nghiệp của bạn, hay đơn giản là những thằng nhóc mới học lập trình đọc cũng có thể hiểu được code của bạn đang viết gì. Ở đây mình chưa xét đến perform nhé.
Và thường thì những developer thường có suy nghĩ tốt hơn những ngưởi khác, những khách hàng thực sự sử dụng những sản phẩm mà họ làm ra, vậy hãy đặt mình dưới vai trò của 1 người dùng không biết tí gì về code cả, mà thiết kế giao diện sao cho phù hợp nhé.

Chỉ viết code khi bạn cần phải viết

Nghe vô lý, nhưng lại rất hợp lý. Bạn đã nghe câu "Code của bạn không thể có bug, nếu bạn không viết code", sự thực thì, khá gần đúng như vậy, code càng nhiều, khả năng gây lỗi, gây bug càng cao. Vậy không phải lúc nào cũng code. Hãy cẩn trọng suy nghĩ trước khi viết 1 dòng code.
Software developer giỏi không viết code trừ khi họ thấy cần thiết. Software developer tầm cỡ cố gắng xóa nhiều code nhất họ có thể.

Luôn luôn nắm rõ code của bạn sẽ làm gì trước khi viết nó

Nghe khá ngược, đương nhiên là mình viết ra code thì phải biết nó làm gì chứ nhỉ. "Nắm rõ code của bạn làm gì ở đây", ý mình là đoạn code của mình sẽ thực hiện chức năng gì, nó có đúng với yêu cầu của khách hàng không. Thường thì phần lớn các bạn code mà không thực sự hiểu khách hàng muốn gì. Vì vậy, hãy chắc chắn rằng mình đã hiểu thực sự ý của khách hàng trước khi code 1 cái gì đó.

Đừng bao giờ quên TEST code của mình

Đừng bao giờ để bản thân "dậm chân tại chỗ"

Tại sao lại thế, như bạn đã biết sâu xa hơn thì là quy luật triết học, bạn đứng yên trong khi người khác phát triển, thì đó chính là bạn đã thụt lùi. Nhất là đối với ngành IT này, công nghệ cập nhật thay đổi từng giờ, vì vậy, hãy đừng để mình lạc hậu nha

Bạn không thể biết mọi thứ

Có 1 điều khá thú vị là bạn càng biết nhiều, bạn càng có nhiều kiến thức, bạn lại cảm thấy mình càng chẳng biết gì cả. Vì vậy, đừng nản lòng khi bạn không biết 1 thứ gì đó, đừng bao giờ ngại hỏi han đồng nghiệp, bạn bè, về những cái mình chưa biết.
---Nguồn: st

Share: