Reverse proxy vs Forward proxy

Proxy hay Proxy Server làm nhiệm vụ đứng giữa client và web server ứng dụng. Nó có vai trò bảo vệ client hoặc webserver tùy theo loại của chúng. Có 2 loại proxy là Reverse proxy vs Forward proxy:

1- Forward proxy thường được sử dụng trong các doanh nghiệp. Nó cùng với với tường lửa, router để bảo vệ, kiểm soát người dùng ra ngoài Internet. Proxy này ghi log, cho phép người dùng được truy cập các trang web nào, thời điểm nào… Đảm bảo tính ẩn danh của người dùng trước các web ghi lại thông tin người truy cập.

2- Reverse proxy thì ngược lại, nó tiến hành bảo vệ web server trước các client. Nó tiến hành ghi log, đứng trước bảo vệ các webserver đằng sau, ngăn không cho client gửi yêu cầu tới webserver trực tiếp. Nó cũng đóng vai trò như các bộ điều hướng, kiểm soát các client để phân bổ tới các ứng dụng định sẵn. Hơn nữa Reverse proxy có thể đóng thêm vai trò cân bằng tải (Load Balancer)

Tìm hiểu tiếp phần này thấy có khá nhiều thứ hay ho. Ta mở rộng thêm các khái niệm về Load Balancer, High-Availability đi kèm là HAProxy và Keepalived.

Đối với Apache thì có các module Proxy, module HAProxy, module Keepalived để làm Cân bằng tải.
Chuyên biệt hơn ta có Piranha Load Balancer, với cấu hình trực quan để làm Load Balancer.

Ta cũng có thể sử dụng NGINX làm proxy cho Apache.

Một số link tham khảo thêm Reverse proxy vs Forward proxy:
https://tech.bizflycloud.vn/tong-quan-ve-haproxy-va-load-balancing-20180712085354307.htm
http://congdonglinux.vn/piranha-load-balancer/
https://anninhmang.edu.vn/cau-hinh-high-available-load-balancer-voi-haproxy-va-keepalived/
https://vicloud.vn/community/huong-dan-su-dung-apache-nhu-mot-reverse-proxy-bang-cong-cu-mod-proxy-tren-centos-7-376.html
https://thachpham.com/linux-webserver/nginx-reverse-proxy-cho-apache.html
https://kipalog.com/posts/Web-Server—Tan-man-PHP-Handler-va-Apache

Monorepos vs Multilrepos

Lang thang trên mạng tự nhiên gặp bài viết này [1] nên tò mò xem Momorepos là gì? Sau đó tìm hiểu thêm google thì có bài viết [2] [3] [4] giải thích và cho ví dụ khá rõ ràng.

Thì ra nó liên quan đến việc quản lý mã nguồn của dự án. Trước đây mình không để ý lắm nên không biết phân biệt giữa 2 khái niệm này. Khi dùng SVN thì công ty mình dùng theo kiểu Monorepos(mặc dù chưa biết đến thuật ngữ đó), nghĩa là có một Repository duy nhất được tạo ra, các dự án khác nhau đều tống chung vào đó, mỗi dự án là một thư mục được tạo ra. Tất nhiên vẫn phân quyền được bình thường theo từng thư mục.

Sau này khi chuyển sang Gitlab cùng với việc phát triển Microservice nên trên Gitlab mỗi một project thì đều tạo Repository riêng cho nó. Tương đương trên github mình làm các project nhỏ nhỏ khác cũng như vậy.

Sơ sơ thì mỗi cái lại có ưu và nhược điểm nhưng thấy nhiều ý kiến cho rằng đối với Startup và Công ty lớn ưa chuộng việc dùng Monorepos hơn như Google, Facebook…

[1]: https://medium.com/@hoangbkit/why-monorepo-in-2018-89221acd4bfb
[2]: https://www.reddit.com/r/devops/comments/8vgqhq/what_do_you_prefer_and_why_mono_repo_or_multiple/
[3]: https://www.atlassian.com/git/tutorials/monorepos
[4]: https://medium.com/@patrickleet/mono-repo-or-multi-repo-why-choose-one-when-you-can-have-both-e9c77bd0c668

Rule of Machine Learning

Rule of Machine Learning is best practices.

This is document have 43 rule of Machine Learning.

http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf?fbclid=IwAR342h4lFsSUdZMFFI7r0hB3YvrkPSRQaPP3dHGMfhRLCq2y1jdz0x_DZlw

I will translate this content of file to Vietnamese.

Top supercomputers fastest on the world

Xem danh sách 10 siêu máy tính mạnh nhất thế giới tại bài: https://www.bbvaopenmind.com/en/technology/innovation/the-top-10-supercomputers-the-new-scientific-giants/
Trong 10 siêu máy tính thì có tới 5 cái thuộc Mỹ, 2 cái thuộc Trung Quốc, 1 cái từ Đức, 1 cái từ EU, 1 cái từ Nhật. Hàng đầu thế giới thì thuộc về 2 siêu máy tính thuộc Mỹ phục vụ nghiên cứu khoa học và quân tự. Tiếp theo là 2 siêu máy tính đến từ Trung Quốc. Một điều rất lạ là không có cái nào của Nga.
Về độ lớn, tốc độ của các siêu máy tính này thì mình cũng chưa thể tưởng tượng ra để có thể so sánh được. Cái nhanh nhất có tốc độ 148.6 petaflops, theo thông tin mới nhất thì siêu máy tính mạnh nhất ở Việt Nam do công ty FPT mua có tốc độ 1 petaflops.

