Course Taxonomy: Technology Platforms

Jira and Agile Projects

Part 1 – JIRA Fundamentals

  1. Using JIRA
  • The JIRA workspace
  • Mapping JIRA features to common agile & scrum practices
  • Tickets in JIRA
  1. Team roles and JIRA
  • Review: Agile and Scrum basics
  • Team members
  • ScrumMasters & Product Owners
  • JIRA features for supporting Agile teams
  1. JIRA issues and Agile Projects
  • What’s possible with JIRA
  • Navigating JIRA
  • Creating, editing and transitioning issues
  • Types of issues
  • JIRA’s standard hierarchy
  • Stories, prioritizing & estimating
  • Managing backlogs in JIRA

Hands-On Exercise: Using issues to track, link, and cross-reference agile projects

  1. JIRA workflows
  • Project roles & permissions
  • Components
  • Releases
  • Projects to products
  • Views of projects within JIRA
  1. Search and Exploring Data
  • Prioritizing & searching JIRA issues
  • Views & options for meaningful results
  • Using filters
  • Using JIRA Query Language (JQL)
  • Saved searches and re-use
  • Using dashboards & subscriptions

Hands-On Exercise: Defining search criteria and using JQL, detail view, list view, filters & subscriptions

Part 2 – Applying JIRA to Enterprise Work

  1. Managing agile & kanban boards in JIRA
  • Aligning agile boards with team needs
  • Scrum vs. Kanban boards
  • Using Kanban boards
  • Typical team member duties in JIRA
  • Supporting sprint planning and resource assignments
  • Managing your backlog efficiently with JIRA
  • Epics, stories, and sub-tasks
  • Releases and release reporting
  1. Sprints in JIRA
  • Starting a sprint
  • Active sprints
  • Quick filters for managing work
  • Swimlanes
  • Closing a sprint

Demo – Using Agile Boards for backlogs and sprints

During this in-depth demonstration, we will show you how to use JIRA for some of the most common agile project needs. This demo will cover:

  1. Agile Board Navigation
  2. Compare Scrum and Kanban boards
  3. Using Backlog mode
  4. Filtering the Backlog
  5. Planning a Sprint
  6. Starting a Sprint
  7. Managing Work in an Active Sprint
  8. Closing a Sprint
  1. Analyzing reports in JIRA
  • Built-in JIRA reports and their benefits
  • Analyzing reports
  • Using information in JIRA to make decisions
  1. JIRA scrum boards and agile reports
  • Burndown Charts
  • Sprint Report
  • Epic Burndown
  • Release Burndown
  • Velocity Charts
  • Control Charts
  • Cumulative Flow Diagram
  1. JIRA Kanban Board reports
  • Control Charts
  • Cumulative Flow Diagrams
  • Work in Progress (WiP) and JIRA

Part 3 – Scaling JIRA enablement

  1. Using JIRA to enable Agile projects at scale
  • Managing multiple projects in JIRA
  • Cross-referencing and linking issues
  • Portfolio and program support with JIRA
  • Managing releases
  • Reporting
  • JIRA plugins
  1. Building Dashboards in JIRA
  • Creating, editing, and sharing dashboards
  • Dashboard gadgets to present information
  • Where do gadgets get their data?
  • Configure dashboard gadgets with project data and/or filtered data
  • Dashboard layouts
  • Dashboard troubleshooting
  1. Course conclusion: charting your path
  • Discussion: Top three opportunities for improvement using JIRA
  • Immediate next steps for your team
  • Expert Q and A

Microsoft Power BI Boot Camp

Part 1: What is BI

  1. Business Intelligence Overview
  2. Evolution of Business Intelligence
  3. Common Challenges
  4. Benefits of Power BI

Part 2: Getting Started with Power BI

  1. Overview & Pricing/Licensing
  2. Components of Power BI
    1. Power BI Desktop
    2. Power BI Mobile
    3. Power BI Embedded
    4. Power BI Gateway
  3. Building Blocks of Power BI
    1. Datasets
    2. Visualization
    3. Reports
    4. Tiles
    5. Dashboards
  4. Power BI Workflows
  5. Resources for Inspiration

