Course Taxonomy: Infrastructure

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

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

Deploying and Automating Infrastructure at Scale

Part 1 – Infrastructure Platform: AWS Cloud

  1. Installing and using the AWS CLI (Command Line Interface)
  2. AWS Networking
  3. VPC’s (Virtual Private Clouds)
  4. Subnets
  5. Internet Gateways
  6. Route Tables
  7. Route Table Associations
  8. Creating AWS Networking Components
  9. Launching VMs in AWS Cloud

Part 2 – Git: Source Control Management: GitHub

  1. This course doesn’t teach the basics of git. Git experience is assumed (see the ‘DevOps Pipeline’ course if your team needs basic git knowledge)

Part 3 – Infrastructure Deployment: Terraform

  1. Intro to Terraform
  2. Creating cloud buckets for storage
  3. Separating code: Multiple Terraform configuration files
  4. Storing state remotely
  5. Git branching
  6. Displaying resource outputs
  7. Creating cloud networking components with Terraform
  8. Configuring cloud Security groups
  9. Using SSH Public/Private Keys with Terraform
  10. Launching and Destroying cloud VM instances with Terraform
  11. Creating reusable code with modules
  12. Using Terraform variables

Part 4 – Configuration Management: Terraform with Ansible

  1. Ansible Provisioners in Terraform
  2. Integrating Terraform-managed instances with Ansible Control Nodes
  3. Launching multi-tiered architectures (web servers and load balancers) with Terraform and Ansible

Part 5 – Notifications: Slack

  1. Integrating CI/CD with Slack
  2. Using Slack for CI/CD approvals and notifications

Part 6 – Containerization: Docker

  1. Purpose and use case for Docker
  2. Docker Hub
  3. Basic Docker commands
  4. Docker Networking
  5. Launching and debugging NGINX containers
  6. Mounting Volumes to containers
  7. Docker mount points: Multiple containers, one shared code location
  8. Launching Docker hosts and Docker containers automatically
  9. Port mapping with containers
  10. Launching multi-tiered architectures (web servers and load balancers): an automated approach
  11. Customizing containers with Docker Hub and Dockerfiles
  12. Reducing infrastructure bloat: Buster-Slim Docker containers

Part 7 – Managed OS: Linux Only

  1. Management of Linux Servers only

Part 8 – Container Management: Kubernetes (Optional)

  1. Kubernetes (K8S) overview and use case
  2. K8S architecture
  3. Installation and configuration
  4. Master and node server components
  5. Creating K8S load-balanced clusters
  6. Deploying Apps with K8S
  7. Scaling Apps
  8. K8S monitoring and App repair
  9. Updating Apps with K8S

Splunk Boot Camp

*All lab exercises are run in a Linux environment. A Windows environment can be provided upon request. 

Part 1: Introduction to Splunk

  1. What’s Splunk?
  2. Authentication Methods
  3. Access Controls & Users
  4. Products, Licensing, and Costs
  5. Quick Tour Guide: User Interface
  6. Exercise: Lab Environment and Configuration

Part 2: Indexes

  1. Splunk Data
  2. What are Indexes?
  3. What are Indexers?
  4. Exercise: Create Your First Index
  5. Search-Head
  6. Index Clusters
  7. Index Pipeline
  8. Exercise: Upload Data Manually
  9. Events
  10. Fields & Field Extraction
  11. Exercise: Using the Field Extractor Tool
  12. Forwarders
  13. Metrics
  14. Exercise: Using the Forwarder to Send Data
  15. Removing Data

Part 3: Splunk Architecture

  1. Components of Splunk Deployments
  2. Deployment Scenarios

Part 4: Search Processing Language

  1. What is Search Processing Language (SPL)?
  2. Searching Operators
  3. Search Commands
  4. Search Pipeline
  5. Exercise: Search Examples
  6. Subsearches
  7. Commonly Used Search Commands
  8. Exercise: Search Examples II
  9. Drilldowns
  10. Lookups
  11. Exercise: Using Lookups
  12. Optimize Searches
  13. Exercise: Search Examples III

