Posted in DevOps

Kubernetes IDE

Kubernetes là 1 công cụ để quản lý container. Và hiện tại nó đang hot. Ai đi làm cũng hỏi về kubernetes.

Bài giảng về kubernetes mình đã nói trong nhiều video rồi, các bạn muốn hiểu thêm về kubernetes có thể xem trênh kênh youtube của mình nha: Link bên dưới

Trong bài hôm nay mình sẽ liệt kê một số công cụ để hiển thị kubernetes dành cho bạn nào làm devops hoặc monitoring cần quan sát và làm việc với nhiều K8s cluster cùng lúc, hoặc cần thao tác, check logs mà không cần phải gõ quá nhiều lệnh.

Như mấy bạn nào học và làm việc với Cloud infrastructure nói chung và K8s nói riêng, thì mình đồng ý với các bạn là nó khá là trừu tượng. Khi mà chúng ta nói về pod, services, HA, load balancing. Tất nhiên khi hiểu rồi thì không khó để mường tượng ra pod là gì và hoạt động ra sao. Nhưng bảo mình ngồi tưởng tượng ra nguyên cái cloud infrastructure của công ty mình hiện giờ thì mình cũng không dám bảo game là dễ:)

Đó là lý do UI ra đời, tất nhiên game này không dành cho các bạn thích thể hiện, kiểu: trời lớn rồi ai xài UI, tui gõ vài dòng kubectl là ra hết rồi còn show bao nhiêu thứ hay ho. Như là kubectl get pods nè…..

Mình đồng ý nhưng mà vì yếu tố công việc với tay mình hay mỏi nên mình xài UI cho lẹ nha..

Thôi không dài dòng vào vấn đề chính.

Top UI dành cho Kubernetes:

1/ Lens

Theo mình con này là tốt nhất hiện tại. trong môi trường tool cho K8s cũng ít, tool này mình được 1 anh bạn giới thiệu cho, từ đó đến giờ xài không than phiền 1 ngày nào.

Nói chung con này ngon từ đầu đến cuối, bạn có thể hiện thị hết K8s cluster của 1 bạn 1 cách hế sức rõ ràng như sau:

Kontena, Inc. on Twitter: "The Ultimate Dashboard for #Kubernetes - Kontena  Lens provides all necessary tools and technology to take control of your  Kubernetes clusters. https://t.co/0DIOvnmJBO… https://t.co/xTinrzWNeU"

Rồi, phân tích 1 xíu nha. Thanh ngoài cùng bên trái show cho các bạn các cluster đang hiển thị. Thường 1 dự án có 3 cluster nha, 1 dev, stag and production.

Ở giữa chính là các pod của chúng ta, nó còn cung cấp thêm thông tin có bao nhiêu container mỗi pod, pod restart ngày mấy lần(pod hay bị restart phải coi lại nha).

Cái bản to đùng đầy phân tích kỹ thuật bên phải á, chính là thông tin chi tiết của mỗi pod khi bạn click vào.

Nói kĩ về cái bảng này chút:

Ở trên là memories resource của pod. Mấy cái cột xanh lá cây là memories yêu cầu của pod đó. Còn màu xanh dương chính là memory đang sử dụng nha.

Ở phí dưới thì dễ rồi, nó ghi bên cạnh đó, bạn có thể thấy namespace pod đó thuộc về, ngày tạo ra, pod thuộc về node nào , pod ip là gì. Ngay cả pod của bạn có 1 số secrect value như Database username hoặc password thì cũng có thể đọc ở đây nha.

Khi bạn click vào pod để nó hiện ra thông tin ở cái bảng bên phải đó. Thì phần trên cùng có một tap để bạn có thể ssh vào pod đó, hình biểu tượng của bash đó, bên cạnh là đọc log. Chỉnh sửa file yaml của pod. Thậm chí xóa pod. Tất nhiên nếu đã set auto scalte thì bạn xóa pod nó cũng tự build lại từ file yaml thôi.

Ok bài viết tới đây kết thúc, lần sau mình sẽ nói về K9s. Xin chào và hẹn gặp lại!

Link Kubernetes vỡ lòng như đã nói ở phần đầu bài: 🐱☸ Căn bản về khái niệm quản lý chuỗi container (Kubernetes) 🐱☸ – YouTube

Posted in DevOps, Docker

Vagrant là gì? Làm thế nào để ứng dụng Vagrant.

Khi các bạn xài Window vài muốn chạy Linux, thường thì lựa chọn sẽ là Virtual Machine(oracle Virtual Box chẳng hạn). Khi xài virtual-box các bạn phải set memory, capacity to máy ảo bạn sử dụng, sau đó lên mạng tải ubunu images về mount vào mới chạy được, đó là 1 quá trình không quá dài nhưng cũng mệt mỏi

Trong bài này mình sẽ giới thiệu 1 cho các bạn 1 công cụ mới tên là Vagrant.

Định nghĩa: Vagrant là một công cụ đa nền tảng cho phép bạn chỉ định Máy ảo ( dưới dạng Vagrantfile ) để triển khai tới một hypervisor (như VirtualBox trên laptop của bạn).

Vargant cũng gần như docker, bạn chỉ cần tạo 1 vagrantfile, trong đó cấu hình Linux machine của bạn, ví dụ như

file sau:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-20.04"
end

File này chỉ định bạn sẽ tạo 1 vagrant box cài ubnutu-20.04

C:\Users\Thanh\VirtualBox VMs> vagrant up
A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,
get an ID of a target machine from `vagrant global-status` to run
this command on. A final option is to change to a directory with a
Vagrantfile and to try again.

Để bật máy lên chỉ cần dùng lệnh “vagrant up”