Demo: Quick Tour of Power BI Service

Lab Exercise: Quick Tour of Power BI Service

Part 3: Getting Data

  1. Navigating Power BI Desktop
  2. Connect to Data Sources in Power BI Desktop
    1. File Data Sources
    2. Database Data Sources
    3. Azure Data Sources
    4. Online Service Data Sources
    5. Miscellaneous Data Sources
  3. Clean and Transform your Data
  4. Advanced Data Sources
    1. Advanced Editor
    2. Shaping Data
    3. Applied Steps
  5. Transformations
  6. Cleaning Irregularly Formatted Data
  7. Data Types
  8. Combining Data
  9. AI Analytics
    1. Text Analytics
    2. Vision
    3. Azure Machine Learning
    4. Invoking the Shared Models
    5. Considerations and Limitations

Demo: Quick Tour of Power Query Editor

Lab Exercise: Import Data and Create Queries with Power BI Desktop

Lab Exercise: Transform Data

Lab Exercise: Combining Data

Lab Exercise: Create a Report using Power BI Desktop

Lab Exercise: Publish a PBIX File to the Power BI Service

Part 4: Power BI and Excel

  1. Excel Integration
    1. Import an Excel Table into Power BI
    2. Use Excel as a Dataset
    3. Import Excel Files with Data Models
    4. Connect, Manage and View Excel in Power BI
  2. Publishing and Sharing

Part 5: Modeling Data

  1. Overview
  2. How to Manage Your Data Relationships
  3. Create Calculated Columns
  4. Optimizing Data Models for Better Visuals
  5. Create Measures and Work with Time-Based Functions
  6. Create Calculated Tables
  7. Explore Time-Based Data
  8. Grouping
  9. Binning
  10. Hierarchies

Demo: Modeling Relationships Column by Example Conditional Columns, Groups, Hierarchies

Part 6: Visualizations

  1. Overview
  2. Create and Customize Simple Visualization
    1. Numerical Fields
    2. Text Fields
    3. Geographic Fields
  3. Modify Colors Insert Static Objects, and Set Page Properties
  4. Styling with Shapes, Text Boxes, and Images
  5. Page Layout and Formatting
  6. Z-Order of Report Elements
  7. Customize Visuals with Summarizations
  8. How to:
    1. Use Combination Charts
    2. Manage Slicers and Sync Slicer
    3. Use Map Visualizations
    4. Implement Tables and Matrixes
    5. Apply Conditional Formatting
    6. Interpret Scatter Charts
    7. Work with Water & Funnel Chart
    8. Use Gauges and Single Number Cards
  9. Creating Complex Interactions Between Visuals
  10. Advance Concepts and New Features
    1. Decomposition Tree
    2. Key Influencers
    3. Insights
    4. Visual Hierarchies and drill-down behavior
    5. Custom Visualizations
    6. Drillthrough
    7. Analytics Pane
    8. Forecasting
    9. Tooltips
    10. Chiclet Slicer
    11. Hierarchy Slicer
    12. Synoptic Panel
  11. Other Powerful Custom Visualizes
    1. Pivot Slicer
    2. Smart Filter
    3. Hierarchy Filter
    4. Card Browser
    5. Visio Visual
    6. Infographic Designer
    7. D3JS Visualizer

Demo: Visualizations, Slicers, and Advanced Interactions

Part 7: Publishing and Sharing

  1. Print and Export Power BI dashboards
  2. Creating Content Packs
  3. Publishing to Web
  4. Embed in SharePoint
  5. Export to PowerPoint
  6. Power BI Mobile
  7. Creating Workspaces in Power BI

Part 8: Exploring Data

  1. Overview
  2. Use Quick Insights
  3. Create and Configure a Dashboard
  4. Shared Dashboards with your Organization
  5. Display Visuals and Tiles Full-Screen
  6. Edit Tile Details
  7. Get More Space on Your Dashboard
  8. Ask Questions of your Data with Natural Language
    1. Custom Q&A suggestions
    2. Adding Q&A to a Report
    3. Adding a Q&A to a Report
    4. Q&A Tooling
    5. Review Questions
    6. Teach Q&A
    7. Manage Terms
    8. Data Sources for Q&A
    9. Bulk Synonyms
    10. Q&A Best Practices
  9. Bookmarks
  10. Themes

