Cademy logoCademy Marketplace

Course Images

Getting Started with HashiCorp Nomad

Getting Started with HashiCorp Nomad

🔥 Limited Time Offer 🔥

Get a 10% discount on your first order when you use this promo code at checkout: MAY24BAN3X

  • 30 Day Money Back Guarantee
  • Completion Certificate
  • 24/7 Technical Support

Highlights

  • On-Demand course

  • 6 hours 22 minutes

  • All levels

Description

Learn to operate Nomad to deploy and manage applications and services across multiple environments, including on-premises, cloud, and hybrid. Learn from the expert who will guide you through lectures, demonstrations, and real-world scenarios, giving you the skills and knowledge you need to succeed with Nomad HashiCorp skillsets.

Nomad, a flexible scheduler and workload orchestrator, enables an organization to deploy and manage any containerized or legacy application easily using a single, unified workflow. Nomad can run a diverse workload of Docker, non-containerized, microservice, and batch applications. This course begins with an introduction to Nomad's key features and capabilities, including container orchestration, service discovery, and multi-cloud deployment. You will also learn to install and configure Nomad, set up a cluster, and integrate it with other HashiCorp tools stacks such as Consul and Vault. You will learn to deploy and manage applications on Nomad on different platforms and perform tasks, including scheduling, resource allocation, and rollouts. We will use the user interface to learn concepts based on our requirements. We will create job specifications and run our first Nomad job. We will manage Nomad and monitor a Nomad environment and application logs. We will create a rotating gossip encryption key and upgrade Nomad to newer versions. We will also explore how to troubleshoot and debug issues that may arise using Nomad in a production environment. By the end of this course, you will have the skills and knowledge required to use HashiCorp Nomad successfully and use Nomad to automate and streamline your organization's workflow. All resources are available at: https://github.com/Paramkrishna/Getting-Started-with-HashiCorp-Nomad

What You Will Learn

Learn to install and configure Nomad on various platforms
Explore creating and managing jobs and task groups
Learn how to secure Nomad using TLS, Gossip Encryption, and ACLs
Implement Nomad's API, command-line interface (CLI), and the UI
Integrate Nomad with other HashiCorp tools, such as Consul and Vault
Learn to troubleshoot and debug issues when using Nomad clusters

Audience

This beginner-level course on HashiCorp Nomad caters to software engineers, system administrators, and DevOps professionals wanting to learn to use Nomad to deploy and manage applications. This course aims at learners wishing to deploy and maintain apps in a production setup and use Nomad to automate and streamline workflows. The prerequisites include a basic understanding of the Linux OS and command-line interface and basic cloud computing and IaaS platform knowledge such as Amazon Web Services (AWS), Microsoft Azure, or Google Cloud. You should be familiar with containerization, orchestration, and microservices.

Approach

The course is delivered over a well-structured classroom-style setup with distributed and gradually advancing lessons through lectures, live demonstrations, and explanations of concepts over real-life scenarios. Multiple links for further study, quizzes, and self-paced study to gain mastery over the concepts delivered are also available.

Key Features

Explore features of Nomad, container orchestration, service discovery, and multi-cloud deployment * Install/configure Nomad and set up clusters and integrate with HashiCorp tools, Consul and Vault * Learn to deploy and manage apps on Nomad, including scheduling, resource allocation, and rollouts

Github Repo

https://github.com/Paramkrishna/Getting-Started-with-HashiCorp-Nomad

About the Author

Bryan Krausen

Bryan Krausen is an IT consultant with over 20 years of experience in enterprise IT. He specializes in Amazon Web Services and HashiCorp tools. Bryan focuses on cloud design and facilitates customer workshops that define business and technical requirements to allow businesses to deliver applications on the AWS cloud platform. He was the first individual to earn the HashiCorp Vault Expert partner certification. Bryan has deployed and assisted with adopting the HashiCorp Vault into many Fortune 1000 companies. He delivers lectures at community events, such as HashiConf (2019 to 2022), HashiTalks (2019 to 2020), and many HashiCorp user groups across the mid-west and eastern US.

