Nomad by HashiCorp Presentation (DevOps)

knoldus 89 views 29 slides Jul 12, 2024
Slide 1
Slide 1 of 29
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29

About This Presentation

Nomad is a workload orchestrator designed by HashiCorp to deploy and manage containers and non-containerized applications across on-premises and cloud environments. It is a single binary that schedules applications and services on a cluster of machines and is highly scalable and performant. Nomad is...


Slide Content

Vikas Vashisth ( Sr. Software Consultant – DevOps at NashTech )

Lack of etiquette and manners is a huge turn off.   KnolX Etiquettes Punctuality Join the session 5 minutes prior to the session start time. We start on time and conclude on time! Feedback Make sure to submit a constructive feedback for all sessions as it is very helpful for the presenter. Silent Mode Keep your mobile devices in silent mode, feel free to move out of session in case you need to attend an urgent call. Avoid Disturbance Avoid unwanted chit chat during the session.

What is Nomad Why use Nomad Comparison between Nomad and  Kubernetes Customers of HashiCorp  Nomad Architecture  Installation and Setup  Understanding Job and Task Groups  Demo Quick Questions and Answers round

What is Nomad ?

What is Nomad ? Nomad is a workload orchestrator developed by HashiCorp , the company behind other popular tools like Vagrant, Terraform and Vault. It is designed to manage and deploy applications across an entire infrastructure which can include multiple datacenters and regions. HashiCorp Nomad is a modern, lightweight, workload scheduler.  Nomad is also known as orchestrating engine like Kubernetes.  HashiCorp Nomad makes it easy for any organization to easily deploy and manage its applications. It can not only orchestrate containerized applications but also legacy applications using a single, unified workflow.  Nomad can also run Docker, non-containerized, microservice, and batch applications.

Why use Nomad ?

Why use Nomad ? Simplicity: Nomad is designed to be simple and easy to use. It has a straightforward setup process and a user-friendly interface. This can make it easier to get started with and manage compared to more complex orchestration systems. Flexible Workload Support: Nomad supports a variety of workloads, including containerized applications (using Docker), standalone applications, and even virtual machines. This flexibility can make it a good fit for a wide range of use cases. Scalability and Performance: Nomad is designed to be highly scalable and performant. It can handle orchestrating thousands of deployments across multiple regions, making it suitable for large-scale, high-load environments. Multi-Region and Multi-Datacenter Support: Nomad supports running applications across multiple datacenters and regions. This can help provide high availability and reduce latency, which can be particularly important for global applications. Integration with Other HashiCorp Tools: If you're already using other HashiCorp tools like Consul for service discovery and networking, or Vault for secret management, Nomad can integrate with these tools, providing a cohesive and powerful toolset. Security: Nomad includes built-in mechanisms for secure operation, including Access Control Lists (ACLs), Namespaces, and Sentinel policies. This can help ensure that your deployments are secure.

Why use Nomad ? Resource Efficiency: Nomad's bin packing algorithm helps to efficiently utilize resources and reduce costs. Community and Support: HashiCorp has a strong community and provides good support for its tools. This can be a big advantage when you need help or want to extend the tool's capabilities.

Comparison between  Nomad and Kubernetes 

Features Nomad Kubernetes Complexity and Ease of Use Nomad is simpler to set up and use, with a single binary for both clients and servers. Kubernetes is more complex with a steeper learning curve, but offers a wider range of features. Scope Nomad is primarily a task scheduler and deployer. It integrates with other tools for additional features. Kubernetes is a comprehensive platform that includes service discovery, scaling, load balancing, and more. Workload Support Nomad supports containerized and non-containerized applications, as well as virtual machines. Kubernetes primarily supports containerized applications. Multi-Datacenter and Multi-Region Support Nomad natively supports running applications across multiple datacenters and regions. Kubernetes supports multi-datacenter and multi-region deployments, but it requires additional configuration. Scalability Both are designed to be highly scalable, but Nomad's simplicity can make it easier to manage at scale. Kubernetes is highly scalable and widely used in large-scale environments. Community and Ecosystem Nomad has a smaller community but integrates well with other HashiCorp tools. Kubernetes has a larger community and a wide range of extensions and integrations available.