C:\Users\Thanh\VirtualBox VMs> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'bento/ubuntu-20.04'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-20.04' version '202010.24.0' is up to date...
==> default: A newer version of the box 'bento/ubuntu-20.04' for provider 'virtualbox' is
==> default: available! You currently have version '202010.24.0'. The latest is version
==> default: '202012.23.0'. Run `vagrant box update` to update.
==> default: Setting the name of the VM: VirtualBoxVMs_default_1617373630300_91414
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/Thanh/VirtualBox VMs

Để access vào máy để làm việc các dùng lệnh “vagrant ssh”.

C:\Users\Thanh\VirtualBox VMs> vagrant ssh
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-52-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 System information disabled due to load higher than 1.0

Vagrant làm cho việc setup máy ảo trên laptop của bạn đơn giản hơn rất nhiều. Chỉ cần 1 vài dòng lệnh là vagrant up là đã có 1 máy ảo chạy Ubuntu hoặc CenOS. Để access vào máy ảo chỉ cần vagrant ssh.

Ranh giới giữa máy ảo và container đang bị mờ. Bản cập nhật gần đây của Vagrant, đã có rất nhiều thứ được bổ sung, bao gồm cả Vagrant Cloud. Vagrant Cloud là một dịch vụ lữu trữ các boxes, tương tự như dockerhub, mà bạn có thể tải về và xài tương tự, ví dụ bạn cần 1 máy ảo có cài sẵn postgresql, chỉ cần lên Vagrant Cloud tải về vargrant file sau đó bật lên là được.

Phần sau mình sẽ làm về setup docker. Bên docker cũng tương tự khi bạn chỉ cần dockerfile sau đó dùng dockerun để chạy container.

Posted in Docker, Robotics

Cài đặt và chạy ROS2 trên docker cotainer

Trước đây mình học robotic và có cơ hội làm việc với ROS(Robot Operating System). Mình thấy ROS là một framework rất hay để các bạn làm quen với lập trình robot. Đồng thời ROS cũng cung cấp nhiều API để việc lập trình robot dễ dàng hơn.

Hiện tại công việc của mình là cloud engineer nên thay vì tiếp xúc làm việc nhiều với robot thì mình deploy các services nhiều hơn. Tuy nhiên thì sở thích là robot nên mình vẫn chạy 1 số project về Robot và xe tự lái. Đó là lý do có trang web này. Và mình thấy có thể kết hợp 2 mảng này để tạo nên 1 số dự án thú vị.

Trong bài này mình sẽ hướng dẫn các bạn cài đặt ROS2 trên docker container:

Nói sơ qua Docker là gì?

Bạn có thể coi Docker trên PC như một máy tính bên trong máy tính của bạn. Docker là một dịch vụ cung cấp các máy ảo độc lập được cài đặt sẵn những phần mền cần thiết. Những máy ảo này giúp cuộc sống của bạn dễ dàng hơn vì chúng đi kèm với các phiên bản phần mềm phù hợp cho bất kỳ ứng dụng nào bạn đang cố gắng chạy.

Lý do cài ROS nên docker container là gì, khi bạn muốn cài ros trên windows hoặc MacOS cũng được, nhưng sẽ phức tạp hơn. Do đó có thể chọn xài máy ảo(VM) chạy linux, hoặc xài docker, coi là bản mới của VM cũng được.

Ok vào bài:

Đầu tiên: Cài docker cho window trước, làm theo hướng dẫn từ Microsoft là chuẩn nhất:

Cài docker trên win cho UbuntuApp:

https://docs.docker.com/docker-for-windows/install/

Ai cài docker trên window gặp vấn đề thì mình sẽ post 1 bài riêng sau, sau khi cài docker thì tick vào ô Use WL2:

Sau khi cài docker trong window rồi thì cài Ubuntu app:

Bằng Link này: Get Ubuntu 20.04 LTS – Microsoft Store

Mở app Ubuntu, đầu tiên kiểm tra docker có chạy không:

docker

Nếu không báo lỗi tiếp tục pull và run docker container có ros2-vnc, gõ lệnh sau:

docker run -p 6080:80 --shm-size=512m tiryoh/ros2-desktop-vnc:dashing

Bước tiếp theo, vào google chrome, vào link sau:

http://127.0.0.1:6080/

Tới bước này là các bạn có 4 màn hình để làm việc, có thể chuyển qua lại ở góc dưới bên trái màn hình.

Có máy ảo docker rồi giờ mình tiếp tục cài ROS:

Cài đặt TurtleBot3

Nhấp vào biểu tượng menu ở phía dưới cùng bên trái.

Đi tới System Tools -> LXterminal.

Tải xuống TurtleBot3.

wget <a href="https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/ros2/turtlebot3.repos">https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/ros2/turtlebot3.repos</a>
mkdir -p ~/turtlebot3_ws/src
vcs import src < turtlebot3.repos

Đợi 2 phút để turtlebot 3 được tải xuống container.

Compile code bằng lệnh sau:

colcon build --symlink-install

Set the biến môi trường.

echo 'source ~/turtlebot3_ws/install/setup.bash' >> ~/.bashrc
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/turtlebot3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models' >> ~/.bashrc
echo 'export TURTLEBOT3_MODEL=waffle_pi' >> ~/.bashrc
source ~/.bashrc

Chạy thử Gazebo trên ROS2:

Bạn nào từng hoặc cần nghiên cứ về ROS sẽ biết các lệnh này: Launch the simulation using the ros2 launch command.

ros2 launch turtlebot3_gazebo empty_world.launch.py

Đợi 1 lúc để Gazebo được bật lên, bình thường nó đã lâu rồi, chạy giả lập trong docker container thì phải lâu hơn chút. Dưới đây là thành quả.