Course Outline

1. Introduction to Nomad

This section focuses on Nomad's key features and capabilities, including container orchestration, service discovery, and multi-cloud deployment. We will explore the Nomad architecture and understand its components. We will compare Nomad with Kubernetes and delve into the pros and cons.

1. Introduction to Nomad

This detailed introductory video places into perspective Nomad and its key features and advantages. It talks about Nomad's general abilities and how it compares with Kubernetes.

2. Understanding the Nomad Components

After a brief introduction about Nomad, we will now discuss the components of Nomad and node. These agents run in server and client modes, jobs, jobs specifications, vault, driver, task, task groups, evaluation, and allocation.

3. Learning Nomad Architecture

In this video, we will explore the Nomad architecture at a high level. We will understand a data center, region, and consensus related to Nomad. We will examine the single region architecture and server-client interaction.

4. Comparing Nomad to Kubernetes

In the final video of this section, we will compare the features and performance of Nomad with Kubernetes. We will understand the fundamental differences between them.


2. Deploying Nomad

This section focuses on deploying Nomad. We will focus on installing Nomad on our system, whichever platform-macOS, Linux, or Windows. You will also learn to get Nomad up and running and create a Nomad cluster and clients. We will explore adding clients to the cluster and managing cluster members.

1. Installing Nomad

This video briefly introduces how to install Nomad and the various sources and locations from where the Nomad application can be installed, be it macOS, Linux, or Windows OS.

2. Demo - Installing Nomad on macOS

In this demonstration, we will look at installing Nomad on macOS. We will download the program from nomadproject.io and choose to install the package manager for macOS or the binary download for macOS.

3. Demo - Installing Nomad on Linux

This video demonstrates how to install Nomad on a new Linux box. We will begin by installing a new instance of AWS Linux, and then we will visit the releases.hashicorp.com site and download the binaries to install Nomad on Linux.

4. Demo - Installing Nomad on Windows

In this lesson, you will learn to install Nomad on Windows OS. We will download the open-source Nomad binary from the Nomad website, unzip the .exe file, and run the .exe to install Nomad over Windows.

5. Let's Get Nomad Running

After installing Nomad on either of the operating systems, we will now get the Nomad application up and running on our local machine, the Linux box, or a server in development mode.

6. Demo - Starting the Nomad Service

In this video, you will learn to update the configuration file before we get Nomad up and running. We will replace the existing config file with a blank server.hcl file and copy information to the file.

7. Nomad Server Clustering

After creating a single client up and running, launching the Nomad UI, and checking the Nomad CLI, we will ensure deploying Nomad in a highly available environment called a cluster. You will learn to form a cluster and how to create clusters.

8. Demo - Let's Create a Nomad Cluster

Now that we have all the servers up and running, we will add the configuration and download the config to the other nodes of the server, totaling five, to ensure the demonstrations are lightweight and similar to a production server.

9. Nomad Clients

After gaining a thorough understanding of the Nomad server, we will now focus on understanding the Nomad client concept, which are members of the Nomad data center responsible for executing tasks and jobs.

10. Demo - Let's Add Clients to the Cluster

This demonstration will teach us to add clients to the newly-created cluster. After creating our five-node server in the previous lessons, we will now add clients to the server cluster we created.

11. Managing Cluster Members

After learning how to join multiple servers and clients into our Nomad cluster, we will understand how to remove some of these cluster members from the Nomad cluster, remove server nodes, perform regular maintenance, upgrade the system, and more.

12. Demo - Let's Work with Cluster Members

In this demonstration, we will work on removing clients from our cluster. We will understand how to delete nodes, disable allocations, add allocations, drain allocations, and so on.


3. Securing Nomad

This section focuses on securing the Nomad environment. We will understand how to secure Nomad with TLS, secure gossip encryption, and secure Nomad with ACL.

1. Securing Nomad

In this video, we will understand how to secure Nomad to ensure everything within our cluster is as secure as possible when we release the cluster for production. You will learn about the TLS and ACL approaches.