Trending Research in Information Technology

I found a website (https://paperswithcode.com/) list research result in field Information Technology.
Specifically, the researchers have public not only paper but open source on Github. I check this open source have a lot of star and bout Fork.
On Trending Research, I saw the trending relate Machine Learning and Deep Learning. Research and develop new Networks apply for Computer Vision, Natural Language Processing and Data Science.
http://cs229.stanford.edu/proj2019spr/

Xu hướng nghiên cứu trong lĩnh vực Công nghệ thông tin
Tôi tìm thấy một website (https://paperswithcode.com) tập hợp danh sách các bài báo nghiên cứu về lĩnh vực Công nghệ thông tin. Điều đặc biệt là nghiên cứu này đều được public không chỉ bài báo mà còn đi kèm cả source public trên Github. Check qua các source code này đều có khá nhiều sao và lượt Fork.
Nhìn xu hướng nghiên cứu này thấy nhiều nhất liên quan đến Machine Learning và Deep Learning, nghiên cứu và phát triển các Network mới ứng dụng trong xử lý ảnh, xử lý ngôn ngữ tự nhiên và khoa học dữ liệu.
http://cs229.stanford.edu/proj2019spr/

PyTorch vs TensorFlow on Machine Learning frameworks

Mình biết đến TensorFlow khi tìm hiểu về Deep Learning. TensorFlow được phát triển bởi Google(trước đây là DeepMind được Google mua lại năm 2014).
TensorFlow trở nên nổi tiếng cùng với những ứng dụng Trí tuệ nhân tạo mới nổi cùng Deep Learning. Nhưng tới năm nay thì PyTorch đang được công đồng những nhà khoa học về Machine Learning quan tâm. Bằng chứng là các bài báo được nghiên cứu nhắc đến và sử dụng PyTorch khá nhiều. Nó có vẻ dễ sử dụng, chạy nhanh hơn so với TensorFlow nhưng ứng dụng cho các sản phẩm thực tế còn hạn chế.

Cần tìm hiểu thêm về PyTorch xem như thế nào.
Kiến thức này mình xem ở: https://thegradient.pub/state-of-ml-frameworks-2019-pytorch-dominates-research-tensorflow-dominates-industry/

Nexus Repository Manager

Tổng công ty chỗ mình quyết định sử dụng Nexus Repository Manager để lưu trữ và quản lý các thư viện được sử dụng trong các dự án của công ty.
Phần này trước đây mình chưa sử dụng bao giờ cả, nói chung cái tên đã nói lên tất cả về phần mềm này. Mặc dù tổng công ty dùng nhưng công ty mình chủ yếu dùng sản phẩm đã build ra nên không phải ngó ngàng đến nhiều.
Theo tìm hiểu của mình thì nó sẽ được cài riêng lên 1 server, quản lý được một hay nhiều project. Nó có thể được cài trên server window hoặc Linux và hỗ trợ rất nhiều các ngôn ngữ lập trình và các nguồn thư viện phổ biến.
Chi tiết xem thêm:
https://www.sonatype.com/product-nexus-repository
https://blog.sonatype.com/2010/04/why-nexus-for-the-non-programmer/
https://itmypath.com/gadgets/nexus-repository-manager/

Cài đặt Oracle 11g, 12c

Thử cài đặt Oracle trên Máy ảo linux hoặc window

https://o7planning.org/vi/10347/huong-dan-cai-dat-va-cau-hinh-database-oracle-12c

https://o7planning.org/vi/10211/huong-dan-cai-dat-va-cau-hinh-database-oracle-11g

High Availability, Cluster, Network Load Balancer, Failover

Cần tìm hiểu thêm về các giải pháp công nghệ này: High Availability, Cluster, Network Load Balancer, Failover

http://www.ists.com.vn/detail/technologies/high-availability-cluster-network-load-balancer-failover.html

Độ trễ LATENCY là gì?

Nghe đồng nghiệp nói về Latency của mạng là yếu tố rất quan trọng ảnh hưởng tới dịch vụ của công ty. Đối với đường mạng được lắp đặt, mọi người hay quan tâm đến băng thông là gói bao nhiêu MB mà ít để ý đến tham số Latency.

Latency hay còn được gọi là độ trễ của mạng. Nếu độ trễ này lớn thì dù mạng có băng thông lớn thì mạng cảm giác vẫn lag (trễ) như thường.

Rộng hơn nữa Latency còn quan trọng và xuất hiện trong hệ thống lưu trữ. Nó là tốc độ xử lý 1 request I/O của hệ thống.

Một số link tham khảo:

Khái niệm Latency – Thông số quan trọng nhất trong hệ thống lưu trữ

https://www.goldenlink.com.vn/kien-thuc/do-tre-cua-mang-may-tinh-latency-network-la-gi