Thực hiện theo các bước trên các bạn có thể giả lập 1 môi trường ảo cho robot trên một máy ảo chạy trên window của bạn cùng với sự trợ giúp của Docker và Ubuntu app 2020 trên Microsoft Store. Tất cả các phần mềm trên đều miễn phí.

Làm sao tắt ROS 2 docker container:

1 là mấy bạn vào app Ubuntu cái mà đang chạy docker container và tắt nó đi, hoặc dùng lệnh sau:

docker stop ros2-desktop-vnc

Muốn bật lại thì command là:

docker restart ros2-desktop-vnc
Posted in DevOps

Devops(Series) Phần 2 : AWS EC2, nhân tố quan trọng của AWS.

Aws EC2 là gì? Khi sử dụng Virtual Machine thì các bạn có thể dùng virtualbox, Vm ware, Vagrant, VM ware. Ngoài các tool phổ biến trên còn một số tool khác mà mình không liệt kê hết ở đây.

Một vitural machine cung cấp nhiều thứ ,nhưng quan trọng nhất là: CPU, RAM, và network.

Tương tự, trên các hệ thống cho thuê server như GCP(Google Cloud Platform), Microsoft Azure hoặc AWS, những VM này có các tên khác nhau, như trên Azure và Google Cloud là Compute, và trên Amazon Web Services là EC2(Elastic Compute Cloud).

Mặc dù tên gọi khác nhau nhưng về cơ bản EC2 cung cấp cho bạn 1 máy chủ với CPU, RAM, Network để bạn có thể làm việc, bạn biến nó thành 1 server hay chạy web services gì đó tùy theo bạn muốn, và EC2 nằm bên trong 1 VPC, với Gateway để kết nối internet, và ở gateway bạn có thể đặt cá rules để bảo vệ cho Instance của bạn.

Ngoài ra đối với những hệ thống thực tế, khi chạy webservices trên EC2 bạn có thể tùy chỉnh thêm autoscaling, tự động tăng giảm số lượng máy ảo khi server quá tải, hoặc tự điều chỉnh cắt giảm số lượng máy ảo trong thời gian vắng khách.

Posted in Life in Europe

7 Steps update your LinkedIn profile to get dream job in 2020.

2020 is a very special year, in this year we learn some new words, bad words: Lockdown, Covid-19, World-pademic, stay at home … It can be said that this is a sad year. But it is also an opportunity for us to give love to other people around us, while looking at ourselves and preparing for the good of 2021.

Branding is time and resource consuming , big companies are trained on it – and they’re good at it. But how do we often use those skills to build our own personal brands? For many of us, we don’t usually get involved in personal branding . And in this post I want to share the 7 steps I take to build personal branding on Linkedin, with hundreds of thousands of others, not just for a good job, but also for personal branding. mine.

We don’t because we are busy and because it can sometimes feel selfish or egotistical to invest time in marketing ourselves. But by ignoring personal brands, we don’t just sell ourselves – we miss a huge opportunity from a marketing perspective. The impact of those who share content is enormous. And the most effective employees sharing are the ones who have built their personal branding on LinkedIn.

Here are 7 profile features you should check out and update for 2020.

1. Choose the right profile picture for LinkedIn

Your profile photo is your business card on LinkedIn – that’s how people are presented to you and (visual creatures are us), it dominates their impression in the first place. There are some great posts explaining how to choose the right profile picture on LinkedIn – but here are some quick tips to get started: make sure that photo is recent and like you, makeup on your face about 60% (long – picture taken horizontally does not stand out), wear what you want to wear to work and smile with your eyes n.

2. Add a background image

Your background image is the second image element at the top of your profile page. It obtained the attention of everyone, put context and show a little more about what’s important to you. More than anything, the right background images help your site stand out, collect the attention and always memorable.

3. Set your title is not just a job title

There’s no rule saying that the description at the top of your resume page is just a job title. Use the title field to say a little more about how you see your role, why you do what you do, and what makes you tick. If you have sales reps at your company who are engaged in social selling, then take a quick look at their profile page titles for inspiration. They will almost certainly have more of their job titles in it.

4. Turn your summary into your story

The first thing to say about your LinkedIn summary is – make sure you have one . Your summary is your chance to tell your own story – so don’t just use it to list your skills or job titles you already have. Try to make it descriptive about why those skills are important – and the difference they can make for the people you work with. Don’t be afraid to invest time, try a few drafts and run your summary in front of people you know. This is your most personal piece of content marketing , so speak your own language .

5 . Grow your network

Take advantage of the LinkedIn feature that suggests people you can connect with. It’s amazing how effective this can be at finding relevant people to reach you on , no connection requests being sent without your permission, because So you can check all potential connections. Also, get into the habit of chatting with the LinkedIn connection requirements – it’s a great way to keep your network up and running.

6. Share content related to your work

Your LinkedIn Have a network of connections on LinkedIn, and you have an active role in that network, appearing in the LinkedIn feed of your connections in a way that adds value to them. Sharing relevant content with your network is one of the most accessible ways to do this. You can start by tracking information on linkedin of themselves and share content that you find really interesting position , or related to your industry .

7. Publish long-form content – and use it to initiate a conversation

The more you share and comment on content, the more you will establish your expertise and thought leadership information on LinkedIn. Publish post long form is the next step according to the natural need to take. A great starting point is to track the response you get to your comments and shares. Are there specific topics and perspectives that seem relevant to your network? Is there a comment you shared that you feel would be expandable in a post? Developing your thought leadership in this way keeps it realistic – and keeps you on the lookout for the issues your relationships are talking about. Get ready for your long posts to start new chats. Keep track of comments and be ready to respond.

