Course Taxonomy: Technology Platforms

Advanced Splunk Boot Camp

Advanced Splunk Boot Camp

Part 1: Advanced Data Ingestion

  • Advanced Indexing Concepts
  • Handling High Volume Data
  • Data Parsing and Transformation
  • Exercise: Advanced Data Parsing Techniques

Part 2: Advanced Search Processing Language (SPL)

  • Advanced Search Commands
  • Data Models and Pivots
  • Creating and Using Macros
  • Exercise: Writing Advanced SPL Queries
  • Custom Commands and Scripts
  • Exercise: Developing Custom Commands
  • Transaction Searches and Anomalies
  • Exercise: Complex Searches and Data Correlation

Part 3: Performance Optimization

  • Search Performance Tuning
  • Resource Management
  • Index and Search Head Performance Optimization
  • Exercise: Optimizing Search Performance
  • Monitoring Console and Usage Dashboards
  • Exercise: Using Monitoring Console for Optimization

Part 4: Security and Monitoring

  • Role-Based Access Control (RBAC)
  • Data Integrity and Confidentiality
  • Auditing and Monitoring User Activity
  • Exercise: Implementing Security Best Practices
  • Incident Detection and Response
  • Exercise: Building Incident Response Dashboards

Part 5: Advanced Dashboard and Visualization

  • Advanced Dashboarding Techniques
  • Custom Visualization Options
  • Integrating with External Systems
  • Exercise: Creating Advanced Dashboards
  • Real-time Dashboards and Alerts
  • Exercise: Building Real-time Monitoring Dashboards

Part 6: Splunk Machine Learning Toolkit



  • Introduction to the Splunk Machine Learning Toolkit
  • Building Machine Learning Models in Splunk
  • Using Pre-built Machine Learning Algorithms
  • Exercise: Implementing Machine Learning Use Cases
  • Anomaly Detection and Predictive Analytics
  • Exercise: Building and Applying Predictive Models
  • Monitoring and Tuning Machine Learning Models

IT Service Empathy Workshop

IT Service Empathy Workshop

Introduction 

  • Welcome and introductions
  • Workshop objectives and agenda overview
  • Context setting using insights from the pre-work survey

Example Scenario: Unexpected Outage 

  • Setup: Our online trading platform experiences an unexpected outage during peak trading hours. The incident impacts all users, leading to potential financial losses and severe customer dissatisfaction.

  • Role-Playing
    • Teams work together to resolve the scenario, using their existing knowledge, tools, and processes. Some team members will role-play as a customer with limited information, while others will act as IT service agents triaging, resolving, and/or fulfilling the customer's request while operating off of their own limited data set, promoting empathy and exercising unique problem-solving skills.

  • IT Service Management
    • Incident Management: Rapid identification and resolution of critical incidents to minimize impact.
    • Root Cause Analysis: Conducting thorough investigations to prevent recurrence and improve future response.
    • Change Management: Ensuring that firewall changes are properly tested and documented to avoid similar issues.

*2-3 additional scenarios based on clients' unique problems and customized to match their environment.

Closing Session

  • Review of key takeaways and lessons learned
  • Q&A session and open discussion
  • Closing remarks and next steps
  • Distribution of take-home materials and resources

GitLab with Git Basics

Part 1: GitLab Overview

  • What is GitLab?
  • Sequential DevOps vs. Concurrent DevOps
  • Concurrent DevOps with GitLab
  • GitLab Flows
  • GitLab Recommended Process
  • GitLab Workflow Components
  • Demo Exercises: GitLab Features

Part 2: GitLab Components and Navigation

  • GitLab Organization
  • GitLab Epics
  • Issue: The Starting Point for your workflow
  • Issue Organization
  • GitLab Workflow Example
  • Demo Exercises: GitLab Navigation
  • Hands-On Labs: Create a Project & Issue

