Skip to content
This repository was archived by the owner on Dec 21, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions site/app/views/default/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,21 @@ <h2 class="banner-title">Welcome to Keptn Tutorials</h2>
data-filter-selected$="{% raw %}[[_toBoolean(selectedFilter)]]{% endraw %}">
<p class="banner-info">
With this collection of guided, hands-on tutorials you will learn how to use Keptn - from installation to continuous delivery with quality gates and automated operations.

We suggest to start with a <a href="?cat=full-tour">full tour</a> to learn about all aspects of Keptn. But feel free to explore all other tutorials as well.
<br>
The default overview shows tutorials for the latest Keptn version - but we provide tutorials for older versions as well that can be selected via the version dropdown.
The default overview shows tutorials for the most recent Keptn version that has tutorials available.
We also provide tutorials for older versions as well that can be selected via the version dropdown.
<br>
<br>
<!--TODO(oleg-nenashev): Fix rendering of lists and h3-->
<b>Learning path</b>
<br>
If you're just starting with Keptn, we suggest the following learning path.
<br>
1) Start with a <a href="?cat=quickstart">quickstart</a> for Keptn and Prometheus that allows to explore Keptn in a few minutes.
<br>
2) Take a <a href="?cat=full-tour">full tour</a> to learn about all aspects of Keptn, you can either choose a full tour for Prometheus or for Dynatrace platform.
<br>
3) Explore other technology-specific tutorials.
</p>
{%- else -%}
<div class="banner-description">
Expand Down
10 changes: 8 additions & 2 deletions site/app/views/default/view.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
{
"title": "Keptn Tutorials",
"description": "We provide a collection of guided, hands-on tutorials to help you get started using Keptn",
"tags": ["keptn09x"],
"tags": ["keptn011x"],
"categories": [],
"exclude": [
"^lang-.*"
],
"logoUrl": "/images/logo.png",
"toolbarBgColor": "#006bb8",
"sort": "mainCategory",
"pins": ["keptn-full-tour-prometheus","keptn-full-tour-dynatrace","keptn-full-tour-prometheus-07","keptn-full-tour-dynatrace-07","keptn-full-tour-prometheus-08","keptn-full-tour-dynatrace-08","keptn-full-tour-prometheus-09","keptn-full-tour-dynatrace-09"]
"pins": [
"keptn-public-demo","keptn-quickstart","keptn-full-tour-prometheus","keptn-full-tour-dynatrace",
"keptn-full-tour-prometheus-07","keptn-full-tour-dynatrace-07",
"keptn-public-demo-08","keptn-full-tour-prometheus-08","keptn-full-tour-dynatrace-08",
"keptn-public-demo-09","keptn-full-tour-prometheus-09","keptn-full-tour-dynatrace-09",
"keptn-public-demo-010","keptn-full-tour-prometheus-010","keptn-full-tour-dynatrace-010",
"keptn-public-demo-011","keptn-quickstart-011","keptn-full-tour-prometheus-011","keptn-full-tour-dynatrace-011"]
}
Binary file added site/app/views/keptn011x/keptn-large.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added site/app/views/keptn011x/logo_color.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions site/app/views/keptn011x/view.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"title": "Keptn 0.11.x",
"description": "A collection of tutorials for Keptn version 0.11.x",
"logoUrl": "/keptn011x/keptn-large.png",
"tags": ["keptn011x"],
"toolbarBgColor": "#006bb8",
"exclude": [
".*-about$",
"^lang-.*"
]
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
summary: 5 minute installation. All running on K3s with a single line installation. No Kubernetes cluster needed.
id: keptn-argo-rollouts-dynatrace-09-on-k3s
id: keptn-argo-rollouts-dynatrace-20-on-k3s
categories: Dynatrace,k3s,argo,canary
tags: keptn010x,introduction
status: Published
Expand Down
422 changes: 422 additions & 0 deletions site/tutorials/keptn-argo-rollouts-dynatrace-011-on-k3s.md

Large diffs are not rendered by default.

197 changes: 197 additions & 0 deletions site/tutorials/keptn-full-tour-dynatrace-011.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
summary: Full Keptn installation on a Kubernetes cluster (GKE recommended)
id: keptn-full-tour-dynatrace-011
categories: Dynatrace,aks,eks,gke,openshift,pks,minikube,full-tour,quality-gates,automated-operations
tags: keptn011x,advanced
status: Published
authors: Florian Bacher
Feedback Link: https://github.com/keptn/tutorials/tree/master/site/tutorials


# Keptn Full Tour on Dynatrace

## Welcome
Duration: 2:00


In this tutorial you'll get a full tour through Keptn. Before we get started you'll get to know what you will learn while you walk yourself through this tutorial.

### What you'll learn
- How to create a sample project
- How to onboard a first microservice
- How to deploy your first microservice with blue/green deployments
- How to setup quality gates
- How to prevent bad builds of your microservice to reach production
- How to trigger the changes of feature toggles in response to issues detected in a production system
<!-- How to integrate other tools like Slack, MS Team, etc in your Keptn integration -->

You'll find a time estimate for completing this tutorial in the right top corner of your screen - this should give you guidance how much time is needed for each step.

In this tutorial, we are going to install Keptn on a Kubernetes cluster, along with Istio for traffic routing and ingress control.

