![Profile](/avatar.webp)
Hello Everyone!
I'm Duy, a lover of technology, programming,solution architect and everything related to IT.
Mới nhất
![Lesson 1 - Introduction to Ubuntu Server and VirtualBox](/courses/ubuntu-basics-using-virtualbox/lesson-1-introduction-to-ubuntu-server-and-virtualbox.webp)
Lesson 1 - Introduction to Ubuntu Server and VirtualBox
In this lesson, you will learn about Ubuntu Server and VirtualBox, as well as how to install them on your computer. Ubuntu Server is a Linux operating system based on Debian, designed to run on servers and virtual machines. VirtualBox is an open-source virtualization application, allowing you to create and manage virtual machines on your personal computer.
![Install and Secure Memcached on Ubuntu 22.04](/labs/linux/memcached.png)
Install and Secure Memcached on Ubuntu 22.04
Learn how to install and secure Memcached on Ubuntu 22.04. Memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
![Pgpool-II Admin Ubuntu](/labs/postgresql/postgresql-pgpooladmin.jpeg)
Pgpool-II Admin Ubuntu
Pgpool Admin is a configuration management and monitoring tool for PGpool-II, helping you manage and monitor the performance of your PostgreSQL database. In this guide, we will go through the steps to install and configure Pgpool Admin on Ubuntu Linux, helping you manage and monitor the performance of your database.
![Lesson 1 - Install Pgpool-II on Ubuntu 22.04](/labs/postgresql/postgresql-pgpool.jpeg)
Lesson 1 - Install Pgpool-II on Ubuntu 22.04
PGpool-II is a unique middleware solution, specially designed to optimize and scale the capabilities of the PostgreSQL database management system. It brings many benefits such as optimizing connections, load balancing, and performing data replication, making PGpool-II an indispensable tool in managing PostgreSQL deployments. In this detailed guide, we will go through the steps to install and configure PGpool-II on the Ubuntu Linux operating system, helping you to maximize the performance and high availability of your database.
![Lesson 2 - Load Balancing and Replication](/labs/postgresql/postgresql-pgpool.jpeg)
Lesson 2 - Load Balancing and Replication
PGpool-II is a unique middleware solution, specially designed to optimize and scale the capabilities of the PostgreSQL database management system. It offers numerous benefits such as optimizing connections, load balancing, and performing data replication, making PGpool-II an indispensable tool in managing PostgreSQL deployments. In this detailed guide, we will go through the steps to install and configure PGpool-II on the Ubuntu Linux operating system, helping you to maximize the performance and high availability of your database.
![Lesson 4 - PostgreSQL 16 Replication Setup](/labs/postgresql/postgresql-16-replication.jpeg)
Lesson 4 - PostgreSQL 16 Replication Setup
PostgreSQL has a layer replication feature, allowing data to be copied from one DB to another, creating multiple copies of data. This feature helps distribute data, ensure the latest data, and support replacing the primary server.
![Install Open VPN Server on ubuntu 22.04](/labs/open-vpn/featured-image.webp)
Install Open VPN Server on ubuntu 22.04
Open VPN là một phần mềm mã nguồn mở giúp tạo ra một mạng riêng ảo (VPN) giữa các máy tính. OpenVPN có thể chạy trên nhiều hệ điều hành khác nhau, bao gồm cả Linux, Windows, Mac OS X, và các thiết bị di động.
![Lesson 1 - Introduction to Docker](/courses/docker-basic/introduction-to-docker/featured-image.webp)
Lesson 1 - Introduction to Docker
Docker is one of the most popular tools for containerizing applications. It offers efficiency and operational cost reduction, enabling any developer in any development environment to build stable and reliable applications.
![Lesson 2 - Installing Docker on Mac M1](/courses/docker-basic/install-docker/featured-image.webp)
Lesson 2 - Installing Docker on Mac M1
To install and use Docker on Mac M1 efficiently, you need to carefully follow these steps in detail. Mac M1 uses ARM architecture, so there are a few things to note to ensure Docker operates smoothly.
![Lesson 3 - Building Docker Image](/courses/docker-basic/build-docker-image/featured-image.webp)
Lesson 3 - Building Docker Image
To efficiently build Docker Images, understanding each step and applying optimization techniques is crucial. Here is a more detailed guide with additional examples on how to create Dockerfile, build Images, optimize, and share Docker Images.
![Lesson 4 - Running a Docker Container](/courses/docker-basic/run-docker-container/featured-image.webp)
Lesson 4 - Running a Docker Container
A detailed guide on how to run a Docker container. You will learn how to choose a Docker image, use the `docker run` command, and common options like `-it`, `--rm`, `-p`, and `-v`.
![Lesson 5 - Docker Compose](/courses/docker-basic/docker-compose/featured-image.webp)
Lesson 5 - Docker Compose
Docker Compose is a powerful tool that helps you define and run multiple Docker containers easily and efficiently. You will learn how to use Docker Compose to manage your application with a simple YAML configuration file.
![Lesson 6 - Docker Security](/courses/docker-basic/docker-security/featured-image.webp)
Lesson 6 - Docker Security
Docker Security is an important topic that everyone using Docker should be concerned about. In this lesson, we will explore issues related to Docker security and how to solve them.
![Lesson 7 - Docker Networking](/courses/docker-basic/docker-networking/featured-image.webp)
Lesson 7 - Docker Networking
Docker Networking is an important topic that everyone using Docker should be concerned about. In this lesson, we will explore issues related to Networking in Docker and how to solve them.
![Lesson 8 - Docker Storage](/courses/docker-basic/docker-storage/featured-image.webp)
Lesson 8 - Docker Storage
Docker Storage is an important part of Docker, helping manage data and storage within containers. In this article, we will explore the types of storage in Docker, how to manage and use storage within containers.
![An Overview of TCP/IP](/series/network/so-luoc-ve-tcp-ip.webp)
An Overview of TCP/IP
TCP/IP is the main network protocol suite behind the Internet, including TCP (Transmission Control Protocol) and IP (Internet Protocol), ensuring reliable and efficient data transmission.
![What is GraalVM?](/series/graalvm/graalvm-what-is.webp)
What is GraalVM?
GraalVM is a unique multi-language virtual machine platform developed by Oracle, supporting Java and many other languages such as JavaScript, Ruby, and Python. It provides ahead-of-time (AOT) compilation and significantly optimizes performance for applications. GraalVM is suitable for developing microservices, cloud applications, and enhancing interaction between programming languages.
![Installation and Configuration of MAAS (Metal as a Service) on Ubuntu 22.04 LTS](/series/mass-101/installation-and-configuration-of-maas-metal-as-a-service-on-ubuntu-22-04-lts.webp)
Installation and Configuration of MAAS (Metal as a Service) on Ubuntu 22.04 LTS
Installing and configuring MAAS (Metal as a Service) on Ubuntu 22.04 LTS provides an efficient physical hardware management solution, with automation capabilities and easy scalability. This process optimizes server configuration and resource management, supporting cloud environments and data center operations
![Introduction to MAAS (Metal as a Service)](/series/mass-101/introduction-to-maas-metal-as-a-service.webp)
Introduction to MAAS (Metal as a Service)
MAAS (Metal as a Service) is a solution that provides direct hardware, enabling automation of operating system deployment on physical servers. It provides the ability to remotely manage hardware in a flexible and efficient way, supporting cloud and data center environments. MAAS helps optimize operations, reduce installation and configuration time, thereby improving performance and stability for IT infrastructure.
![Creating a new partition in Ubuntu 22.04](/series/linux/disk/ubuntu/creating-a-new-partition-in-ubuntu-22-04.png)
Creating a new partition in Ubuntu 22.04
This post guides you on how to create a new partition in Ubuntu 22.04. The post includes steps from checking the hard disk partition, identifying the disk, creating a new partition, creating a Physical Volume, creating a mount point, checking the Volume Group (VG), creating a Logical Volume (LV), creating a File System, and finally mounting the Logical Volume. Each step is detailed with necessary commands and illustrative images.
![Lesson 1 - Introduction to PostgreSQL Database](/series/postgresql-dba/postgresql-dba-01-introduction-to-postgresql-database.webp)
Lesson 1 - Introduction to PostgreSQL Database
PostgreSQL is a powerful and open-source Object-Relational Database Management System (ORDBMS), known for its stability, scalability, and SQL compliance. Initially developed at the University of California, Berkeley, in the 1980s, it has since become one of the most popular open-source databases worldwide.
![What is ACID?](/series/database/what-is-acid.png)
What is ACID?
ACID (an acronym for Atomicity, Consistency, Isolation, Durability) is a database concept that experts often look for when evaluating databases and application architectures. For a reliable database, all four properties need to be achieved.
![Lesson 3 - Object Model PostgreSQL](/series/database/postgresql-dba-03-object-model-trong-postgresql.webp)
Lesson 3 - Object Model PostgreSQL
PostgreSQL is an object-relational database management system (ORDBMS). This means it combines features of both relational databases (RDBMS) and object-oriented databases (OODBMS). The object model in PostgreSQL provides features such as user-defined data types, inheritance, and polymorphism, enhancing its capabilities beyond a typical SQL-based RDBMS.
![Extend LVM Disk on Linux Ubuntu 22.04](/series/ubuntu-lvm.png)
Extend LVM Disk on Linux Ubuntu 22.04
LVM (Logical Volume Manager) is a tool on the Linux operating system that allows more flexible management of drives and drive partitions. Instead of dividing the drive into fixed partitions, LVM allows the creation of virtual volumes (logical volumes) that can be resized, creating many smaller storage blocks to make the most of free space.
![Deploy Keycloak version 22.0.4 with docker compose](/series/keycloak-docker.png)
Deploy Keycloak version 22.0.4 with docker compose
Deploy Keycloak version 22.0.4 with docker compose
![Lesstion 4 - Zabbix 6.2 alerts via Telegram](/series/zabbix/zabbix-agent-2-tren-ubuntu-2204-theo-doi-may-chu-postgresql.webp)
Lesstion 4 - Zabbix 6.2 alerts via Telegram
In the Zabbix alert section, I like the Telegram alert the most because it is fast and secure
![Lesstion 2 - Zabbix Agent 2 on CentOS 7 server used to monitor Mongodb Replica Set](/series/zabbix/zabbix-62-canh-bao-qua-telegram.webp)
Lesstion 2 - Zabbix Agent 2 on CentOS 7 server used to monitor Mongodb Replica Set
In this article I will guide you to install Zabbix Agent 2 on CentOS 7 to monitor Mongodb server
![Lesstion 3 - Zabbix Agent 2 on Ubuntu 22.04 monitors a PostgreSQL server](/series/zabbix/zabbix-agent-2-on-centos-7-server-used-to-monitor-mongodb-replica-set.webp)
Lesstion 3 - Zabbix Agent 2 on Ubuntu 22.04 monitors a PostgreSQL server
In this article I will guide you to install Zabbix Agent 2 on Ubuntu 22.04 to monitor PostgreSQL server
![Lesson 4 - Install Fastlane for IOS to push IPA to Firebase Distribution and Testflight](/series/react-native-devops/lesson-4-install-fastlane-for-ios-to-push-ipa-to-firebase-distribution-and-testflight.webp)
Lesson 4 - Install Fastlane for IOS to push IPA to Firebase Distribution and Testflight
In this article, I will guide you to eat the broken apple 🍎 🫢
![Lesson 3 - Register Firebase and configure Fastlane to push APK to Firebase Distribution (Test version)](/series/react-native-devops/lesson-3-register-firebase-and-configure-fastlane-to-push-apk-to-firebase-distribution-test-version.webp)
Lesson 3 - Register Firebase and configure Fastlane to push APK to Firebase Distribution (Test version)
To facilitate the tester team to test the product and more automated, we need to do CI - CD
![Lesson 1 - React Native DevOps basic concepts and settings](/series/react-native-devops/lesson-1-react-native-devops-basic-concepts-and-settings.webp)
Lesson 1 - React Native DevOps basic concepts and settings
Instructions for setting up jenkins agent to start building mobile with jenkins so developers can feel secure in developing products
![Lesson 1 - Overview of Java Core](/series/java-core-basic/java-core-lesson-1-overview-of-java-core.webp)
Lesson 1 - Overview of Java Core
Java is a high-level, general-purpose, object-oriented, and secure programming language developed by James Gosling at Sun Microsystems, Inc. in 1991. It was officially called Oak. In 1995, Sun Microsystem changed its name to Java. In 2009, Sun Microsystem was taken over by Oracle Corporation.
![Lesson 2 - Install JDK 11 development environment and tools and set up Java Home on Mac M1](/series/java-core-basic/java-core-lesson-2-install-jdk-11-development-environment-and-tools-and-set-up-java-home-on-mac-m1.webp)
Lesson 2 - Install JDK 11 development environment and tools and set up Java Home on Mac M1
Java is one of the most popular programming languages today with many applications around the world. In this lesson, we will learn about naming rules, data types and casts, operators, control structures, and branching. Understanding and using these concepts fluently will help you become a good Java programmer. Start learning these concepts now!
![Lesson 3 - Naming rules, data types and casts, operators, control structures, and branching](/series/java-core-basic/java-core-lesson-3-naming-rules-data-types-and-casts-operators-control-structures-and-branching.webp)
Lesson 3 - Naming rules, data types and casts, operators, control structures, and branching
Some software also uses older versions of Java, such as JDK 11, so installing JDK 11 will enable you to run those applications on your Mac M1 computer. This article will show you how to install JDK 11 and set up the Java Home environment variable on Mac M1.
![Lesson 4 - String Processing, 1-Dimensional Array, 2-Dimensional Array](/series/java-core-basic/java-core-lesson-4-string-processing-1-dimensional-array-2-dimensional-array.webp)
Lesson 4 - String Processing, 1-Dimensional Array, 2-Dimensional Array
String Processing, 1-Dimensional Array, and 2-Dimensional Array are important concepts in Java programming. In this section, we will learn about how to process strings in Java and how to use 1-dimensional and 2-dimensional arrays to store and process data. We will delve into each concept in detail, provide specific examples, and explain how to use them in real-world applications.
![Lesson 5 - Java Collections Framework](/series/java-core-basic/java-core-lesson-5-java-collections-framework-en.webp)
Lesson 5 - Java Collections Framework
The Java Collections framework is a set of classes and interfaces in Java that provides data structures for storing, accessing, and managing objects in Java. It provides some common types of data structures such as List, Set, and Map, as well as more complex data structures such as Queue, Stack, and Tree. The Java Collections framework can be used to increase efficiency, reduce time, and cost of data processing operations in Java.
![Lesson 6 - Object Oriented Programming (OOP)](/series/java-core-basic/java-core-lesson-6-object-oriented-programming-oop.webp)
Lesson 6 - Object Oriented Programming (OOP)
Object-Oriented Programming (OOP) is a programming method that allows building applications based on objects, such as real-world objects in the physical world. OOP focuses on encapsulating data and related functions into a single object, making it easier to develop, maintain, and expand applications. OOP includes important concepts such as inheritance, polymorphism, abstraction, and data encapsulation, helping programmers build flexible and maintainable applications.
![Lesson 8 - Using the Monitoring System integration (Elasticsearch, Fluentd and Kibana, Grafana, Zipkin) of Microk8s](/series/microk8s/lesson-9-using-the-monitoring-system-integration-elasticsearch-fluentd-and-kibana-grafana-zipkin-of-microk8s.webp)
Lesson 8 - Using the Monitoring System integration (Elasticsearch, Fluentd and Kibana, Grafana, Zipkin) of Microk8s
To detect and prevent errors, it will be very convenient if there is a good monitoring tool. Monitoring systems are responsible for monitoring the technology that a company uses (hardware, network and communication, operating system or application, among others) to analyze its performance, and detect and alert about potential errors. A good monitoring system is capable of monitoring devices, infrastructure, applications, services, and even business processes.
![Lesson 7 - Using Kong Gateway to deploy API Gateway for Microservices system on Microk8s](/series/microk8s/lesson-8-using-kong-gateway-to-deploy-api-gateway-for-microservices-system-on-microk8s.webp)
Lesson 7 - Using Kong Gateway to deploy API Gateway for Microservices system on Microk8s
Hello everyone, Continuing the microk8s series, this is the longest Reseach part of mine and how to deploy a microservices architecture
![Lesson 6 - Configuring Jenkins on Ubuntu 22.04 and writing Pipeline Build Service](/series/microk8s/lesson-7-configuring-jenkins-on-ubuntu-2204-and-writing-pipeline-build-service.webp)
Lesson 6 - Configuring Jenkins on Ubuntu 22.04 and writing Pipeline Build Service
Jenkins is an open-source automation server that automates repetitive technical tasks involved in the continuous integration and delivery of software. Jenkins is based on Java, which can be installed from Ubuntu packages or by downloading and running its web application archive (WAR) file—a collection of files that make up a complete web application to run on a server.
![Lesson 3 - Installing Kubernetes with Microk8s 1.26 on Ubuntu 22.04](/series/microk8s/lesson-4-installing-kubernetes-with-microk8s-1-26-on-ubuntu-22-04.webp)
Lesson 3 - Installing Kubernetes with Microk8s 1.26 on Ubuntu 22.04
A friend of mine once asked, why do I like microk8s more than minikube? ... Since then, we never talked again. It's a difficult question, especially for an engineer. The answer is not too clear, because it has to be experienced and personal preference. Let me show you why.
![Lesson 4 - Install and use ingress in the Microk8s integrator](/series/microk8s/lesson-5-install-and-use-ingress-in-the-microk8s-integrator.webp)
Lesson 4 - Install and use ingress in the Microk8s integrator
In this lesson, I need to add 1 VM to install Nginx to loadbalancer here I will create 1 more VM ubuntu 22.04
![Lesson 2 - Install and run the Oracle VM VirtualBox 7 virtualization environment using Vagrant](/series/microk8s/lesson-3-install-and-run-the-oracle-vm-virtualbox-7-virtualization-environment-using-vagrant.webp)
Lesson 2 - Install and run the Oracle VM VirtualBox 7 virtualization environment using Vagrant
If you are a programmer, software developer, software tester, designer, one day the project team will ask you to run the software on your computer, you have to build a system just like your computer, for easy development and testing, and limit the question "Why my computer can run, but your computer can't run", then we can use Vagrant to synchronize the development environment
![Lesson 1 - Create an Ubuntu 22.04 virtual machine using Oracle VM VirtualBox 7](/series/microk8s/lesson-2-create-an-ubuntu-2204-virtual-machine-using-oracle-vm-virtualbox-7.webp)
Lesson 1 - Create an Ubuntu 22.04 virtual machine using Oracle VM VirtualBox 7
In the previous article, I have guided you to install Oracle VM VirtualBox 7 on ubuntu 22.04, this article I will guide you to create Ubuntu VMs to practice this series