-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
149 lines (110 loc) · 3.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html>
<html>
<head>
<title>Containers-pres</title>
<meta charset="utf-8">
<style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# Containerisation Demo to UP teams
---
# Intro
- Background
- Docker refresher
- Coreos refresher
---
# UP architecture diagram
![up-arch-diagram](https://cdn.pbrd.co/images/17CCX75u.png)
---
# The Cluster
- fleetctl list-units
- look at some logs
- look at some logs
- ssh to a node. ps -ef, etc.
---
# End to End publication
- show healthcheck endpoints
- mention NOT externally accessible at the moment
- force ingest content uuid (wordpress?) via curl and see it from the api-policy-component (demo owlim persist)
- force ingest content uuid (wordpress?) via curl and see it from the document-store-api (demo mongo persist)
- publish
```bash
curl -i -H "Content-Type : application/json" -H "Host: ingester-content" -H "X-Request-Id: bodor001" -X POST -d '{ "contentUri" : "http://whatever/content/f1332fc0-0f54-11e5-897e-00144feabdc0", "destination" : "methode-article-transformer", "relativeUrl" : "content/f1332fc0-0f54-11e5-897e-00144feabdc0"}' localhost:8080/ingest/
```
- verify:
```bash
curl -H "Host: document-store-api" -H "Content-Type : application/json" -X GET localhost:8080/content/f1332fc0-0f54-11e5-897e-00144feabdc0
```
- talk about Vulcan (show sidekick service)
---
# Operating a service in the cluster
- fleetctl stop/destroy/start xxx.service
- show a request not working.
---
# Logging & Monitoring
- show logging in cluster splunk
- show logging on server
- show accessing docker container
- monitoring prometheus http://ip-172-31-20-111.eu-west-1.compute.internal:9090
```bash
#Vulcan CPU usage
sum(rate(container_cpu_usage_seconds_total{name="vulcan"}[2m]) * 100) by (name, instance)
#Vulcan memory
sum(container_memory_usage_bytes{name="vulcan"} / 1024 / 1024) by (name, instance)
#Memory all hosts
sum(container_memory_usage_bytes{name="/system.slice"} / 1024 / 1024) by (name, instance)
#io all hosts
sum(container_fs_io_current) by (instance)
#top CPU apps
topk(3, sum(rate(container_cpu_usage_seconds_total{name !~ "/|/system.slice*"}[2m]) * 100) by (name, instance))
```
- graphing http://graphite.ft.com/
---
# Security
- access key storage - ansible encryption
- access through proxy - talk about
```bash
ssh -Nn -D 2323 core@$FLEETCTL_TUNNEL
```
---
# Adding a new service to the cluster “manually”
- create a simple Dockerfile
- create a dockerhub build trigger????
- build and push to Dockerhub
- creating a service file
- deploy with fleetctl
---
# Automating things
- Deployer
* adding service.yaml for deployment tool or fleetctl?
* demo new service deploying cluster
- Auto created metrics
* see metrics for the new service in graphite + logs?
---
# Taking down nodes and observing recovery?
kill mongo master?
---
# Building Docker images for current applications?
- jenkins jobs http://ftapp09665-lviw-uk-p.osb.ft.com:8080/
- images on dockerhub?
- talk about versioning
</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>