2. Secure Nomad with TLS

In this lesson, we will discuss enabling TLS encryption, the most important concept used in the Nomad environment. It helps in preventing access to Nomad, server and client misconfiguration, and other services from representing as Nomad agents.

3. Demo - Secure Nomad with TLS

This video demonstrates how to secure our Nomad environment with TLS. You will learn about managing different internal serfs, open-source options to create serfs, and using the HashiCorp vault to create serfs.

4. Secure Gossip Encryption

In this video, we will understand the concept of gossip encryption. We will understand the use of encryption keys and how federation requires the same key on all other data centers.

5. Demo - Secure Gossip Encryption

We will continue securing our Nomad infrastructure in this demonstration by enabling gossip encryption on our servers. We will modify our configuration file, define the server configuration, and add the encrypt parameter.

6. Secure Nomad with ACLs

This video will look at the last type of security configuration, the secure with ACLs approach. We will understand token-based authentication, centrally managed policies, and centralized policy administration.

7. Demo - Secure Nomad with ACLs

This video demonstrates the securing Nomad process with the ACLs approach; we will enable ACLs on the server nodes, bootstrap the ACL systems, and secure the Nomad environment.


4. Interacting with Nomad

This section focuses on different interaction methods with Nomad using a CLI. You will learn about the other two Nomad user interfaces, the Nomad UI and the Nomad API, and use them to interact.

1. Interacting with Nomad using the CLI

In this lesson, we will discuss the different ways to interact within the Nomad environment using the CLI, the most popular interface we will use. We will ensure the Nomad binary is installed for this task.

2. Demo - Using the Nomad CLI

This demonstration explains the Nomad CLI and uses the CLI to interact with export tokens and export the Nomad address to the local Nomad instance. We will also set up DNS addresses to interact with our Nomad instance. We will also look at the subcommands used with Nomad.

3. The Nomad UI

After exploring the Nomad CLI, we will examine the Nomad user interface. We will understand how to view the Nomad infrastructure, jobs, tasks, evaluations, allocations, variables, and more.

4. Demo - Using the Nomad UI

This demonstration showcases the Nomad UI. We will connect to a server node and notice that we do not have authorization. We must authenticate with a secret ID from the Nomad bootstrap token.

5. Understanding the Nomad API

We will now discuss the final interface, the Nomad API, offering a fully-featured API to configure and work with the Nomad infrastructure. The CLI and UI invoke the proper API when they are being used.

6. Demo - Using the Nomad API

In the last demonstration for this section on interacting with Nomad, we will watch a quick showcase on the introduction to the Nomad API. We will briefly understand API endpoints.


5. Working with Nomad Jobs

This section focuses on working with Nomad jobs. You will learn to create a Nomad job specification, run your first Nomad job, and expand Nomad jobs.

1. Working with Nomad Jobs

In this video, you will learn more about working with Nomad jobs now that we have the Nomad infrastructure up and running and secure. You will learn to launch and manage our applications on the Nomad infrastructure.

2. Creating a Nomad Job Specification

In this lesson, we will discuss creating a Nomad job specification. We will create a job, provide it with a name, and place all the configurations for this job. We will then specify the data centers and type of service, handle updates to our job, and launch a Docker container.

3. Demo - Create a Job Specification

In this demonstration, we will create our first job specification file. You will learn to add our data center and group. We will then examine how to add the network, mode, and port, update the service type, and launch a Docker container.

4. Running Our First Nomad Job

After creating our first job specification file, you will learn to create jobs and submit them to Nomad to launch the application. We will examine the command "nomad job run " to submit the job to Nomad.

5. Demo - Run Our First Nomad Job

In this lesson, you will learn to submit our new job to our Nomad cluster and see it launch all of our containers. We will submit the configuration file we created in the previous lesson and successfully deploy our new container.


6. Expanding on Nomad Jobs

This section focuses on learning more about expanding on Nomad jobs. We will create a job placement, understand constraints, understand networking for jobs and creating a network, and work with volumes in Nomad.