Part 3: Git Basics

  • What is Git?
  • Git Key Terms
  • Why Git is so popular
  • Centralized vs. Distributed
  • Basic Git workflow within GitLab
  • Common Commands
  • Demo Exercises: Working Locally with Git
  • Hands-On Labs: Working Locally with Git

Part 4: Basic Code Creation in GitLab

  • Code Review- Typical Workflow
  • Code Review Workflow- GitLab tools to use
  • Additional Tools for Code Review & Collaboration
  • Demo Exercises: Merge Request in GitLab
  • Demo Exercises: Assigning, Reviewing, and Approving in GitLab
  • Demo Exercises: Additional Tools for working with code
  • Hands-On Labs: Code Creation and Review

Part 5: GitLab's CI/CD Functions

  • What is CI/CD?
  • CI/CD Advantages
  • Concurrent DevOps lifecycle
  • CI/CD Features in GitLab
  • CI/CD Automated tasks
  • GitLab CI/CD Key Ingredients
  • Anatomy of a CI/CD Pipeline
  • Demo Exercises: CI/CD Examples
  • Hands-on Labs: CI/CD Pipelines

Part 6: GitLab's Package and Release Features

  • What are Package and Container Registries?
  • Release Features in GitLab
  • What is Auto DevOps?
  • Demo Exercises: Auto DevOps and Interactive Web Terminal

Part 7: GitLab Security Scanning

  • Demo Exercises: Using SAST Templates
  • Hands-On Labs: How to run a SAST scan
  • Hands-On Labs: View the scanning reports in the Security Dashboard

ITIL® 4 Foundation

Part 1: ITIL 4 OVERVIEW

  • Introduction to ITIL
  • Key Concepts of ITIL

Part 2: The ITIL Framework

  • The Four Dimensions of Service Management
  • The ITIL Service Value System

Part 3: The ITIL Guiding Principles

  • Focus on Value
  • Start Where You Are
  • Progress Iteratively with Feedback
  • Collaborate and Promote Visibility
  • Think and Work Holistically
  • Keep It Simple and Practical
  • Optimize and Automate

Part 4: THE ITIL SERVICE VALUE SYSTEM (SVS)

  • Governance
  • The Service Value Chain
  • Continual Improvement

Part 5: Key ITIL Practices

  • Continual Improvement
  • Service Level Management
  • Change Control
  • Incident Management
  • Service Request Management
  • Service Desk
  • Problem Management

Part 6: Other ITIL Practices

  • General Management Practices
  • Service Management Practices
  • Technical Management Practices

Zero Trust Security Boot Camp

Part 1:

  • Introductions
  • Brief Evolution of IT Security
  • The Perimeter Model
  • Brief Threat Landscape History
  • Problems with the Traditional Model
  • Brief History of Zero Trust
  • Zero Trust AuthN & AuthZ
  • Zero Trust Tenants
  • Zero Trust Basic Concepts
    • Team Knowledge Check

Part 2:

  • Zero Trust Network Design Part 1
  • Zero Trust 5 Steps of Transformation
  • Zero Trust Threats
    • Team Knowledge Check
  • Zero Trust Access Control
    • Mid-Team Quiz
  • Zero Trust Risk Management
  • Zero Trust Governance
  • Zero Trust Vendor Selection
    • Team Knowledge Check
  • Zero Trust Reference Architecture
    • Team Knowledge Check

Part 3:

  • Zero Trust Network Design Part 2
    • Team Knowledge Check
  • Zero Trust Implementation
    • Team Knowledge Check
  • Zero Trust Migration
  • Zero Trust Challenges
    • Team Knowledge Check
  • Zero Trust Wrap Up
    • Final Team Quiz
  • Ending- Bonus

GitLab for Project Managers

Part 1: GitLab Overview and Organization

  • GitLab Workflow Components
  • Planning a Project
  • The Plan Stage: Project Management
  • GitLab Organization – Groups, Projects, and Issues, oh my!

Part 2: GitLab Plan Stage

  • Organizing the Work
  • Planning the Work
  • Doing the Work
  • Document the Work
  • GitLab Agile Planning Structures