Make your LinkedIn profile more active so that you don’t have to waste time organizing your resume for a job, getting the recruiter to find you . Try working through these ideas, building from idea to idea – and you’ll find that you can make rapid progress, even if you can only spend a few minutes in lunch break or in the evening. After taking full advantage of your LinkedIn profile, you’ll be amazed at the difference it can make for both you and your business . 

Let 2021 be a new start for you!

Photo by Nicole Michalou on Pexels.com
Posted in Home, Life in Europe

5 điều cần biết trước khi viết blog hoặc website! (SEO)

Nói nôm na đây là bài viết về các mẹo làm sao để bài viết của bạn được lên top tìm kiếm của Google. Mặc dù có rất nhiều cách nhưng thứ giữ lại khán giả vẫn là nội dung các bạn nhé, nào bắt đầu vào đề thôi (-_-) .

1 – Hiểu biết về SEO: (Tối ưu hóa Công cụ Tìm kiếm) là một trong những yếu tố quan trọng mà mọi blogger nên cân nhắc trước khi pos bài. Bạn muốn bài viết của bạn có nhiều người xem thì phải làm sao nó xuất hiện nhiều trên Google. Nhiều website không quan tâm đến SEO; họ chỉ cần chọn một themes thân thiện google và bắt đầu post bài. Đây cũng chính là lý do họ bị phụ thuộc vào các thuật toán của Goolge như Google Panda và Penguin.

Photo by Tobias Dziuba on Pexels.com

Xếp hạng công cụ tìm kiếm cao hơn không chỉ phụ thuộc vào chủ đề bài viết của bạn, mà còn ở tiêu đề của các bài đăng trên blog của bạn. Nếu bạn có một blog hơn 100+ bài viết, một số bài viết trong blog của bạn có thể phổ biến và một số trong số đó có thể không phải là một bài viết phổ biến. Bạn đã bao giờ nghĩ tại sao chỉ có một vài bài viết được xem nhiều trong blog của bạn? Bởi vì dù có cố ý hay không, vô tình bài viết nhiều view của bạn có tiêu đề phù hợp với công cụ tìm kiếm như là google, hoặc bạn cung cấp nội dung ít người tìm kiếm.

2- Một nguyên tắc chung là: Từ khoá của bạn phải nằm trong tiêu đề bài đăng và hầu hết người viết mắc lỗi khi chỉ thêm Từ khoá và không quan tâm đến việc tối ưu hoá nó để có CTR(tỷ lệ nhấp chuột) tốt hơn. Có Từ khóa trong tiêu đề bài đăng của bạn sẽ giúp ích rất nhiều, nhưng khi nói đến việc tăng CTR, cách bạn đặt các tiêu đề bài đăng của bạn tạo ra sự khác biệt rất lớn.

Ví dụ hãy xem 2 cách đặt tiêu đề sau:

Làm sao đưa bài này lên top (Tiêu đề trung bình)

Điều duy nhất bạn cần làm để đưa bài này lên top (Tiêu đề sẽ giúp bạn nhận được nhiều CTR hơn)

Như mình đã nói, tiêu đề thân thiện với SEO rất quan trọng để xếp hạng công cụ tìm kiếm tốt hơn, tất nhiền là bài viết của bạn cũng phải hấp dẫn, nếu không …… thì sẽ không giữ được người đọc.

Trong bài viết này, mình sẽ chia sẻ cho bạn “Cách viết tiêu đề có thể chơi với công cụ tìm kiếm không chỉ mang lại cho bạn nhiều truy cập miễn phí mà còn cải thiện tỉ lệ nhấp chuột lên trang web của bạn“. Tiêu đề ví dụ mà mình đã chia sẻ ở đây là “Làm thế nào để có thêm lưu lượng truy cập blog”. Tiếp tới đây, mình sẽ đặt tiêu đề này làm tiêu đề thân thiện với công cụ Tìm kiếm.

Các bước để viết tiêu đề chơi được với SEO:

Nếu bạn chưa quen với SEO, mình xin nhắc lại một lần nữa là từ khóa của bạn phải là một phần của tiêu đề bài post của bạn. Bạn có thể tham khảo hướng dẫn Harsh về cách viết tiêu đề bài đăng khác nhau cho người đọc và Công cụ tìm kiếm. Một mẹo mà tôi muốn đưa ra ở đây, hãy luôn chọn tiêu đề bài đăng của bạn sau khi hoàn thành bài viết, và hãy suy nghĩ kỹ cho chủ đề bài viết.

3- Phân tích từ khóa của bài viết Phân tích từ khóa là bước đầu tiên để làm cho tiêu đề bài đăng của bạn thân thiện với SEO. Có nhiều công cụ phân tích từ khoá có sẵn trực tuyến, chẳng hạn như công cụ phân tích từ khoá của Google. Hãy mình phân tích các tìm kiếm từ khóa trong bài viết của mình trên Google nhé. Đầu tiên mình sẽ viết một bài báo, cụ thể là “Làm thế nào để có thêm lưu lượng truy cập blog”. Đầu tiên tôi Mở công cụ Từ khoá của Google Adwords(như là Semrush) và kiểm tra các trang khác, Số lượng tìm kiếm… Vv… của từ khoá chính trong bài viết của mình. Sau khi Phân tích, mình nhận thấy rằng danh sách tìm kiếm từ khóa “Cách tạo lưu lượng truy cập blog” nhiều hơn và có mức độ cạnh tranh thấp. Bây giờ mình đã tìm thấy từ khóa chính để chèn vào tiêu đề của mình. Nếu bạn là một trong những người thích Từ khóa đuôi dài, tôi khuyên bạn nên thử SEMRUSH hoặc Ahrefs vì công cụ này giúp bạn tìm Từ khóa đuôi dài dựa trên từ gốc của bạn.

