Redis for Developers and System Administrators Training Course

Duration

14 hours (usually 2 days including breaks)

Requirements

Participants should be comfortable with basic system administration tasks using linux command line. Some topics require programming or scripting skills. When booking, please list the programming languages that you are familiar with. If there are none, we’ll just issue redis commands from redis-cli.

Overview

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker.

Course Outline

Module 1: Initial setup

  • Redis Releases
  • Installation
  • Configuration
  • Security model
  • Starting Redis during boot
  • Security hardening applied by common Linux distributions
  • Client libraries and language bindings

Module 2: Data model

  • Primitive data types and commands to manipulate them
  • Typical use cases for each data type
  • Common naming conventions for Redis keys
  • “Redis is mostly single-threaded” – what it means in practice
  • Redis wire protocol
  • What to do if your client library does not know about some useful command
  • Why some commands are deliberately unavailable in some client libraries
  • How to adjust your mindset from the one of a relational database designer
  • General tips on data organization
  • Expiration
  • Pub/Sub
  • Transactions & Lua scripts
  • External modules
  • General tips on data consistency

Module 3: Performance tips

  • Benchmarking Redis
  • Commands to avoid
  • Debugging latency problems
  • Problems with big DEL requests – what to use instead
  • Pipelining
  • Mass insertion
  • Debugging memory overuse
  • Memory optimization tips

Module 4: Operations

  • Available persistence mechanisms
  • Precautions to avoid SSD wearout
  • Backup and restore
  • Tools for exploring database contents
  • Tools for dump analysis
  • Tuning durability vs performance
  • Switching between RDB and AOF
  • Use cases for diskless Redis
  • OS-level tunables relevant for Redis
  • Monitoring Redis performance

Module 5: More than one Redis

  • Starting multiple instances of Redis on one server
  • Application-level partitioning
  • Master-slave replication
  • High availability using Redis Sentinel
  • Redis Cluster
  • Making Sentinel and Cluster work across NAT
  • Making consistent backups

Docker for Developers and System Administrators Training Course

Duration

14 hours (usually 2 days including breaks)

Requirements

Some familiarity with command line and Linux is an advantage.

Overview

Docker is a platform for developers and sysadmins to maintain distributed applications. It consists of a runtime to run containers and a service for sharing containers.

With docker the same app can run unchanged on laptops, dedicated servers and virtual servers.

This course teaches the basic usage of Docker, useful both for developers and system administrators. The course includes a lot of hands on exercises and the participants will practice in their own Docker environment and build their own Docker images during the 2 days.

Course Outline

What is Docker?

  • Use cases
  • Major components of Docker
  • Docker architecture fundamentals

Docker architecture

  • Docker images
  • Docker registry
  • Docker containers

The underlying technology

  • Namespaces
  • Control groups
  • Union FS
  • Container format

Installation of Docker

  • Installation on Ubuntu via apt-get
  • installation of newer version of Docker

Dockerizing applications

  • The hello world example
  • Interactive container
  • Daemonizing programs

Container usage

  • Running a webapp in a container
  • Investigating a container
  • Port mapping
  • Viewing the logs
  • Looking at processes
  • Stopping and restarting
  • Removing a container

Managing images

  • Listing images
  • Downloading images
  • Finding images

Networking of containers

  • Port mapping details
  • Container linking and naming
  • Linking and environment variables

Data in containers

  • Data volumes
  • Host directories as data volume
  • Host file as data volume
  • Data volume containers
  • Backup, restore of data volumes

Contributing to the ecosystem

  • What is Docker Hub?
  • Registering on Docker Hub
  • Command line login
  • Uploading to Docker Hub
  • Private repositories
  • Automated builds