Part 3: Planning Functions in GitLab

  • Issues: The Starting Point for your Workflow
  • Issues Keep Everyone Connected and Synchronized
  • What Can you Expect on an Issue Page?
  • Hands-On Lab: Issues and Labels
  • Hands-On Lab: Quick Actions
  • Why Milestones are Important
  • The Use of Kanban Boards
  • GitLab's Service Desk
  • Utilizing Wikis
  • Hands-On Lab: Create a Wiki Page
  • Hands-On Lab: Epics and Kanban Boards
  • Project Management Review Quiz
  • Hands-On Lab: Practice Lab 1
  • Hands-On Lab: Practice Lab 2

GitOps Boot Camp

Part 1: Introduction

  1. Required knowledge
    1. Git: Committing code and creating pull requests
    2. Kubernetes: Deploying a service to Kubernetes and basic checks with kubectl
    3. Docker: Pushing an image to a Docker repository
    4. CI/CD: GitOps reverses the traditional understanding of continuous integration/continuous development.
  2. Core concepts: A quick introduction
    1. Immutable infrastructure
    2. Infrastructure as code
    3. Orchestration
    4. Convergence
    5. CI/CD
  3. What GitOps is not
    1. GitOps is not infrastructure as code.
    2. GitOps doesn't replace continuous integration (CI).
  4. The use case: Deploying a highly available microservice
    1. Deploying a microservice to Kubernetes, with all the surrounding infrastructure to make it available

Part 2: Setting up the Tools

  1. Kubernetes
    1. In advance: Setting up a cluster from scratch is time-consuming, even if you use a managed solution like EKS. Pre-allocating a cluster per person is something you can do in advance.
  2. Preparation: Setting up kubectl
    1. Every participant should have credentials to connect to the cluster using kubectl.
  3. Preparation: Access a cluster through kubectl/k9s.
    1. Check running pods.
      1. Check deployments.
  4. Repository
  5. Preparation: Infrastructure repository
    1. An empty repository in GitHub/GitLab to use for deploying infrastructure
  6. Application repository
    1. Strictly speaking, you don't need to separate the application and infrastructure, but it's easier to understand what goes where this way.
      1. A sample application that serves a web server with a hello world response as the baseline (NodeJS-based, for instance)
  7. ArgoCD
  8. Why ArgoCD?
    1. ArgoCD is tightly integrated with Kubernetes and closely follows the GitOps mindset. Therefore, it's a good tool to showcase GitOps.
  9. Exercise: Add ArgoCD to the cluster.
    1. Create namespace.
    2. Deploy ArgoCD to the cluster.
    3. Access ArgoCD using the CLI.