4- Sử dụng các từ khóa mục tiêu chính cho tiêu đề của bạn: Bây giờ mình đã tìm thấy từ khóa mà tôi nên chèn nó vào tiêu đề bài đăng của mình. Đầu tiên, mình đã nói điều đó, tôi sẽ giữ tiêu đề của mình là “Cách để có thêm lưu lượng truy cập blog”, sau khi tôi chèn từ khóa chính vào tiêu đề của Bài đăng và sau khi thực hiện một số thay đổi trong tiêu đề, tôi đã thực hiện nó như “Mẹo tạo lưu lượng truy cập để tăng lưu lượng truy cập vào blog của bạn”. Tiêu đề mà tôi đã tạo cũng thân thiện với công cụ tìm kiếm và hấp dẫn, loại tiêu đề hấp dẫn này khiến mọi người háo hức mở bài viết của bạn và đọc nó. 80% của phần đã kết thúc. Sau đó, những gì về 20% còn lại? , bạn có thể tìm thấy nó ở bước 3!

5- Bước thêm số: Rất quan trọng! 80% phần làm cho tiêu đề bài viết thân thiện với SEO đã kết thúc! Bây giờ là lúc để thêm phần hoàn thiện vào tiêu đề của bài viết! 20% tiếp theo là thêm một số hoặc tiền tố-hậu tố, vào tiêu đề của bạn để cải thiện CTR hơn nữa. Ví dụ trong bài này mình trình bày 5 cách để nhận được nhiều view cho blog hơn. Và vì thế nên có số “5” trên tiêu đề của bài post. Và tiêu đề là: “5 điều cần biết trước khi viết blog hoặc website!”

Bây giờ mình đã tạo một tiêu đề thân thiện với công cụ tìm kiếm cho bài đăng trên blog của mình và điều đó sẽ thu được nhiều người xem hơn mình thường, không biết có bài này có giúp mình giàu lên không:))!

Bài viết đến đây kết thúc:). Hy vọng các bạn có thể áp dụng điều này vào blog của mình nhé.

Chào Thân ái!

Posted in Home

Devops chuyện chưa kể(Series) phần 1 : Truyền thuyết Amazon Web Servies (AWS ).

Truyền thuyết kể rằng:

Năm thứ nhất sau Covid-19, anh Tèo, CTO của lele.com, 1 trang web chuyên về gà, đang gặp rắc rối nghiêm trọng về tương lai công ty…

Công ty anh điều hành 1 website gọi gà ở chợ đầu mối, như những web gọi gà khác, trang web của anh có cấu trúc như sau:

Khách hàng sẽ vào trang web của tèo tìm gà, ưng ý bấm chọn, thì browser sẽ gửi request tới server để lấy thông tin của gà được chọn thông qua domain name server( từ đây mình sẽ viết tắt là DNS), DNS này dùng để phiên dịch tên miền lele.com thành IP cho máy dễ hiểu thôi. Sau khi gửi request syn ack các kiểu, giao thức TCP-IP được thành lập thì server sẽ gửi hình của gà cho các bạn xem, và nếu ok sẽ tiến hành bước tiếp theo là đá gà.

Ok mọi chyện sẽ khá bình thường cho đến 1 ngày trang web trở nên nổi tiếng vì dàn gà mới đi thi đoạt giải, dẫn tới số lượng user tăng lên vùn vụt, mỗi ngày có thêm 10 ngàn user, khách nhiều thì tốt nhưng nhiều quá cũng không tốt đẹp gì…Và trang của anh gặp phải vài vấn đề đau đầu:

  1. Khi quá nhiều lượt truy cập vào 1 server, băng thông sẽ bị nghẽn và làm chậm tốc độ load web.
  2. Số lượng gà mới có profile khủng hơn, cty anh tèo phải cung cấp thêm nhiều thông tin vì khác hàng yêu cầu, dẫn tới sever quá tải. Đầu tư thêm server thì mất công setup network này nọ. Mà upgrade thì web vẫn phải chạy để níu chân khách.
  3. Mặc dù khách đông nhưng thường chỉ hoạt động về đêm làm lag server, có những thời điểm web không có khách. Nên đầu tư thêm để ban đêm phí quá.

Nhiều vấn đề không được giải quyết, Tèo quyết định thuê chuyên viên về thay đổi cấu trúc cty. Cuối cùng họ quyết định: Đưa tất cả lên Cloud!

Nhưng có nhiều dịch vụ cung cấp cloud thì chọn cái nào? Xem lại trang web cạnh tranh của Tèo là xemheo.com họ cũng đã chuyển hết Server, cơ sở dữ liệu của họ cho Microsoft Azure. Tèo quyết định không chơi đụng hàng, sau 1 một hồi phân vân và anh chọn AWS vì AWS có giao diện dễ sử dụng hơn:

Amazon Web Services: cung cấp một loạt các sản phẩm dựa trên đám mây trên toàn cầu bao gồm máy tính, lưu trữ, cơ sở dữ liệu, phân tích, mạng, thiết bị di động, công cụ dành cho nhà phát triển, công cụ quản lý, IoT, bảo mật và các ứng dụng doanh nghiệp: theo yêu cầu, khả dụng trong vài giây, trả phí -giá cả tùy ý. Từ kho dữ liệu đến các công cụ triển khai, thư mục đến phân phối nội dung, hơn 175 dịch vụ AWS có sẵn.

Anh Tèo quyết định trở thành khách của AWS. Anh đăng kí mua gói cơ bản, giờ anh có 1 server chạy trên AWS, services thì chạy trên EC2, các backend method đã có Lambda, dữ liệu thì lưu trữ trên S3 bucket, anh còn đang nghiên cứu chuyển qua dùng Kafka cho giống Linkedin vì kafka dữ liệu cập nhật và lưu trữ thông minh hơn. Service của anh giờ còn có chatbot để chat cùng khách hàng và anh được theo dõi toàn bộ server của mình thông qua Amazon Cloud Watch.