Why should we use Nomad ? If you need a simple , focused tool for scheduling and deploying tasks or if you have a lot of non-containerized workloads, Night might be the better choice. If you need a comprehensive solution that includes service discovery, load balancing and more and you're willing to deal with the complexity, Kubernetes might be the better choice.

Customers of Hashicorp

HashiCorp -  Nomad Customers https://developer.hashicorp.com/nomad/docs/who-uses-nomad ​ f​

Nomad Architecture

Prerequisites Operating System: Nomad is a cross-platform tool. It supports Linux, Windows, and macOS. However, for production use, a Linux-based system is typically recommended. Hardware: The hardware requirements for Nomad depend on the workloads that you plan to run. However, at a minimum, you should have a machine with at least 1 GB of RAM and a 1-core processor. For production use, a machine with more resources would be needed. Software: You need to have a modern version of the Go programming language installed if you plan to build Nomad from source. If you plan to run Docker-based workloads, you need to have Docker installed. If you plan to use Nomad's web UI, you need to have a modern web browser. Network: Each Nomad agent (both servers and clients) needs to have network connectivity with each other. This is typically done over TCP/IP. The specific ports that need to be open depend on your configuration. Knowledge: While not a strict prerequisite, it's helpful to have some knowledge of system administration and networking concepts. Familiarity with the basics of containerization (especially Docker) can also be helpful if you plan to run containerized workloads.

Prerequisites For Nomad Servers

Nomad Architecture Nomad follows a client-server architecture where the servers are responsible for managing the cluster and scheduling jobs, while the clients are responsible for running the jobs. Here's an overview of Nomad's architecture: Server Nodes: The server nodes are the brains of the cluster. They accept job submissions, determine which clients should run the jobs, and monitor the cluster for failures. Servers use the Raft consensus protocol to handle leader election and state replication. A Nomad cluster typically has an odd number of server nodes (such as 3 or 5) to tolerate failures and maintain a quorum. Client Nodes: The client nodes are the workers of the cluster. They run the tasks that make up the jobs. Each client node runs a Nomad agent, which registers the node with the servers, reports on the node's status, and handles task execution. Jobs and Tasks: In Nomad, a job is a declarative specification of tasks to run. Each task belongs to a task group, which is a set of tasks that are scheduled together. Tasks can be anything from Docker containers to standalone applications. Schedulers: Nomad uses pluggable scheduling algorithms to determine how to allocate resources to tasks. It includes several built-in schedulers for different use cases, and you can also add your own.

Nomad Architecture Service Discovery and Load Balancing: Nomad integrates with the  HashiCorp's Consul for service discovery and load balancing. This allows tasks to find each other and distribute traffic. Secret Management:  Nomad integrates with the HashiCorp's Vault for secret management. This allows tasks to securely access secrets like APIs keys and passwords. Web UI:  Nomad includes a Web UI that provides a visual way to interact with the cluster. You can use it to view the status of jobs and task, submit new jobs and more.

Understanding Job and Task Groups

Job Specification File

Demo

Quick Questions and Answers round

A. HashiCorp B. GitHub  Q1. Nomad is developed by __________ ? C. AWS D. Microsoft

A. HashiCorp B. GitHub  Q1. Nomad is developed by __________ ? C. AWS D. Microsoft

A. 2-8 core B. 8-16 core Q2. What is the CPU range for a small Nomad server? C. 2-4 core D. 4-8 core

A. 2-8 core B. 8-16 core Q2. What is the CPU range for a small Nomad server? C. 2-4 core D. 4-8 core

A.   50 GB B.   100 GB Q3.  What is the disk size for a large Nomad server? C.   150 GB D.   200 GB

A.   50 GB B.   100 GB Q3.  What is the disk size for a large Nomad server? C.   150 GB D.   200 GB
Tags