Part 5: Dashboard & Visualizations

  1. Dashboards in Splunk
  2. Creating Dashboards
  3. Visualization Types
  4. Search as Reports
  5. Dashboards
  6. Exercise: Creating a Dashboard
  7. Drilldown
  8. Forms
  9. Exercise: Add Input Forms
  10. Exercise: Drilldown

Part 6: Alerts

  1. Creating Alerts
  2. Scheduling Alerts
  3. Alerts Notifications
  4. Exercise: Creating Alerts

Part 7: Scheduled Reports

  1. Creating Scheduled Reports
  2. Exercise: Create a Scheduled Report

Part 8: Putting All Pieces Together

Exercise: As a final lab, you’ll configure a typical scenario when using Splunk. You'll install and configure an NGINX, then the Splunk forwarder to collect logs in Splunk. The idea is that you can apply everything you've learned within the Bootcamp: creating searches, visualizations, dashboards, etc.

Managing Azure 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.

  1. DevOps and GitOps
  2. Principles of Infrastructure as Code
  3. Applying Infrastructure as Code in DevOps
  4. Infrastructure as Code best practices
  5. Benefits of Infrastructure as Code
  6. 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.

  1. Terraform configuration language overview
  2. Terraform CLI
  3. The lifecycle of a configuration
  4. State storage – local versus remote
  5. Connecting to Azure

Hands-on Labs:

  • Setting up a Terraform project

Part 3: Azure Resources

In this section participants will be getting hands-on practice using Terraform to create a simple application environment in Azure, learning the essential constructs in Terraform for defining resources.

  1. Resource metadata and naming best practices
  2. Subscription and resource group
  3. Networking resources (VNet, subnet, network security group)
  4. Compute resources (virtual machine)
  5. Storage resources (storage account, file share, blob storage)
  6. Database resources (SQL database)
  7. Variables
  8. Outputs

Hands-on Labs:

  • Deploying a VNet
  • Adding a virtual machine into your VNet
  • Adding storage and a database
  • Including variables in your code
  • Using Terraform commands to validate and inspect your configuration

Part 4: Terraform Programming

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

  1. Control operations (count, loops, conditional, depends_on, etc.)
  2. Data structures (maps, lists, random_string, etc.)
  3. Data sources
  4. Functions (e.g., lookup, coalesce, join, merge, etc.)
  5. Variable validation
  6. Debugging Terraform

Hands-on Labs:

  • Managing multiple resources through count and loops
  • Using maps and lists in your code
  • Using functions in your code
  • Using Terraform CLI and state manipulation to debug your configuration

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.

  1. Purpose of modules
  2. Modules code file organization structure
  3. Module structure
  4. Module sources and versioning
  5. Nested modules
  6. Publishing modules

Hands-on Labs:

  • Refactoring your earlier lab code to a module
  • Using Azure modules (subscription, metadata, resource group, virtual network)

Part 6: Wrapping Up

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

  1. Reference material to learn more
  2. Course review
  3. Next steps

Cloud Strategy Boot Camp

Part 1: Fundamentals of Cloud Computing

  1. Tenets of Cloud Computing
    • What makes something “cloud”?
    • The five tenets
    • Why the five tenets are so difficult in practice
    • The cloud mindset
  2. Cloud Deployment Models
    • Types of providers
      • Public
      • Private
      • Hybrid
    • Combining providers
      • Single
      • Multi-cloud
    • Choosing among provider types
    • Using cloud providers securely
  3. Cloud Service Models
    • Infrastructure as a service (IaaS)
    • Platform as a service (PaaS)
    • Software as a service (SaaS)
    • Serverless
  4. Communicating Your Cloud Journey
    • Share your cloud strategy
    • Don’t ignore the people side of strategy success
    • Stay connected regularly and be available
    • Expect challenges and doubters
    • Celebrate your successes and share lessons learned
    • Exercise: Develop a communications plan

