Introducing Docker storage drivers and volumes – Containerization with Docker

Docker containers are ephemeral workloads. Whatever data you store on your container filesystem gets wiped out once the container is gone. The data lives on a disk during the container’s life cycle but does not persist beyond it. Pragmatically speaking, most applications in the real world are stateful. They need to store data beyond the […]

Read More… from Introducing Docker storage drivers and volumes – Containerization with Docker

Installing Docker – Containerization with Docker

We will be installing Docker in an Ubuntu system. For other OSs, please refer to https://docs. docker.com/engine/install/. To install Docker, we need to install supporting tools to allow the apt package manager to download Docker through HTTPS. Let’s do so using the following commands: $ sudo apt-get update $ sudo apt-get install -y ca-certificates curl […]

Read More… from Installing Docker – Containerization with Docker

Technical requirements – Containerization with Docker

In the previous chapter, we talked about source code management with Git, where we took a crash course on Git and then discussed GitOps and how it shapes modern DevOps practices. In this chapter, we’ll get hands-on and explore Docker – the de facto container runtime. By the end of this chapter, you should be […]

Read More… from Technical requirements – Containerization with Docker

The environment repository – Source Code Management with Git and GitOps

The environment repository stores the environment-specific configurations needed to run the application code. Therefore, they will typically have Infrastructure as Code (IaC) in the form of Terraform scripts, CaC in the form of Ansible playbooks, or Kubernetes manifests that typically help deploy the code we’ve built from the application repository. The environment repository should follow […]

Read More… from The environment repository – Source Code Management with Git and GitOps

The application repository – Source Code Management with Git and GitOps

Structuring the Git repository To implement GitOps, we require at least two repositories: the application repository and the environment repository. This does not mean that you cannot combine the two, but for the sake of simplicity, let’s take a look at each of them separately. The application repository The application repository stores the application code. […]

Read More… from The application repository – Source Code Management with Git and GitOps

The push model – Source Code Management with Git and GitOps

Branching strategies and the GitOps workflow GitOps requires at least two kinds of Git repositories to function: the application repository, which is from where your builds are triggered, and the environment repository, which contains all of the infrastructure and configuration as code (CaC). All deployments are driven from the environment repository, and the changes to […]

Read More… from The push model – Source Code Management with Git and GitOps

The principles of GitOps – Source Code Management with Git and GitOps

GitOps has the following key principles: Implementing and living by these principles is simple with modern DevOps tools and techniques, and we will look at practically implementing them later in Chapters 11 and 12. In this chapter, however, we’ll examine their design principles using a branching strategy and GitOps workflow. […]

Read More… from The principles of GitOps – Source Code Management with Git and GitOps

What is GitOps? – Source Code Management with Git and GitOps

GitOps is a method that involves implementing DevOps so that Git forms the single source of truth. Instead of maintaining a long list of scripts and tooling to support this, GitOps focuses on writing declarative code for everything, including the infrastructure, configuration, and application code. This means you can spin anything out of thin air […]

Read More… from What is GitOps? – Source Code Management with Git and GitOps

Hands-on – labeling audio data using a CNN – Labeling Audio Data-3

Step 5: Train the model: This code initiates the training of the neural network model using the training data (X_train and y_train) for 20 epochs, with a batch size of 32. The validation data (X_test and y_test) is used to evaluate the model’s performance during training: Train the modelmodel.fit(X_train, y_train, epochs=20, batch_size=32, \    validation_data=(X_test, y_test)) Step 6: […]

Read More… from Hands-on – labeling audio data using a CNN – Labeling Audio Data-3