Với AWS, Tèo đã phát triển web bán gà của anh thành một thương hiệu International, với quy mô đàn gà 1000 con và nhiều gà ngoại.

Tèo đã xem video sau và thành công, còn bạn thì sao?:

Author:

NGUYEN TRUONG THANH / Software Engineer in Atomotive, Germany

_________________________________________

E-mail: thanhnguyen1181991@gmail.com  

Phone: 004917657997009

GLS it Services, Eschborn, Frankfurt am Main, Germany 

Website: thanhnguyensite.net

Posted in Home

Using AI for object classification.

In this post I will show you the easiest way to combine AI, convolution neural network(CNN) and docker container to classified object in real time. So all thing you need to know is basic knowledge about docker and neural network. If you are very new to programming, don’t worry, just follow the step below, and you will have a program classified object in real time.

in the video above I’m driving a car go around with a camera on top, to tracking other car and person inside it. I use CUDA Yolo + Nvidia GPU. You can also do the same, all you need to do is download my Docker file and run it.

For who need to understand the theories behind, I will summaries like this. The docker file will create a Ubuntu Linux environment and install Nvidia GPU+OpenCV+darknet in to it. Darknet is a wonderful neural network, it was train by around 10 millions picture and can real-time recognize about 70 categories (car, dog, cat, ship, plane….). If you want to learn more about darknet, you can read my article : https://thanhnguyensite.net/2020/11/05/neural-network/

OK! now let’s go the AI world:

Darknet Nvidia-Docker Ubuntu 16.04

Prerequisites

  1. Make sure you have the NVidia driver for your machine

Find out your the Graphics Card model

lspci | grep VGA

https://www.nvidia.com/Download/index.aspx?lang=en-us

How to install NVidia Drivers on Linux https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07#install-nvidia-graphics-driver-via-runfile

  1. Install Docker and NVidia Docker https://github.com/NVIDIA/nvidia-docker

Steps to run

  1. Clone this repo:
git clone https://gitlab.com/thanhnguyen1181991/darknet-docker.git
  1. Build the machine (this step might take a while, go make some coffee)
docker build -t darknet .
  1. On start.sh make sure you have the correct address of your webcam, in file start.sh line 8, if you use laptop onboard webcam, then choose: device=/dev/bus/usb/003/004:/dev/video0, if use external webcam, then: device=/dev/bus/usb/003/004:/dev/video0

Find your webcam bus

lsusb -t

Change the following line with the correct webcam bus

--device=/dev/bus/usb/003/002:/dev/video0
  1. Map a local folder to the Docker Container

Format:

/local/folder:/docker/folder

on start.sh change the following line

-v /home/projects:/dev/projects \
  1. Run the machine with Webcam
sh start.sh

Darknet

Make sure you have the weights for what you want to run

More information at https://pjreddie.com/darknet/

Posted in Home

6 tips for Linux noob (like me)

In this post I will share experience using linux command, and was we can do and play with a operating system for Developer, or shorter is Linux. You don’t need to know more about this, I will show you how you can create funny program with some Linux command, what you can’t do in Windows.

1. Linux updates and upgrades do not require you to reboot

Re-booting after every software installation or update is very annoying in Windows. I keep wondering why this is not necessary in Linux, but on Windows is rule of tumb – every installation is asking you to re-boot, or after you download the Upgrades annoying window pop up and say – will reboot in 10 minutes, save your work. This is really annoying.

With Linux all you need to do is run : sudo apt update

Then have a cup of coffee until it update your computer.

2. No need to install drivers every time you plug in your computer USB device

OK, I understand that there are custom devices which use uncommon drivers like printers, cameras, etc, but why on earth every time you plug in Windows simple mass storage disk drive, or USB-Serial converter, or Mouse, or Keyboard – devices which are standard and are embedded in every Windows OS after W98 it ALWAYS ask for drivers which are already there? Why on Linux I plug the external HHD or Flash drive and it automatically mounts on my computer and I can work with it, while Windows is asking me for drivers and several minutes scans and show me different windows with warnings and Continue buttons like I’m doing something scaring which may ruin my OS?

3. You can move image/boot-able drive between machines without need for reinstall

Yes! this is something windows users can’t imagine is possible! I do remember back in the dark ages Windows asked me to re-install after I have upgraded the RAM memory size! Now imagine you get your Windows boot-able HDD and plug it on other computer, will it boot? no way!

4. system config in files not registers mess

Now this is one of the most annoying WIndows features – after several months of installing and removing software your registers and windows/system directory becomes so bloated with shared DLLs and mess that some people start making money by writing registry cleaning software!

5. You can’t boot windows from USB Stick

Probably they didn’t find a way to ask you for registration and to collect your money every time they sense this USB is plug to other computer??

6. You cant see this on Windows:

# uptime
15:54PM up 122 days, 11:22, 5 users, load average: 0.12, 0.30, 0.13

every few days if you do not reboot windows machine it starts to act slowly due to the severe memory fragmentation

Posted in DevOps

An overview about Metal as a Services(MaaS)

Hello again! Today’s class is metal as a service MAAS so we’ve been doing a number of classes lately on these different services, we’ve talked about software as a service we’ve talked about infrastructure as a service, and we have talked about platform as a service. Now when you’re talking about these services by far the most popular solution out there is software as a service that is where you basically you go out and you lease software from companies and the software is all run on their server so we’re talking about software as a service think about things like Google Docs think about things like Salesforce the software is not installed on your local computer.

Its installed on their servers and you access that somehow these are either through a web browser or through some type of a terminal connection something like that tied by the infrastructure as a service basically when your your infrastructure all those things that you would buy and install in your premises you no longer actually own anymore.