Demo: Quick sights

Demo: Q&A in Dashboards and Reports

Demo: Bookmarks

Part 9: Administration & Security

  1. Securing Content in Power BI
    1. My workspace
    2. Sharing a Dashboard
    3. Sharing to Web
    4. Admin Access
  2. Row-level Security
  3. Permissions
  4. Defining and Creating toles within Power BI Desktop
  5. Row-Level Security
  6. Managing Data Capacity
  7. Subscriptions
  8. Resources

Part 10: Introduction to DAX

  1. DAX Calculation Types
    1. Calculated Columns
    2. Calculated Measures
  2. DAX Functions
    1. Aggregation Functions
    2. Counting Functions
    3. Logical Functions
    4. Information Functions
    5. Text Functions
    6. Date Functions
  3. Using Variables in DAX Expressions
  4. Table Relationships in DAX
  5. DAX Tables and Filtering
  6. Quick Measures
  7. What-if Parameters
  8. Dynamic Labeling
  9. Resources

Demo: Quick Measures

Demo: What-if

Demo: Dynamic Labeling

Hands-on Lab Exercises:

  • Retail Sales Exercise
  • Retail Analysis – Overview
  • Retail Analysis – District Monthly Sales
  • Retail Analysis – New Stores
  • Customer Profitability Exercise
  • Customer Profitability – Team Scorecard
  • Customer Profitability – Industry Margin Analysis
  • Customer Profitability – Executive Scorecard
  • Opportunity Analysis: Exercise
  • Opportunity Analysis – Opportunity Count
  • Opportunity Analysis – Revenue Overview
  • Opportunity Analysis – Upcoming Opportunities
  • Opportunity Analysis – Region Stage Counts
  • Opportunity Analysis Data Model

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

Managing Projects with Microsoft 365

  • Introduction to Project Management in Microsoft 365
    • Overview of tools and applications for managing tasks and projects
  • Introduction to Teams
    • Creating Teams
    • Creating Channels
    • Adding Channel Apps
    • Teams Apps
  • Introduction to SharePoint
    • Creating SharePoint Sites
    • SharePoint integration with Teams
  • Permissions Management in Microsoft 365 and SharePoint
    • Microsoft 365 Groups
    • Working with SharePoint Groups and Permissions
  • SharePoint Lists
    • Creating SharePoint Lists
    • Creating Columns
    • Creating and Working with Views
  • SharePoint Libraries
    • Creating SharePoint Libraries
    • Creating Columns
    • Creating Views
  • Document Management Tools
    • Version Control
    • Check In / Check Out Controls
    • Alerts
    • Working with Sensitivity Labels in SharePoint
  • Microsoft Planner
    • Planner Basic vs Planner Premium
    • Creating Basic Plans
    • Creating Premium Plans
    • Working with Microsoft Copilot for Planner
    • Integrating Plans into Teams
  • Microsoft Loop and Loop Components
    • Creating Microsoft Loop Workspaces
    • Creating Loop Pages
    • Creating Loop Components
    • Sharing and Embedding Loop Components
  • Microsoft Project Professional
    • Creating Project Plans
    • Creating Tasks
    • Scheduling Tasks
    • Working with Resources
    • Tracking Project Progress
    • Advanced Task Scheduling Features
    • Sync Project Plans with SharePoint
  • Automating Project Management Processes with Power Automate
    • Working with the built-in Sign Off Process
    • Creating Custom Workflows in Power Automate

Microsoft SharePoint Site Owner and Power User Boot Camp

Section 1 – Introduction to SharePoint

  • Introduction to SharePoint
  • How does SharePoint fit into Microsoft 365
  • Common SharePoint Deployments
  • Empowering Your Team and Building Your Single Source of Information