Part 2: Cloud Strategy Overview

  1. What Is Cloud Strategy?
    • What it is (and isn’t)
    • Relation to other strategies and plans
    • Once you have one, now what?
  2. From Business Vision to Cloud Strategy
    • Desired business outcomes
    • Potential benefits
    • Potential risks
    • The rise of bimodal IT
    • Business-specific factors
    • Exercise: Align benefits and risks with desired outcomes
  3. Cloud Strategy Council
    • What is it?
    • Why do you need one?
    • Who’s on it?
  4. Services Model
    • Consume
    • Build
    • Broker
    • Hybrid Management
    • Exercise: Develop sample services model
  5. Financial Models
    • How pricing works for cloud services
    • Is cloud cheaper?
    • CapEx vs. OpEx
  6. Principles
    • Why principles matter
    • Common cloud principles
    • How to choose yours
    • Exercise: Select cloud principles for sample case
  7. Workload Inventory
    • The hard work of preparation
    • Exercise: Complete a sample workload inventory
  8. Establish Governance Model
    • Importance of cloud governance
    • Layers of governance
      • Enterprise architecture
      • Technical architecture
      • Application architecture
      • Data architecture
    • Risk and compliance
      • Legal compliance
      • Industry compliance
      • Internal policies
    • Cloud center of excellence
  9. Staffing, Resource, and Training Impacts
    • Assessment of roles needed and impacted
    • Evaluate corporate staffing and resource policies
    • Exercise: Complete a sample training plan
  10. Exit Strategy
    • Why it’s critical to have one
    • Contracts
    • Data ownership and retention
    • Potential risks and issues

Part 3: Beginning Cloud Adoption

  1. Cloud Adoption Framework
    • Assess
    • Perform
    • Extend
    • Improve
  2. Assess Your Cloud Readiness
    • Initiating your adoption planning
    • Conducting cloud readiness assessments inventorying
    • Interpreting readiness results
    • Moving from assessment to action plan
    • Exercise: Complete a sample readiness assessment
  3. Cloud Migration Decision Framework: The 6Rs
    • Replace
    • Refactor
    • Rehost
    • Retain
    • Retire
    • Replatform
    • Exercise:Apply cloud migration decision framework to a sample case
  4. Select Your First Cloud Service
    • Prioritize candidate services
      • Select candidates for your first cloud service
      • Assess service criticality of each candidate
      • Assess risk and benefit of each candidate
      • Decide on the first cloud service
    • Architect selected cloud service
      • Cloud native
      • 12 factor app methodology
      • LIFESPAR
      • Exercise: Rearchitect sample architecture for cloud migration
    • Evaluate cost and return
      • Maximize your cloud value
        • Avoid surprise bills
        • Use demand forecasting effectively
        • Trade off space and time to save money
        • Hit your uptime targets without breaking the bank
      • Assess benefits of cloud service
        • Operational efficiencies or agility
        • Changes in staffing and skill sets
          • Operations
          • Development
          • Security
        • Expected cost savings from infrastructure
        • Determine costs of cloud services
        • Assessing impact on staff resources
      • Compute cloud service costs
        • Throughput
        • Compute time
        • Scalability
        • Resiliency
      • Exercise: Estimate cost for sample architecture for public cloud providers

Part 4: Extending and Improving Adoption

  1. Assess Hybrid Operating Challenges
    • Development and testing
      • Development toolchain
      • Debugging in the cloud
      • Testing
    • Operations
      • The rise of SRE
      • Moving administration up the stack
      • Aligning cloud service monitoring and on-premises monitoring
      • Survey of SRE vendors and tools
    • Security
      • Incident and event management
      • Auditing
      • Policy enforcement
      • Penetration testing
      • Threat assessment and modeling
      • Vulnerability management
    • Identity and access controls
      • The continuum of identity from on-premises to IDaaS
      • Understand the benefits and trade-offs of IAM protocols
      • Identity as the new edge
      • The hidden costs of identity in SaaS
      • Survey of cloud IAM vendors
    • Environment management
      • Moving from on-premises environments to cloud environments
      • Hybrid environment challenges
    • Configuration management
      • Impact of cloud service models on configuration
      • Storing secrets securely
      • Managing secrets over time
      • Monitoring for drift
      • Survey of configuration management vendors and tools
    • Deployment and release management
      • A new philosophy of release management
      • Separating deployment from release
      • Monitor and recover from failed deployments
      • Data management
        • Implement proper security controls
        • Plan a successful data migration effort
        • Establish audit and traceability
        • Analysis and reporting from the cloud
          • Business continuity and disaster recovery
            • Evaluate business continuity procedures
            • Evaluate disaster recovery procedures
  1. Improve Cloud Adoption Practices
    • Conduct regular retrospectives
    • Improve automation
    • Manage workloads
    • Refine governance, security, and risk processes
    • Train and develop staff
    • Monitor cloud consumption
    • Perform ongoing security and risk assessments

 Part 5: Wrap Up

  1. Our Cloud Strategy Journey
  2. What To Do Now
  3. Final Thoughts