1. Expanding on Nomad Jobs

You will learn more about Nomad jobs and how Nomad deploys additional containers with new tasks on another client. You will learn to expand on jobs and how to do this in a real-world scenario.

2. Job Placement

In this lesson, we will discuss job placement, deploying applications, understanding their run locations, and configuring Nomad scheduling to use a spreading algorithm for the entire cluster.

3. Demo - Job Placement

In this video, we will look at a demonstration of job placement. We will change the job configuration, add allocations, and run a job in a container. You will learn to modify the job to use the spread allocations learned in the previous lesson.

4. Job Constraints

Here, we will understand job constraints and the constraint requirements specified at the job, group, or task level before any allocations are made. We will examine the different job constraints with examples.

5. Demo - Job Constraints

This is a demonstration of creating and understanding job constraints. We will define new allocations, constraints, and attributes for the new client we created in the previous lesson.

6. Networking for Jobs

In this video, we will explore networking and how it works inside Nomad, a critical component ensuring users can access running applications. We will also examine the various options for networking in Nomad.

7. Demo - Networking

In this demonstration, the author showcases a few basics of Nomad networking. We will look at the job allocation status, view the metadata it reports, and understand it. We will look at placement metrics, bridge mode, docker mode, and deploy the job.

8. Working with Volumes

After learning more about networking, we will discuss working with volumes; for workloads that require storage for stateful workloads, Nomad provides access to host volumes or CSI volumes.

9. Demo - Working with Volumes

In this demonstration, we will examine working with host volumes. We will use the Nomad UI to explore the scores volume on a local directory on the client. You will learn to mount the host volume.


7. Managing Nomad Environments (Day 2 Ops)

In this last section, we will focus on managing the Nomad infrastructure. We will monitor the environment and application logs, rotate the gossip encryption key, and upgrade to newer versions.

1. Managing Nomad Environments (Day Two Ops)

After successfully creating and deploying our Nomad job, we will head to the day two ops of managing the Nomad environment, operational monitoring, maintenance, key rotations, upgrades, and troubleshooting.

2. Monitoring the Nomad Environment

In this lesson, we will examine how to monitor the Nomad environment. We will discuss the multiple integrated options for monitoring, runtime metrics, information collection, telemetry data, and more.

3. Demo - Monitor the Nomad Environment

In this demonstration, we will focus on monitoring, specifically at the host level. We will use the "systemctl status nomad" command. You will learn to view the journal logs and understand what happens in the Nomad environment.

4. Monitoring Application Logs

After learning how to monitor our local Nomad environment, we will examine monitoring our applications that run on the Nomad environment. We will look at the collection logs, allocation logs, and stream logs through the API.

5. Demo - Monitoring Application Logs

In this demonstration, we will focus on monitoring our applications. We will look at the various logs on a client. Looking at the logs, we will practically understand the work processes running in the background.

6. Rotating Gossip Encryption Key

In this lecture, we will discuss rotating the gossip encryption key, a pre-share key added to the configuration when we secured the Nomad infrastructure. We will examine the built-in features to easily generate, install, use, and remove an encryption key from the keyring.

7. Demo - Rotating the Gossip Encryption Key

In this demonstration, we will practically work on rotating the gossip encryption key. You will learn to generate a new gossip key. You will learn to install the key, create a list of keys, instruct Nomad to use the new key, and replace the old key with a new one.

8. Upgrading Nomad to Newer Versions

In this lesson, you will learn about upgrading our Nomad installation to newer versions as they arise. We will examine the "in-place" upgrades and rolling updates released on time.

9. Demo - Upgrading Nomad to Newer Versions

In this final demonstration, we will practically work on upgrading Nomad to newer versions based on more recent releases from time to time. The author mentions the importance of reading through the release notes and guides before any upgrades are performed.

Course Content

  1. Getting Started with HashiCorp Nomad

About The Provider

Packt
Packt
Birmingham
Founded in 2004 in Birmingham, UK, Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and i...
Read more about Packt

Tags

Reviews