Section 2 – Understanding SharePoint Architecture in SharePoint Online

  • Old vs New SharePoint Architecture
  • Understanding Hub Sites
  • Creating SharePoint Sites
  • Teams sites and Communication Sites

Lab 1 – Creating Your SharePoint Sites

Section 3 – Permissions and Access Management

  • Understanding 365 Groups for Permissions
  • Working with SharePoint Groups
  • Working with Permissions Inheritance in SharePoint
  • Creating Custom Permissions in SharePoint

Lab 2 – Working with Permissions in SharePoint

Section 4 – SharePoint Lists

  • What is a List in SharePoint?
  • Classic vs Modern Lists
  • What is Metadata and How is it Used?
  • Creating and Working with List Views
  • How to Create Columns
  • Working with Different Column Types
  • How to Create and Deploy Site Columns

Lab 3 – Creating List Columns and Views

Section 5 – SharePoint Libraries

  • What are SharePoint Libraries
  • Reviewing Document Lifecyle
  • Creating Modern Document Libraries
  • Using Version Control in SharePoint
  • Understanding Draft Item Security
  • Working with Version History
  • Understanding Check in and Check Out Controls

Lab 4 – Creating SharePoint Libraries

Section 6 – Enterprise Content Management 

  • Understanding Tools for Content Management
  • Why to Avoid Folders in SharePoint
  • How to Create Libraries Without Folders
  • Building Content Types
  • Best Practices and Planning for Document Management

Lab 5 – Building Content Types in SharePoint

Section 7 – Practical Knowledge Check

  • A review of concepts covered so far in the class. Students work a practical scenario without step-by-step instructions to reenforce the covered learning concepts of the class to this point.

Section 8 – Business Process Automation in Power Automate

  • Introduction to Power Automate
  • Understanding Instant, Scheduled, and Push Button Workflows
  • Working with Workflow Triggers
  • Understanding Workflow Actions
  • Understanding Workflow Controls
  • Creating a Flow in Power Automate integrated with Microsoft Forms
  • Working with the SharePoint Built-In Sign Off Flow

Lab 6 – Creating and Using Power Automate Flows

Section 9 – SharePoint Site Design

  • Working with SharePoint Modern Pages
  • Review of SharePoint Web Parts
  • Creating New SharePoint Pages

Lab 7 – Customizing Your SharePoint Pages

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

Git & GitHub Boot Camp

Part 1: Git – Basic and Advanced Commands

1. Getting started with Git & GitHub

  • Why Git?
  • Installing Git on Windows
  • Installing Git on Mac
  • Installing Git on Linux
  • Signing up to GitHub
  • HTTPS
  • SSH
  • Understanding Git

2. Basic Git Commands

  • Configuration
  • Initializing a repository
  • Adding commits
  • Adding a remote
  • Pushing to the remote
  • Fetching from the remote
  • Pulling from the remote
  • Creating a branch
  • Merging
  • Cloning
  • Reset
  • Revert

3. Advanced Git Commands

  • Amending commits
  • Rebasing
  • Interactive rebasing
  • Cherry-picking
  • Bisect
  • Aliases
  • Hooks
    • Git hooks allow you to run scripts before or after certain Git actions (e.g., modify the commit message prior to committing).

Part 2: GitHub – Team and Enterprise Applications

1. Getting started with GitHub

  • Two-factor authentication
  • Searching GitHub
  • Starring repositories
  • Following people
  • Watching repositories
  • Commit email addresses
  • Notifications

2. Options for teams

  • Organization accounts
    • Organization accounts allow you to combine multiple GitHub users into an organization. A single GitHub user can be a member of several organizations. A repository can also be owned by an organization instead of a single user.
  • Teams
    • Organization accounts allow you to combine multiple GitHub users into an organization. A single GitHub user can be a member of several organizations. A repository can also be owned by an organization instead of a single user.
  • Paid plans
    • GitHub offers a lot of functionality for free. But companies often need more. The paid plans allow things like private repositories, fine-grained access control, extra support, etc.