Docker Containerization Boot Camp

Students should bring laptops to class. This 3-day Docker training workshop is conducted as a continuous hands-on lab. From the initial install to the multi-container application stack, you will learn Docker through real-world practice.

Part 1: Introduction

  1. What can you use Docker for?
  2. A logical segregation of duties
  3. The relationship between Docker and SOA
  4. How Docker fits into the development lifecycle
  5. How Docker ensures consistency from development through UAT and staging, and on to production
  6. Example use cases of Docker in the real world

Part 2: The components of Docker

  1. Underlying technology
  2. Docker client and server
  3. Filesystem images
  4. Registries
  5. Containers
  6. Networking

Part 3: Getting set up to start using Docker

  1. Getting set up on Windows
  2. Getting set up on the Mac
  3. Trying out our first container
  4. Getting set up for production on Linux
  5. Tweaking your production environment for best performance
  6. User interfaces for Docker management

Part 4: Container management

  1. Container naming
  2. Starting and stopping containers
  3. Attaching to a container
  4. Seeing what is happening in a container
  5. Running a process inside a container
  6. Daemonizing a container
  7. Automatic container restarts
  8. Deleting containers when we are finished with them

Part 5: Docker images and repositories

  1. Docker images explained
  2. How Docker images work
  3. Getting a list of images
  4. Searching for images on a repository
  5. Pulling an image
  6. Creating our own image
  7. Specify an image in a Dockerfile
  8. Building Dockerfile images
  9. Using the build cache for templating
  10. Viewing the image we have created
  11. Launching a container using our new image

Part 6: Registries

  1. What is the Docker hub?
  2. Pushing images to the Docker hub
  3. Running your own internal Docker registry
  4. Testing the internal registry

Part 7: A simple use case

  1. A single container static website
  2. Setting up a container running Nginx
  3. Launching our static site
  4. Updating our static site from git or bitbucket

Part 8: Continuous integration with Docker

  1. How Docker enables and supports CI
  2. Getting set up for Jenkins and Docker
  3. A basic Jenkins job
  4. Multi-configuration jobs
  5. Drone
  6. Shippable

Part 9: A more complex use case: Multi container application stacks

  1. A container for our NodeJS application
  2. A base image for our Redis containers
  3. Creating our Redis back-end cluster
  4. Capturing logs
  5. Managing containers

Part 10: Docker orchestration and service discovery

  1. Getting set up with Fig
  2. Configuring the fig.yml file
  3. How to use Fig
  4. Console
  5. Running a Console cluster

Part 11: Integrating with configuration management

  1. Managing your Docker hosts with Chef / Puppet / Ansible
  2. Building containers using configuration management tools
  3. Managing running containers with configuration management

Part 12: Docker and DevOps

  1. Enabling collaboration with Docker
  2. Using Docker to streamline workflow
  3. Using Docker's version control capabilities to enable experimentation and learning
  4. Docker's role in the overall IT value chain
  5. Creating value and quality with Docker
  6. Enabling smoother flow of work

Part 13: Course conclusion, open discussion, and Q&A

  1. Going back to work with a plan
  2. What was not covered in this class
  3. Q&A with the instructor
  4. Goodbyes