Part 3: Deploying a Microservice

  1. Exercise: Prepare a simple microservice to be deployed in k8s.
    1. Build sample application as a Docker container (Dockerfile can be provided in advance)
    2. Push service to a Docker registry (cloud-native, docker.io, or quay.io)
  2. Exercise: Create a k8s deployment.
    1. Create a Kubernetes deployment definition in code for the application (here's a sample).
    2. Push code to infrastructure repository.
    3. Create an application in ArgoCD.
    4. This time, you'll use the ArgoCD CLI so you can see that part. You'll move to use Git from here on, which is more aligned to GitOps.
    5. Sync the application.
    6. Again, use the CLI.
    7. Test: Use kubectl check to ensure that deployment works.
  3. Automated synchronization
    1. Pull versus push: How ArgoCD can read from a repository and automatically apply the changes
    2. Exercise: Activate synchronization so that further changes happen when you push code to the infrastructure repository.
  4. Exercise: Create a k8s service. (A deployment alone doesn't expose the microservice, so let's build on that.)
    1. Create service definition.
  5. Pull request
    1. This is an opportunity to introduce the pull request aspect of the flow. You can extend pull requests so that extra checks are performed, using something like GitHub Actions.
      1. Implementing CI with something like GitHub Actions isn't part of the exercise, although it's something that you can complete as an extra exercise. (See the bonus section at the end of this post.)
      2. Test: Carry out a kubectl check to prove that service was deployed.
  6. Exercise: Create a load balancer. (You still can't access service from the outside.)
    1. Create loadbalancer k8s definition for cloud provider.
    2. Pull request
    3. Test: Curl to load balancer address to ensure that service is actually online.
  7. Exercise: Update the application.
    1. Change something in the application, such as the body of the response of a route in the application.
    2. Rebuild container with a new tag and push it to Docker registry.
    3. Update k8s deployment to use new tag.
    4. Pull request
    5. Test: New version of the app should be deployed.
  8. Exercise: Update the infrastructure. (Why do this? So you can demonstrate that changing the application and the infrastructure results in blurry boundaries.)
    1. Update k8s deployment to be highly available (more than one replica).
    2. Pull request
    3. Test: kubectl shows that there are multiple pods running.
  9. Wrap-up: This covers the workflow of deploying an application and then performing updates and changes on it.
    1. This is the core of GitOps!
    2. There are also other, more advanced use cases to cover.

Part 4: Promoting Changes Through Different Environments 

  1. In advance: Prepare a second cluster.
    1. As with the first cluster, this is something to have prepared in advance.
  2. Preparation: Register the cluster in ArgoCD to allow deployments to it.
  3. From development to production
    1. Which options are there to represent different stages?
    2. This is an open discussion, as there's no set recipe to do environment promotion, with different options:
    3. Use different infrastructure repositories.
    4. Use different folders in the same infrastructure repository.
    5. Use branches.
  4. Exercise: Promotion of a version
    1. Set up a second cluster (production) to read from a different folder.
    2. Copy the infrastructure created for the first folder into this one.
    3. Pull request
    4. Test: Second cluster should have the service available as well.
  5. More advanced deployment scenarios (Controlled release is an important part of releasing traffic, especially to production. It's worth talking about the options that you have that can be based on the exact same building blocks as explained before.)
  6. Exercise: Blue/Green
    1. Enable Argo Rollouts in cluster.
      1. Test: Observe rolling deployment with kubectl.
    2. Install argo-rollouts plugin for kubectl.
    3. Create rollout to apply to existing microservice.
  7. Canary release
    1. Theory only (This can be a good lead-in to a discussion of the merits and tradeoffs of different deployment strategies.)
  8.  Exercise: Error handling (This exercise shows that failure in infra deployment is expected and is handled through code changes—not panicked actions!)
    1. Introduce an error in the hello world application (this results in a thrown exception instead of starting the webserver).
    2. Rebuild the container with a new tag and push it to Docker registry.
    3. Update k8s deployment to use new tag.
    4. Pull request
    5. Test: Confirm with kubectl that deployment is failing.
    6. Revert a failed change through code.

Part 4: Security in GitOps

  1. Accessing resources
    1. kubectl shouldn't replace observability, such as logging and monitoring (similar to secure shell—SSH—into a production server)
  2. Secrets
    1. No plaintext secrets should ever be stored in Git.
  3. Vault
    1. This is theory only because it's probably too much to do for a practical exercise.
  4. Exercise: Sealed secrets
    1. Depending on time, this can be treated as theory or as an exercise. Furthermore, you can split it in two depending on how much time you have.
      1. Modify microservice to read the secret and make it available through a request.
    2. Provision secrets in the infrastructure repository.
    3. Use secrets from either the cluster or the application.
    4. Install the sealed secrets controller.
    5. Inject an encrypted secret in the infrastructure repository.
    6. Modify Kubernetes deployment to inject a secret into the microservice.

Part 7: Recap

  1. Core concepts: Infra as code, Git as the source of truth, pull model, converging changes
  2. Core flow: declare infrastructure, commit it, pull request for review, merge to apply
  3. Next steps
    1. Automated promotion (If a deployment to a staging environment succeeds, then trigger a deployment to production.)
    2. Observability (microservices that export metrics, logging aggregator, and monitoring)

Bonus exercises

  1. Replace manual steps (push Docker container, build application code) with CI, such as GitHub actions.
  2. Introduce templating (Jsonnet, Helm) to foster reuse of Kubernetes resources.
    1. Exercise: Parameterize deployment so that port can be defined as configuration. Deploy a second copy of the same service with a different name, running on a different port.
  3. Install more advanced resources in the cluster using the same mechanism, such as an ingress controller.

Azure DevOps for Teams

Part 1: Getting Started

  1. Introductions
  2. Course Goal
  3. Team Agreement

Part 2: Azure DevOps Overview

  1. Hierarchy
  2. List
  3. Board
  4. Backlog
  5. Work items

Part 3: Agile & Scrum Review

  1. Manifesto
  2. Principle
  3. Scrum Overview

Part 4: Accessing Azure DevOps

  1. Login
  2. Navigation

Part 5: Managing Iterations

  1. Configure the time box iteration
  2. Setting interaction goal
  3. Configure Team Capacity

Part 6: Backlog Hierarchy

  1. Product backlog
  2. Attributes
  3. Epics, Feature, Stories
  4. Managing Work Item
  5. Adding Stories
  6. Link Epics to Feature to Stories to Tasks
  7. Prioritization guide line
  8. Adding Priority
  9. Estimating Guidelines
  10. Add Estimates
  11. Task Breakdown
  12. Adding Task
  13. Adding PBI’s to Iterations
  14. Blocking Tasks
  15. Kanban Overview

Part 7: Queries

  1. Creating Queries
  2. Running Queries

Part 8: Wikis

  1. Creating
  2. Editing

Part 9: Dashboards

  1. Configure Widgets
  2. Creating the Dashboard

Managing AWS Infrastructure with Terraform

Part 1: Infrastructure as Code

In this section, we will introduce the benefits that Infrastructure as Code (IaC) can bring to organizations and how IaC fits within modern DevOps best practices.

  • Motivation for Infrastructure as Code
  • Applying Infrastructure as Code in DevOps
  • Infrastructure as Code principles and best practices
  • Benefits of Infrastructure as Code
  • The case for Terraform

Part 2: Terraform Overview

This section provides an overview of Terraform concepts and vocabulary and instructs how Terraform manages infrastructure configuration in cloud environments.

  • Terraform architecture
  • Terraform configuration language overview
  • Terraform CLI
  • The lifecycle of a configuration
  • Managing configuration state

Hands-on Labs:

  • Using the Terraform CLI
  • Setting up a Terraform project

Part 3: AWS Resources

In this section, participants will get hands-on practice using Terraform to create a simple application environment in AWS and learn the essential constructs in Terraform for defining resources.

  • Resource types
  • Best practices in declaring resources
  • Network resources (VPC, subnet, security group)
  • Compute resources (virtual machine)
  • Storage resources (database)
  • Local values in a configuration
  • Augmenting a configuration with data sources

Hands-on Labs:

  • Creating a VPC and subnets
  • Adding a virtual machine into your VPC
  • Adding a database to your VPC
  • Using locals for replicated values
  • Using a data source to read external configuration

Part 4: Terraform Programming

This section introduces programming constructs within Terraform that enable you to add more control and flexibility in defining resources.

  • Data structures (primitives, maps, lists, objects, etc.)
  • Types of expressions to set values
  • Creating multiples of a resource
  • Dynamic blocks
  • Parameterizing a configuration with variables
  • Outputs from a configuration
  • Functions
  • Handling errors

Hands-on Labs:

  • Using variables in a configuration
  • Getting outputs from a configuration
  • Creating a re-sizable cluster of virtual machines
  • Creating multiple resources through iteration loops
  • Leveraging functions in your code

Part 5: Modules

This section shows how modules can be used to create reusable components in Terraform and teaches best practices in organizing Terraform code.

  • Purpose of modules
  • Module structure and code organization
  • Invoking modules
  • Module sources and versioning
  • Nested modules
  • Publishing modules

Hands-on Labs:

  • Using an external module in your configuration
  • Refactoring your code to implement a module

Part 6: Wrapping Up

This section wraps up the course with reviews to reinforce what you have learned.

  • Reference material to learn more
  • Course review
  • Next steps

Mastering DAX for Microsoft Power BI

Part 1: Introduction to DAX

  1. What is DAX?
  2. Why use DAX with Power BI
  3. Calculated Columns vs Measures
  4. Types of Functions
    1. Logical Functions
    2. Table manipulation functions
    3. Date and time functions
    4. Filter functions
    5. Financial functions
    6. Math and Trig functions 
    7. Parent and Child functions
    8. Relationship functions 
    9. Statistical functions
    10. Text functions
    11. Time intelligence functions

Part 2: Logical functions

  1. TRUE
  2. FALSE
  3. IF
  4. IFERROR
  5. AND
  6. OR
  7. SWITCH
  8. COALESCE

Part 3: Tables

  1. Tables Overview
  2. Filtering Tables
    1. FILTERS
    2. TOPN
  3. Summarizing Tables
    1. SUMMARIZE
    2. SUMMARIZECOLUMNS
    3. ROLLUP
    4. GROUPBY
  4. Generating Tables
  5. Distinct Values
    1. DISTINCT column
    2. DISTINCT table
  6. Joining Tables
    1. CROSSJOIN
    2. NATURALINNERJOIN
    3. NATURALLEFTOUTERJOIN
  7. Adding Values
    1. Columns
    2. Missing items
  8. Table Constructor

Part 4: Date and Time Functions

  1. Date and Time Functions Overviews
  2. Units of Time
  3. Creating a Calendar
    1. CALENDAR
    2. CALENDARAUTO
  4. Dates
  5. TODAY
  6. NOW
  7. TIME
  8. TIMEVALUE

Part 5: Filter Functions

  1. Filter Functions Overview
  2. Filtering Tables
    1. FILTER
    2. REMOVEFILTERS
    3. ALL (ALL, ALLCROSSFILTERED, ALLEXCEPT, ALLNOBLANKROW, & ALLSELECTED)
    4. CALCULATETABLE
    5. KEEPFILTERS
  3. CALCULATE
  4. LOOKUPVALUE
  5. SELECTEDVALUE

Part 6: Financial functions

  1. Accrued Interest
    1. ACCRINT
    2. ACCRINTM
  2. Depreciation
    1. DB
    2. DDB

Part 7: Relationships Functions

  1. CROSSFILTERS
  2. RELATED
  3. RELATEDTABLE
  4. USERELATIONSHIP
  5. Parent and Child Functions
    1. PATH
    2. PATHCONTAINS
    3. PATHITEM
    4. PATHITEMREVERSE

Part 8: Text functions

  1. FIND
  2. SEARCH
  3. REPLACE
  4. FORMAT
  5. LOWER
  6. UPPER
  7. RIGHT
  8. LEFT
  9. COMBINEVALUES
  10. CONCATENATE
  11. CONCATENATEX
  12. EXACT
  13. FIXED
  14. LEN
  15. MID
  16. SUBSTITUTE
  17. TRIM
  18. VALUE

Part 9: Statistical functions

  1. Central Tendencies
    1. Averages
    2. Means
    3. Geo means
  2. Counting
    1. Counting and COUNTX
    2. Blanks, and rows
    3. Distinct count: distinct, approximate, no blank
  3. Min/Max
    1. MAX, MAXA and MAXX
    2. MIN, MINA and MINX
  4. Sample
  5. Distributions
    1. Normal
    2. Exponential
    3. Beta
    4. Poisson
  6. Inverse
  7. Percentiles
  8. Ranking
  9. Standard Deviation
  10. Variance
    1. VAR.P and VARX.P
    2. VAR.S and VARS.P