- [Keptn](https://keptn.sh) as a control-plane for continuous delivery and automated operations
- [Istio](https://istio.io) as the ingress and service mesh within the cluster for traffic routing between blue/green versions of our services
- [Unleash](https://unleash.github.io/) as a feature toggle framework that is connected to Keptn to toggle features based on monitoring data


The full setup that we are going to deploy is sketched in the following image.
![demo setup](./assets/full-tour-dynatrace.png)


{{ snippets/010/install/cluster.md }}

{{ snippets/010/install/istio.md }}

{{ snippets/010/install/download-keptnCLI.md }}

{{ snippets/010/install/install-full.md }}

{{ snippets/010/install/configureIstio.md }}

{{ snippets/010/install/authCLI-istio.md }}

{{ snippets/010/monitoring/setupDynatrace.md }}

{{ snippets/010/manage/createProject.md }}

{{ snippets/010/manage/onboardService.md }}

{{ snippets/010/monitoring/configureDynatraceSlis.md }}

{{ snippets/010/quality-gates/setupQualityGate.md }}

{{ snippets/010/self-healing/featureFlagsDynatrace.md }}



## Finish
Duration: 1:00

### Congratulations

Thanks for taking a full tour through Keptn!
Although Keptn has even more to offer that should have given you a good overview what you can do with Keptn.

### What we've covered


- We have created a sample project with the Keptn CLI and set up a multi-stage delivery pipeline with the `shipyard` file.
```
apiVersion: "spec.keptn.sh/0.2.0"
kind: "Shipyard"
metadata:
name: "shipyard-sockshop"
spec:
stages:
- name: "dev"
sequences:
- name: "delivery"
tasks:
- name: "deployment"
properties:
deploymentstrategy: "direct"
- name: "test"
properties:
teststrategy: "functional"
- name: "evaluation"
- name: "release"
- name: "delivery-direct"
tasks:
- name: "deployment"
properties:
deploymentstrategy: "direct"
- name: "release"

- name: "staging"
sequences:
- name: "delivery"
triggeredOn:
- event: "dev.delivery.finished"
tasks:
- name: "deployment"
properties:
deploymentstrategy: "blue_green_service"
- name: "test"
properties:
teststrategy: "performance"
- name: "evaluation"
- name: "release"
- name: "rollback"
triggeredOn:
- event: "staging.delivery.finished"
selector:
match:
result: "fail"
tasks:
- name: "rollback"
- name: "delivery-direct"
triggeredOn:
- event: "dev.delivery-direct.finished"
tasks:
- name: "deployment"
properties:
deploymentstrategy: "direct"
- name: "release"

- name: "production"
sequences:
- name: "delivery"
triggeredOn:
- event: "staging.delivery.finished"
tasks:
- name: "deployment"
properties:
deploymentstrategy: "blue_green_service"
- name: "release"
- name: "rollback"
triggeredOn:
- event: "production.delivery.finished"
selector:
match:
result: "fail"
tasks:
- name: "rollback"
- name: "delivery-direct"
triggeredOn:
- event: "staging.delivery-direct.finished"
tasks:
- name: "deployment"
properties:
deploymentstrategy: "direct"
- name: "release"
```

- We have set up quality gates based on service level objectives in our `slo` file.
```
---
spec_version: "0.1.1"
comparison:
aggregate_function: "avg"
compare_with: "single_result"
include_result_with_score: "pass"
number_of_comparison_results: 1
filter:
objectives:
- sli: "response_time_p95"
key_sli: false
pass: # pass if (relative change <= 10% AND absolute value is < 600ms)
- criteria:
- "<=+10%" # relative values require a prefixed sign (plus or minus)
- "<600" # absolute values only require a logical operator
warning: # if the response time is below 800ms, the result should be a warning
- criteria:
- "<=800"
weight: 1
total_score:
pass: "90%"
warning: "75%"
```

- We have tested our quality gates by deploying a bad build to our cluster and verified that Keptn quality gates stopped them.
![bridge](./assets/bridge-quality-gate.png)

- We have set up self-healing by automated toggling of feature flags in Unleash.
![unleash](./assets/unleash-promotion-toggle.png)

{{ snippets/010/integrations/gettingStarted.md }}

{{ snippets/010/community/feedback.md }}
35 changes: 35 additions & 0 deletions site/tutorials/keptn-full-tour-dynatrace-011/codelab.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"environment": "web",
"format": "html",
"prefix": "https://storage.googleapis.com",
"mainga": "UA-133584243-1",
"updated": "2021-11-19T10:46:48+01:00",
"id": "keptn-full-tour-dynatrace-011",
"duration": 104,
"title": "Keptn Full Tour on Dynatrace",
"authors": "Florian Bacher",
"summary": "Full Keptn installation on a Kubernetes cluster (GKE recommended)",
"source": "keptn-full-tour-dynatrace-011_gen.md",
"theme": "",
"status": [
"published"
],
"category": [
"dynatrace",
"aks",
"eks",
"gke",
"openshift",
"pks",
"minikube",
"full-tour",
"quality-gates",
"automated-operations"
],
"tags": [
"advanced",
"keptn011x"
],
"feedback": "https://github.com/keptn/tutorials/tree/master/site/tutorials",
"url": "keptn-full-tour-dynatrace-011"
}
Loading