So think about your telephone systems companies you should spend $50 thousand on their telephone system and that telephone system was installed in their premises and they owned it now you can get hosted voice over IP solutions such as on sip you get hosted firewall solutions you can have hosted server rooms why have your own servers when you can go to Amazon Web Services and simply spin up a number of virtual services on their platform so that is infrastructure as a service.

We then talked about platform as a service platform as a service is where you create your web apps and then you are looking for some place to host them so the basic idea is think about a shared hosting web plan you create your web site you create your web application and then you simply upload that to GoDaddy or one in one servers their servers have PHP installed their servers have my sequel installed their servers have Ruby or Perl or any of these other scripting languages that you need all that you have to worry about is your application of course that gets much more complicated once you go over to Google App Engine and some of the more and more advanced things but that’s the the basic concept so now we’re getting to basically probably the last service that I will be talking about is metal as a service now this is one of those really really really cool ideas that actually it is pretty cutting-edge I’m not sure if it’s bleeding edge but it’s pretty cutting edge so some of you guys looking to create businesses out there really should listen to what I’m talking about right now because it really is a good business opportunity right now because not very many people actually offer this service so when we’re talking about metal as a service what we are literally talking about is providing the server hardware as a service to clients so this is not the same thing as what you would normally think about with cloud computing or virtualization where you install a hypervisor onto a server and then they spin up some kind of a instance of a server and this isn’t the same thing as a dedicated server so for thanhguyensite.net and a couple of other things that I do we rent a dedicated server from a company called one and one comm with that I get a specific server 12 gigs of ram quad core processor blah blah blah.

With a certain version of Linux on it and then from that point I can configure up but with that when you are purchasing something like a dedicated server you have to use whatever operating systems are provided by the provider so with one and one com if you go with them you can use like Server 2008 or Server 2012 Fedora sent OS if you wanted to use something else tough luck if you wanted to use freebsd on one of these services that you couldn’t do it if you wanted to install a hypervisor on Twenties dedicated services servers you couldn’t do it the reason is is because although you’re renting the dedicated server it has to have a bare minimum installation on it before you are actually able to get access to it the cool thing with metal as a service it is the concept is that you are literally renting the physical box with nothing else on it so this is where you would go to a provider and you would literally rent it would be a quad-core xeon processor with so much RAM so much hard drive and that’s it there would not necessarily be sent OS on it there were not necessarily be windows on it there wouldn’t necessarily be anything on it.

You are literally renting the metal as a service so basically now instead of having to have your own server rooms with your own equipment your own server racks your own HVAC you’re all redundant to power supply and your ups and all of that kind of stuff you can have the same thing sitting in somebody else’s server room so they are renting to you the metal as a service now that you may be wondering why why would you bother with that if you can get virtual servers if you can use infrastructure as a service if you can even get dedicated servers why would you run want to rent or lease the bare metal as a service well as you go through with your companies.

If you have a startup company or if you have a technology company and you start growing what, you are going to find is no matter what operating system distribution you use. It is probably not going to be optimized for whatever it is you’re doing so you know we all know with Windows we all know with Windows. Windows hogs up a lot of extra resources to do things most of us really truly don’t care about it we’ll be happy if it did it but a lot of people don’t realize is even with Linux.

Even with Linux there are resources that are used there are security vulnerabilities that are opened up simply because when you install the default installation of whatever Linux you’re going to be using it installs a base level of applications and services and a lot of times you don’t need that so imagine if you were a company where you want to spin out a lot of database servers and you want those database servers to run at the absolute optimum the fastest they can possibly run well you may want to go in to a distribution of an operating system and literally rip out all the crap that you don’t want you don’t need notepad you don’t need tar you don’t need a lot of these these things you just need that server to run as fast as possible to do a specific task possibly do something like a database server because this becomes very important especially when you start dealing with larger companies that are dealing with a larger load on their servers because when you rip out all of the crap you don’t need on it on a servers operating system.

You can gain efficiencies now this is not you’re not going to probably speed up the server by 200% or 500% or a thousand percent right that’s not what what the target you’re going to hit you may be able to actually speed up the server though by something like five percent now for you especially if you haven’t dealt with real server rooms if you haven’t dealt with real loads on servers optimizing an operating system we get five percent improvement probably doesn’t sound like a big deal but with companies if you if you have 20 servers up and running or 40 servers up and running a five percent increase in speed can be very very very very very very very significant so with these companies they may be looking to optimize the things like I say the operating systems that will be installed how all this will be configured how all this will be managed and so all they want is the bare metal they want the server they want the hard drives they want the RAM.

They want the CPU but they don’t want anybody else to mess with the rest of it they want to be able to build this thing from the ground up and again there can be a lot of reasons for this nowadays things like again efficiency making sure that the resources on the server are optimized but also issues such as compliance so compliance is becoming a bigger and bigger deal within the the corporate world what compliance means is that you are running your IT systems to certain specifications for security and reliability so as more and more companies start using cloud computers and servers and all that to run the infrastructure of their business they have to make sure that that infrastructure is reliable enough for their industry now one of the problems if you go out and you use a standard instance of an operating system or you use a standard load of an operating system from one of these providers is you don’t necessarily know all the security flaws you haven’t necessarily been able to sit down and do penetration test and do hardening testing and do all of those things so when you when you are leasing let’s say from 1 + 1 , dedicated server you can’t guarantee that this is that the the server operating system that has been installed is as hardened as it should be.