Chef Foundations – Official Chef Training

Part 1: Using Chef resources – the building blocks

Part 2 : Building Chef recipes and cookbooks

Part 3: Introduction to testing cookbooks with Test Kitchen

Part 4: Collecting details about the system via Ohai

Part 5: Attributes – writing dynamic code

Part 6: Managing data with templates

Part 7: Advanced templating – passing in variables

Part 8: Storing your code in a repo – an introduction to Git

Part 9: Workstation setup

Part 10: Centralizing management with Chef Server

Part 11: Using Community Cookbooks

Part 12: Automating chef-client runs

Part 13: Managing a multi-node infrastructure

Part 14: Simplification and scalability through Roles

Part 15: Power automation – invoking Chef Search

Part 16: Staging versus Production – Environments

Part 17: Using Databags to create user accounts on servers

Ansible Configuration Management Boot Camp

Part 1: Introduction

  1. Why configuration management is a critical part of any DevOps team
  2. Strengths and weaknesses of Ansible
  3. Web-scale
    1. How Ansible is different from other CM tools like Chef and Puppet
    2. Getting started with Ansible terminology
    3. Ansible and YML for describing your environments

Part 2: Getting set up

  1. Some prerequisites
  2. Getting set up on a Mac
  3. Getting set up on Linux
  4. Getting set up on Windows
  5. Testing with Vagrant
  6. Using SSH keys to connect to your target nodes
  7. Hands-on Practice Lab: Install Ansible and test connectivity to your test nodes.

Part 3: Inventory

  1. Basic inventory example
  2. Hosts and groups
  3. Hands-on Practice Lab: Create an inventory file that defines four hosts, two web servers and two database servers, and assign these hosts to groups that describe their function.

Part 4: Ansible Playbooks

  1. A useful directory structure to keep your Ansible code organized
  2. Using git to manage your Ansible code
  3. A first look at a playbook to install and configure NTP time synchronization
  4. Hands-on Practice Lab: Create a playbook to install and configure OpenSSH-server on all nodes and make sure it is running.

Part 5: Provisioners

  1. Connecting Ansible to your preferred cloud provider (we'll use DigitalOcean)
  2. Creating a new server instance
  3. Dynamic inventory
  4. Dynamic inventory on Amazon AWS
  5. Mixing static and dynamic inventory
  6. Hands-on Practice Lab: Refactor your inventory so that your staging environment is local using Vagrant, and your production environment is built on DigitalOcean.

Part 6: Highly available infrastructure with Ansible

  1. Spec up our inventory and host groups
  2. Using roles
  3. Configure our database backend
  4. Configure our web server front-end
  5. Configure a replicated filesystem
  6. Configure centralized logging
  7. Hands-on Practice Lab: Build the sample infrastructure on your local Vagrant environment.

Part 7: Application deployments with Ansible

  1. Deploying our app from SCM to our local Vagrant environment
  2. How we would deploy that code to production once tested by QA
  3. Updating our application
  4. How Ansible compares to alternatives such as Capistrano
  5. Hands-on Practice Lab: Proceed with deploying our application on your local Vagrant environment.

Part 8: Docker containers with Ansible

  1. A brief intro to Docker
  2. The synergy of containerization and automation
  3. Using Ansible to build Docker containers
  4. MySQL containers
  5. Web application containers
  6. Data storage containers
  7. Hands-on Practice Lab: Adapt your infrastructure to deploy our sample app using Docker.

Part 9: Testing and continuous integration

  1. Unit, integration, and functional testing
  2. Automating your testing using GitHub and Travis CI
  3. Hands-on Practice Lab: Create some tests for our SSH playbook to make sure there are no syntax errors and that Ansible is configuring nodes as expected.

Part 10: Preparing for Ansible back at work

  1. Real-world use case: Using Ansible to automate CM and application pipelines through continuous integration, release, deployment, and operations
  2. We'll review your own environments and processes and evaluate how to best integrate Ansible's configuration management for your own needs
  3. Exercise: Your to-do list