https://github.com/neimat1/quarkus
https://github.com/neimat1/quarkus
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/neimat1/quarkus
- Owner: Neimat1
- Created: 2023-03-07T14:19:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-19T16:05:11.000Z (about 2 years ago)
- Last Synced: 2025-01-25T09:42:10.652Z (5 months ago)
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Quarkus
Today, big data does not merely mean a big quantity of datasets but flexible storage options for a big quantity of data.
This is where containers and, specifically, Kubernetes fits in. In a nutshell, you can think of a container as a packaged application that contains just the libraries that are needed to run it, and Kubernetes is like an orchestrating system that makes sure all the containers have the appropriate resources while managing their life cycle.
Kubernetes runs images and manages containers using Docker.
**Kubernetes**: focuesd around
+ The concept of loosely coupled
+ Flexible mechanism for service discovery
### Kubernets Components

+ **Master Node**: make up brain for cluster, responsible for managing overall the cluster
+ API server: Synchronize and validate information running in pods
+ etcd: provides consistent and hight availablity storage for cluster data
+ Controller Manager: check changes in **etcd** and uses its api to enforce the desired state
+ HA Proxy:we add when we configuring the HA master to balance load between severel master endpoints
+ **Nodes**: conatin all services that are needed to run the applcations in commponents called pods. Each node exposes a set of resources (such as computing, networking, and storage) to your applications. run as a VM.
+ Pods: group conatiners and pieces of application together
+ Kubelet: agent runs in each node and makes sure that containers running in a pod
+ Kube-Proxy: maintains network rules on node
+ Container runtime: software responsible for running containers
### Kubernets benefits
+ Simplifies container management
+ Speed up the process of testing, releasing and building
+ Provides fastest and least costly horizonetal scalability
+ Manage stateless and stateful applications
### MicroProfile
At first glance, it appears that Java and microservices don't really match. Many major vendors, including IBM, Red Hat, and Payara, have already provided a lightweight and extensible runtime to power microservices and cloud deployments. Their individual efforts were naturally followed by an open collaboration within the **MicroProfile.io** initiative.

It's unsufficient to develop complex enterprise applications because some functionslities doesn't exist on it so we need another framework that leverages the MicroProfile API with extensible functionalities and can be orchestrated by Kubernetes.### Quarkus
Quarkus extensions include the full Eclipse MicroProfile Stack, a persistence API (JPA), a transaction manager (Narayana), a reactive framework (Vert.x), an asynchronous event-driven network application framework (Netty), and much more.
### Quarkus Architecture

### GraalVM
Compile java code into native executibles.

### Installation steps GraalVM:
- Download GraalVM from https://github.com/graalvm/graalvm-ce-builds/releases
- Make new directory and extrat the downloaded graal in it
- Open .bashrc file and add thus instructions
```
export JAVA_HOME=/pathOfExtractedFolder
export GRAALVM_HOME=/pathOfExtractedFolder
export PATH=$JAVA_HOME/bin:$GRAALVM_HOME/bin:$PATH
```
- Open Terminal and write
```
source .bashrc
```
## Good refernces
- https://github.com/PacktPublishing/Hands-On-Cloud-Native-Applications-with-Java-and-Quarkus
- https://static.packt-cdn.com/downloads/9781838821470_ColorImages.pdf
- https://www.youtube.com/playlist?list=PLeLcvrwLe185w1zWXaie0QVe0QHo6B0X_