3. Working in teams

  • GitHub Flow
    • GitHub Flow is an easy branching strategy. It starts from a master branch and creates only feature branches from there. The feature branches only get merged into the master branch when approved and ready for release. This allows a team to have a rapid cadence of releases, but it also creates some requirements that need to be addressed. For example, you will need a good CI/CD pipeline, a business that accepts rapid releases, possibly a good feature toggle system, etc.
  • Git Flow
    • GitFlow is a more complex branching strategy but allows for a more secure development and deployment pace. It's often more fit for larger enterprises. Luckily, there are CLI plugins and GUI tools that support GitFlow and make it easy to work with. This way, developers don't have to remember the specific commands and branching flows.
  • Documentation
  • Issues
  • Projects
    • GitHub projects give teams a Kanban board to organize and visualize their work. It's a step up from GitHub Issues.
  • Releases
    • Git allows developers to create tags in their repositories. In GitHub, you can easily link these tags to "Releases." A release can contain release notes, providing a nice overview of what changed over time.

Introduction to Kubernetes

Part 1: Prerequisites – Kubernetes Foundations

  1. Containers
  2. Linux Kernel Features
  3. Container User Experience
  4. New Container Capabilities
  5. Gaps using Containers in Production
  6. Microservices
  7. DevOps

Part 2: Core Concepts of Kubernetes

  1. Cluster Orchestration
  2. Looking at K8S Origination at Google
  3. Open Source
  4. Benefits
  5. Design Principles

Part 3: Navigating Kubernetes Architecture

  1. Master/Node
  2. Kubectl
  3. Replication Controller
  4. Kubelet
  5. Kube-Proxy
  6. Persistent Volumes
  7. Etcd
  8. High Availability

Part 4: Using Kubernetes Features

  1. Pods
  2. Labels
  3. Services
  4. Namespaces
  5. Resource Quota

Part 5: Security and Kubernetes

  1. Goals
  2. Roles
  3. Attribute-Based Access Control
  4. Policies
  5. Service Accounts
  6. Secrets

Part 6: Networking and Kubernetes

  1. Docker Networking
  2. Kubernetes Networking
  3. Pod to Pod
  4. Exposing Services
  5. IP Per Pod
  6. Inter Pod Communication
  7. Intra Pod Communication

Part 7: Cluster Add-ons

  1. Cluster DNS
  2. Logging with Elasticsearch and Fluentd
  3. Container Level Monitoring
  4. cAdvisor
  5. InfluxDB
  6. Prometheus

Part 8: Practical Kubernetes Examples

  1. Hello World
  2. WordPress         
  3. Guestbook
  4. 3 Tier App
  5. Http/Https Load Balancing

Part 9: Continuous Integration with Kubernetes

  1. Canary Release
  2. Blue Green Deployment
  3. A/B Testing
  4. Rolling Update
  5. Jenkins Plugin

Part 10: Roadmap/Beta

  1. Ingress
  2. Deployments
  3. Autoscaling
  4. Jobs
  5. DaemonSets
  6. Network Plugins
  7. DNS

Part 11: Class conclusion – Implementation, Q and A, Next Steps

  1. Discussion: What can you apply?
  2. How can Kubernetes help your situation
  3. Expert Q and A

Microservices Engineering Boot Camp

Part 1: Intro to Microservices

  1. Optimize for speed, not efficiency
  2. Case Study: General Electric
    1. Throughput
    2. Waste
  3. Amazon Web Services Case Study (SOA/Microservices)
    1. Problem: Scaling the Organization and the ‘Big ball of mud’
    2. Conway’s Law
    3. Service Oriented Architecture
    4. Forced Self Service Mandate
    5. Result: Amazon dominance of cloud
    6. Result: High velocity at scale
  4. Intro to Containers (encapsulation)
    1. What is Docker
    2. Exercise: Install Docker
    3. Exercise: Docker Hello World
    4. Docker ecosystem
    5. Docker concepts
    6. Container encapsulation/ideal use cases
      1. Encapsulation
      2. Speed
      3. Increased utilization of computing resources
    7. Benefits
      1. Configure once, run everywhere
    8. VM’s vs Container use cases
      1. Databases & stateless workloads
    9. Docker Architecture
    10. Exercise: Docker 101 – Web App
    11. Docker File System
    12. Docker Images
    13. Exercise: Stateless Web App
    14. Local Registry
    15. Data Volumes
    16. Exercise: Docker 201 – Compose Multi-tier app
    17. Continuous integration patterns
    18. Docker Security
    19. Continuous Integration
      1. Canary Release
      2. Blue Green Deployment
      3. A/B Testing
      4. Rolling Update
      5. Jenkins Plugin
  5. Microservice challenge: Continuous Integration Service
    1. On-Premise
      1. Jenkins
    2. SaaS Service
      1. Shippable
      2. Jenkins
      3. TravisCI
    3. Exercise: Trigger build/tests from change