Now again for somebody like me I don’t care again do good backups and you should be fine for and this is one of the things you have to think about for 98% of the business population this type of concept doesn’t matter but for that 2% it is very very very important it is very important that they know that whatever operating system and software that’s going to be installed in that server it lives up to certain specifications so that’s why they would want to be able to rent that that bare metal as a service so metal as a service now one of the questions that you’re going to be coming up in with thanh’s you’re gonna be saying work and got me saying.

Well Thanh uh I don’t understand how you would interact with metal as a service then because you know when we think about dealing with these virtual computers when we think about dealing with it with cloud computers and all that we have a basic interface to deal with so basically again if you get a dedicated server you get a virtual private server they spin up the operating system and then they give you the login credentials so basically the company that you’re buying the service from they have already installed the instance of the operating system they’ve already created the first user account they then give you that information for that first user account and then you can figure it out.

However it is you want so the question you may be asking say well I don’t I don’t understand that because if you’re literally renting the metal and the metal let’s say five states away well wait a minute but there’s no operating system to interact with and the metals five states away so you don’t want to drive there so so I don’t understand how you would configure it or work with it well one of the cool things and not really new but but they’re they’re coming too more into vogue is something called IPP KVM switches so kate.

KVM switches been around for forever long far longer than i’ve been in the computer industry keyboard video mouse switches so what these are generally when you’re dealing with a server rack is you plug all the servers in the rack into one KVM switch and then you can press a button then when you press that button that gives you access to the server from one keyboard video and mouse combination so you have a monitor you have a keyboard and mouse and you say oh I need to deal with the wit server – and you just hit the server – button and server – pops up oh I need to deal with server 10 you click the server 10 button and the server 10 pops up well with KVM they now have IP k via what this means is that you can deal with that server from the basic input/output so the basic video keyboard and mouse and you can do that over an IP connection so you can either open that up through a web browser and be able to log in or you can open it up through some kind of terminal session or or some kind of application so basically you can be sitting in your in your office five states away from this bare metal the company that you’re dealing with will plug in the KVM switch and whatever else and then basically you can hit the on there.

They can hit the on button or you may have some kind of remote wait at the on button and from there it will literally load into a BIOS screen then from there depending on what the the service provider has for you you can go and you can install your your your your operating system and do all of your configurations but literally you have remote access to the lowest level of that server so you could literally reboot that server and go into the BIOS and change BIOS configuration settings you literally have that ability whether you’re five states away or you know on an entirely different continent now especially with PDUs so the the power distribution units basically what most people will call surge protectors even those have remote access so that you can do things like power cycle the server because again the question where you’re like well Thanh I don’t understand if if you have metal as a service.

If you have that metal and you do something wrong and it freezes up how do you force it to restart because again you know you’re installing operating systems you’re doing all kind of wacky stuff sometimes it’ll freeze and if you have access to the metal what are you going to do well with these surge protectors these power distribution units you can actually power cycle them again remotely so this is the cool stuff with metal as a service I think this is going to become a much more prominent thing right now this is one of those things that it is offered by companies you don’t see it around a lot but it is something that you should be looking at and you should be thinking about because again this way you can have you you can have your own custom servers that have been hardened up to your specifications but they are sitting in somebody else’s data center you don’t have to worry about it just like with all these commoditized items it is less expensive for you to be able to rent this service from somebody else that can have a thousand or five thousand or twenty thousand of these servers up and running basically they can have five or ten technicians running around making sure all the metal is doing with metal supposed to do versus if you had servers in each one of your individual offices and having people run around and deal with that kind of stuff so that’s the basic concept of metal as a service again all it is at the end of the day is you are literally leasing or renting that bare metal so you’ve got a server with absolutely no operating system on it.

That is what you’re leasing that allows you to do a lot of really cool sexy amazing cool stuff um and with the modern technology like I say it’s actually very very very doable today it’s one of those things when you got to start thinking we think about the cloud I mean that’s a whole one of the problems with us old technicians right is we’re used to touching stuff we like you know when we work on computers we’re used to keyboards we’re used to like plugging away and we’ve got the server in front of us and we got the router in front of us we got all this stuff in front of us so like mentally we think about all this equipment like being in our server room being in our office being in our facility and so what you have to realize is in this modern world that we’re in you can have the exact same functionality that you would have if the equipment was in your building but it can be somewhere else it can be provisioned given to you very quickly it can be given to you very inexpensively and you can be provided as securely or more securely than what you could do yourself again a lot of people you know I’m starting to talk you know talking about things like metal as a service and everybody gets worried about security everybody’s like oh how do I how do I know Thanh.

How do I know my servers are going to be secure how do I know that data center is going to be secure well one you do something called due diligence you you actually make sure that the company that you’re dealing with is a legitimate company you probably if you’re going to be running your business office stuff you should fly out to their data center at least once to actually take a look at it make sure they’ve got all the security stuff and all that but beyond that what a lot of people don’t realize is how in secure their facilities actually are they always worry about how insecure the cloud provider is and they somehow completely ignore just the crappy crappy crappy crappy crappy security that they have on their facility again I’m here in Baltimore Maryland in the Baltimore City.

We have an incredibly high crime rate and so one of the real problems that you have is you can have antivirus on your servers you can have your firewalls on your servers you can of your intrusion detection on the servers you can have your ups on the servers and some crackhead could break into your building literally rip the server out of server rack and walk away with it and try to sell for 25 bucks to the local pawn shop and when they can’t sell it at the local pawn shop then they’ll get pissed and they’ll just throw it in a ditch and keep walking again that’s the nice thing with these data centers at least with that kind of physical security you would be surprised many times they have much much much much better physical security in the rest of this then then you have take a real honest hard look at the security in your facility and if you’re honest about it you probably know that it’s it’s probably pretty bad it’s probably probably probably your servers would be better off in some kind of hosted solution so that’s all there is for from metal as a service.

I enjoy taking this class and look forward to see you the next one you.