Part 2: Microservices in Development

  1. Uber Case Study
    1. 2000 services, 1000 engineers
    2. Tradeoffs
      1. Plus – overall development speed
      2. Cons – technical challenges
  2. Box Case Study
    1. Traditional service deployment with bare metal
    2. 10x faster workflow with DevOps practices
  3. Microservice challenge: Image repository
    1. Docker repository development instance
    2. On-Premise Service
      1. Quay by CoreOS
    3. SaaS solution
      1. Docker Hub
      2. JFrog
    4. Exercise: Submit image to service
    5. Exercise: Pull image from service
  4. Intro to Kubernetes (Containers at Google)
    1. Prerequisites
    2. Containers
    3. Linux Kernel Features
    4. Container User Experience
    5. New Container Capabilities
    6. Gaps using Containers in Production
  5. Exercise: Kubernetes 100: Hello World
  6. Core Concepts
    1. Cluster Orchestration
    2. Originated at Google
    3. Open Source
    4. Benefits
    5. Design Principles
  7. Architecture
    1. Master/Node
    2. Kubectl
    3. Replication Controller
    4. Kubelet
    5. Kube-Proxy
    6. Persistent Volumes
    7. Etcd
    8. High Availability
    9. Exercise: Kubernetes 101: Stateless web app
  8. Kubernetes Features
    1. Pods
    2. Labels
    3. Services
    4. Namespaces
    5. Resource Quota
  9. Exercise: Kubernetes 201: Guestbook app

Part 3: Microservices in Production

  1. Spotify Case Study
    1. 810 Services, 477 engineers
  2. Microservice challenge: Service discovery
    1. Skydns
    2. Consul
  3. Exercise: Resolve service with DNS
  4. Security
    1. Goals
    2. Roles
    3. Attribute Based Access Control
    4. Policies
    5. Service Accounts
    6. Secrets
  5. Forth Microservice challenge: Secrets
    1. Vault
    2. Kubernetes Secrets API
  6. Exercise: Kubernetes – Store database credentials in cluster
  7. Cluster Add-ons
    1. Cluster DNS
    2. Logging with Elasticsearch and Fluentd
    3. Container Level Monitoring
    4. cAdvisor
    5. InfluxDB
    6. Prometheus
  8. Exercise: WordPress on Kubernetes
  9. Managing state with disposable architectures
    1. Tradeoffs, standalone vs containerized databases
    2. CAP Theorem
    3. SQL Databases
    4. NOSQL Databases
  10. Exercise: Cassandra on Kubernetes
  11. Practicing Failure
    1. Optimize MTTR
  12. Netflix Case Study
    1. Simian Army
    2. Graceful handling of failure

Part 4: Putting it all together

  1. Why Microservices?
    1. Scale an organization
    2. Tradeoffs
    3. Fault Tolerance
    4. Throughput
    5. Waste
  2. Kubernetes Alpha Features
    1. Multi-Datacenter Control Plane
    2. RBAC/Multi-tenancy
  3. Openshift/Mesos/Other PaaS platforms
  4. Exercise: Customize Microservice App
  5. Exercise: Scale app for simulated demand
  6. Review of Microservice Challenges
    1. Secure Images
    2. Highly available application
    3. Secrets
    4. Continuous Integration
    5. DNS Name resolution
  7. Summary