Initial import

This commit is contained in:
Glenn Y. Rolland 2020-04-08 20:29:10 +02:00
commit 55bbe8aaa2
15 changed files with 864 additions and 0 deletions

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
\.vagrant
node_modules
_inspiration/
*.pdf
*.epub
*.docx
/site

39
Makefile Normal file
View File

@ -0,0 +1,39 @@
all: help
prepare:
pipenv install
watch: ## run development server
pipenv run honcho start
watch-mkdocs:
pipenv run mkdocs serve --dev-addr 0.0.0.0:5001
serve: watch
tocupdate:
while inotifywait -q -e move -e modify -e create -e attrib -e delete -r docs ; do \
sleep 1 ; \
pipenv run ./scripts/update-toc ; \
done
build:## build static pages
pipenv run mkdocs build
install: ## deploy static pages to github
git push
pipenv run mkdocs gh-deploy
help: ## print this help
@echo "Usage: make <target>"
@echo ""
@echo "With one of following targets:"
@echo ""
@awk 'BEGIN {FS = ":.*?## "} \
/^[a-zA-Z_-]+:.*?## / \
{ sub("\\\\n",sprintf("\n%22c"," "), $$2); \
printf("\033[36m%-20s\033[0m %s\n", $$1, $$2); \
}' $(MAKEFILE_LIST)
@echo ""

16
Pipfile Normal file
View File

@ -0,0 +1,16 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
mkdocs = "*"
mkdocs-material = "*"
mdx-truly-sane-lists = "*"
pymdown-extensions = "*"
honcho = "*"
[requires]
python_version = "3.7"

193
Pipfile.lock generated Normal file
View File

@ -0,0 +1,193 @@
{
"_meta": {
"hash": {
"sha256": "911097b967666f1a9771368e2f9bcd8868d417976b12d90ffdfc27ba6f3ae65e"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.7"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"click": {
"hashes": [
"sha256:8a18b4ea89d8820c5d0c7da8a64b2c324b4dabb695804dbfea19b9be9d88c0cc",
"sha256:e345d143d80bf5ee7534056164e5e112ea5e22716bbb1ce727941f4c8b471b9a"
],
"version": "==7.1.1"
},
"future": {
"hashes": [
"sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
],
"version": "==0.18.2"
},
"honcho": {
"hashes": [
"sha256:af5806bf13e3b20acdcb9ff8c0beb91eee6fe07393c3448dfad89667e6ac7576",
"sha256:c189402ad2e337777283c6a12d0f4f61dc6dd20c254c9a3a4af5087fc66cea6e"
],
"index": "pypi",
"version": "==1.0.1"
},
"jinja2": {
"hashes": [
"sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250",
"sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49"
],
"version": "==2.11.1"
},
"livereload": {
"hashes": [
"sha256:78d55f2c268a8823ba499305dcac64e28ddeb9a92571e12d543cd304faf5817b",
"sha256:89254f78d7529d7ea0a3417d224c34287ebfe266b05e67e51facaf82c27f0f66"
],
"version": "==2.6.1"
},
"lunr": {
"extras": [
"languages"
],
"hashes": [
"sha256:1208622930c915a07e6f8e8640474357826bad48534c0f57969b6fca9bffc88e",
"sha256:7be69d7186f65784a4f2adf81e5c58efd6a9921aa95966babcb1f2f2ada75c20"
],
"version": "==0.5.6"
},
"markdown": {
"hashes": [
"sha256:90fee683eeabe1a92e149f7ba74e5ccdc81cd397bd6c516d93a8da0ef90b6902",
"sha256:e4795399163109457d4c5af2183fbe6b60326c17cfdf25ce6e7474c6624f725d"
],
"version": "==3.2.1"
},
"markupsafe": {
"hashes": [
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
"sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42",
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
"sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b",
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
"sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15",
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
"sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2",
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"
],
"version": "==1.1.1"
},
"mdx-truly-sane-lists": {
"hashes": [
"sha256:4600ade0fbd452db8233e25d644b62f59b2798e40595ea2e1923e29bc40c5b98",
"sha256:cc8bfa00f331403504e12377a9c94e6b40fc7db031e283316baeeeeac68f1da9"
],
"index": "pypi",
"version": "==1.2"
},
"mkdocs": {
"hashes": [
"sha256:1e385a70aea8a9dedb731aea4fd5f3704b2074801c4f96f06b2920999babda8a",
"sha256:9243291392f59e20b655e4e46210233453faf97787c2cf72176510e868143174"
],
"index": "pypi",
"version": "==1.1"
},
"mkdocs-material": {
"hashes": [
"sha256:0a3ef09776d8160a1de322065d68cc05672ac47052733665fa405e8c8f263115",
"sha256:a16b7dbb2704fc911d9705881a66dba15136e1b8c2b818ba08faabfd60192155"
],
"index": "pypi",
"version": "==5.0.1"
},
"nltk": {
"hashes": [
"sha256:bed45551259aa2101381bbdd5df37d44ca2669c5c3dad72439fa459b29137d94"
],
"version": "==3.4.5"
},
"pygments": {
"hashes": [
"sha256:647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44",
"sha256:ff7a40b4860b727ab48fad6360eb351cc1b33cbf9b15a0f689ca5353e9463324"
],
"version": "==2.6.1"
},
"pymdown-extensions": {
"hashes": [
"sha256:71cbc748789959d4b964fe8dc038f5436779d244399fd5ba3a0bbfe9a0e43b1f",
"sha256:d27a8bc8bb7ecac589e832465dbefe24d7fedd9792636c6d0ac521e5045bedc0"
],
"index": "pypi",
"version": "==7.0"
},
"pyyaml": {
"hashes": [
"sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97",
"sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76",
"sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2",
"sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648",
"sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf",
"sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f",
"sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2",
"sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee",
"sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d",
"sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c",
"sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"
],
"version": "==5.3.1"
},
"six": {
"hashes": [
"sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a",
"sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"
],
"version": "==1.14.0"
},
"tornado": {
"hashes": [
"sha256:0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc",
"sha256:22aed82c2ea340c3771e3babc5ef220272f6fd06b5108a53b4976d0d722bcd52",
"sha256:2c027eb2a393d964b22b5c154d1a23a5f8727db6fda837118a776b29e2b8ebc6",
"sha256:5217e601700f24e966ddab689f90b7ea4bd91ff3357c3600fa1045e26d68e55d",
"sha256:5618f72e947533832cbc3dec54e1dffc1747a5cb17d1fd91577ed14fa0dc081b",
"sha256:5f6a07e62e799be5d2330e68d808c8ac41d4a259b9cea61da4101b83cb5dc673",
"sha256:c58d56003daf1b616336781b26d184023ea4af13ae143d9dda65e31e534940b9",
"sha256:c952975c8ba74f546ae6de2e226ab3cc3cc11ae47baf607459a6728585bb542a",
"sha256:c98232a3ac391f5faea6821b53db8db461157baa788f5d6222a193e9456e1740"
],
"version": "==6.0.4"
}
},
"develop": {}
}

2
Procfile Normal file
View File

@ -0,0 +1,2 @@
web: make watch-mkdocs
toc: make tocupdate

3
Procfile.watch Normal file
View File

@ -0,0 +1,3 @@
mkdocs: make watch-mkdocs
slides: make watch-slides
toc: make tocupdate

0
QUESTIONS.md Normal file
View File

42
REFERENCES.md Normal file
View File

@ -0,0 +1,42 @@
# Kubernetes
## Beginner guides & bootcamps
## Books
## Beginner courses
## Advanced courses
## Focused Articles
## Cheat Sheet
## Awesome
## Free Courses
## Unsorted Courses
## Docker?
## Workshops / Full tutorials
## Interview questions
## Video
## Outils tiers
## Tags / Topics
## Infrastructures / test
## Question

0
docs/index.md Normal file
View File

181
mkdocs.yml Normal file
View File

@ -0,0 +1,181 @@
site_name: Kubernetes
# theme_dir: 'themes/mkdocs-material/material'
# theme_dir: 'themes/mkdocs-material'
site_author: 'Glenn Y. Rolland'
site_url: 'http://glenux.github.io/teaching-devops-kubernetes'
# copyright: 'Copyright (c) 2016 El Gadjo Ridículo'
repo_name: 'GitHub'
repo_url: 'https://github.com/glenux/teaching-devops-kubernetes'
# site_favicon: 'favicon.ico'
theme:
language: fr
# name: 'gitbook'
# name: 'alabaster'
# name: 'windmill'
# name: 'ivory'
name: 'material'
palette:
primary: 'white'
accent: 'black'
neutral: 'black'
feature:
tabs: false
i18n:
prev: 'Chapitre précédent'
next: 'Chapitre suivant'
extra_css:
- css/extra.css
extra_javascript:
- js/extra.js
#author:
# github: 'elgadjo'
# twitter: 'elgadjo'
# Extensions
markdown_extensions:
- footnotes
- admonition
- toc:
permalink: '#'
- codehilite:
guess_lang: false
- mdx_truly_sane_lists # pip install mdx_truly_sane_lists
- pymdownx.emoji: # pip install pymdown-extensions
emoji_generator: !!python/name:pymdownx.emoji.to_svg
- pymdownx.superfences: # pip install pymdown-extensions
extra:
search:
language: 'fr, en'
# run the following line to update toc
# pipenv run ./script/update-toc
# BEGIN MKDOCS-TOC
nav:
- "Préambule":
- 000-attic-preambule/010-histoire.md
- 000-attic-preambule/020-rappels-docker.md
- 000-attic-preambule/030-limites-docker.md
- "Rappels sur Docker":
- 000-attic-using-docker/010-dockerfile.md
- 000-attic-using-docker/020-build.md
- 000-attic-using-docker/030-run.md
- 000-attic-using-docker/040-registry.md
- "Introduction":
- 010-about-kubernetes/010-kubernetes.md
- 010-about-kubernetes/010-privitives-concepts.md
- 010-about-kubernetes/020-yaml-syntax.md
- 010-about-kubernetes/030-cli.md
- "Installation":
- 020-installing/020-local-minikube.md
- 020-installing/030-local-kind.md
- 020-installing/035-local-docker-client.md
- 020-installing/040-baremetal-kubeadm.md
- 020-installing/050-baremetal-rancher.md
- 020-installing/060-baremetal-openshift.md
- 020-installing/070-baremetal-k3s.md
- 020-installing/080-cloud-gcp.md
- 020-installing/090-kubectl.md
- "Premiers pas":
- 030-first-steps/005-verif-config.md
- 030-first-steps/007-first-steps.md
- 030-first-steps/015-namespace.md
- 030-first-steps/017-nodes.md
- 030-first-steps/020-pods.md
- 030-first-steps/030-services.md
- 030-first-steps/040-archi.md
- "Les bases":
- 050-basics/010-scalability.md
- 050-basics/020-deployment.md
- 050-basics/050-volumes.md
- 050-basics/060-autoscaling.md
- 050-basics/080-readiness.md
- 050-basics/090-events.md
- 050-basics/basics-deployments.md
- 050-basics/basics-healthchecks.md
- 050-basics/basics-labels.md
- 050-basics/basics-node-architecture.md
- 050-basics/basics-pods-state-lifecycle.md
- 050-basics/basics-readiness.md
- 050-basics/basics-scaling-pods.md
- 050-basics/basics-secrets.md
- 050-basics/basics-services.md
- 050-basics/basics-webui.md
- "Gestion des resources":
- 060-resources/060-requests-limits.md
- 060-resources/070-quotas.md
- "Secrets":
- 080-secrets/010-intro.md
- 080-secrets/020-configmap.md
- 080-secrets/030-secrets.md
- 080-secrets/040-security.md
- "Ingress & Egress":
- 090-ingress-egress/010-ingress.md
- 090-ingress-egress/020-egress.md
- "Packages et extensions":
- 100-packaging/010-helm.md
- 100-packaging/020-creating-helm-chars.md
- 100-packaging/030-help-repository.md
- 100-packaging/040-building-deploying.md
- 100-packaging/050-fission.md
- "Monitoring":
- 800-monitoring/010-dashboard.md
- 800-monitoring/020-prometheus.md
- 800-monitoring/030-logs.md
- "Bonnes pratiques":
- 900-good-practices/010-arbo.md
- 900-good-practices/020-ci-cd.md
- 900-good-practices/025-development.md
- 900-good-practices/030-score.md
- 900-good-practices/040-troubleshooting.md
- 900-good-practices/060-other-tools.md
- 900-good-practices/090-pdb.md
- "999-3rd-party":
- 999-3rd-party/introduction-to-orchestration.md
- "999-other":
- 999-other/admin-high-availability.md
- 999-other/admin-master-services.md
- 999-other/admin-namespaces.md
- 999-other/admin-networking.md
- 999-other/admin-node-maintenance.md
- 999-other/admin-quotas-limits.md
- 999-other/admin-rbac.md
- 999-other/admin-tls-on-elb.md
- 999-other/admin-user-management.md
- 999-other/adv-auto-discovery.md
- 999-other/adv-autoscaling.md
- 999-other/adv-configmap.md
- 999-other/adv-daemon-sets.md
- 999-other/adv-ext-dns.md
- 999-other/adv-ingress.md
- 999-other/adv-interpod-anti-affinity.md
- 999-other/adv-monitoring.md
- 999-other/adv-node-affinity.md
- 999-other/adv-operators.md
- 999-other/adv-pod-presets.md
- 999-other/adv-stateful-sets.md
- 999-other/adv-taints-tolerations.md
- 999-other/adv-volumes.md
- 999-other/extra-kubeadm.md
- 999-other/extra-tls-cert-manager.md
- 999-other/intro-build-container-image.md
- 999-other/intro-build-container.md
- 999-other/intro-cluster-setup.md
- 999-other/intro-run-first-app.md
- 999-other/kops.md
- 999-other/other.md
- 999-other/pimp-k9s.md
- 999-other/pimp-tubekit.md
# END MKDOCS-TOC

19
package.json Normal file
View File

@ -0,0 +1,19 @@
{
"name": "teaching-framework-nodejs-advanced",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"doc": "docs"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@marp-team/marp-cli": "^0.16.2",
"foreman": "^3.0.1",
"node-sass": "^4.13.0"
}
}

128
scripts/update-toc Executable file
View File

@ -0,0 +1,128 @@
#!/usr/bin/env python3
import click
import os
import re
import pdb
import pprint
from pathlib import Path
pp = pprint.PrettyPrinter(indent=4).pprint
class TocBuilder:
def __init__(self, root_path):
self.root_path = root_path
# Helper for titles
def __get_title(self, fn):
if not os.path.exists(fn):
return None
f1 = open(fn, "r")
for line in f1:
m = re.match(r"^#\s(.*)$", line)
if m:
f1.close()
return m.groups()[0]
f1.close()
return None
def lookup(self):
md_files = []
for root, dirs, files in os.walk(self.root_path):
for fn in files:
# compute absolute and relative path
abs_path = os.path.join(root, fn)
rel_path = os.path.relpath(abs_path, self.root_path)
# split name into parts
bname = os.path.basename(rel_path)
bname_split = os.path.splitext(bname)
dname = os.path.dirname(rel_path)
# skip files in docs/ root
if dname == "":
continue
# skip index files
if bname_split[0] == 'index':
continue
# keep only .md files
if bname_split[1] == '.md':
md_files.append(rel_path)
return md_files
def format(self, md_files):
lines = ["nav:"]
lastdir=""
for f in sorted(md_files):
bname = os.path.basename(f)
bname_split = os.path.splitext(bname)
dname = os.path.dirname(f)
if lastdir != dname:
lastdir = dname
title = self.__get_title(os.path.join(self.root_path, dname, 'index.md'))
if title is not None:
lines.append(" - \"%s\":" % title)
else:
lines.append(" - \"%s\":" % dname)
lines.append(" - %s" % f)
return lines
class FileInjector:
def __init__(self, delimiter):
self.delimiter = delimiter
def inject(self, filename, lines):
suffix = '~update_toc'
src_fh = open(filename, 'r')
dst_fh = open(filename + suffix, 'w')
inject_mode = False
end_pattern = r"^#\s+END {0}\s*$".format(self.delimiter)
begin_pattern = r"^#\s+BEGIN {0}\s*$".format(self.delimiter)
for src_line in src_fh:
if (not inject_mode) and re.match(begin_pattern, src_line):
# activate inject_mode, write begin pattern and lines
inject_mode = True
dst_fh.write(src_line)
for line in lines:
dst_fh.write(line + "\n")
elif inject_mode and re.match(end_pattern, src_line):
# disable inject_mode and write end pattern
inject_mode = False
dst_fh.write(src_line)
elif inject_mode:
# skip line if injection mode is active
next
else:
# simple copy if injection mode is NOT active
dst_fh.write(src_line)
# si la ligne <
# FIXME: error if inject_mode is still True
src_fh.close()
dst_fh.close()
os.rename(filename + suffix, filename)
# build TOC in-memory
#
# open mkdocs.yml file
# save part before
@click.command()
def build():
root_path = Path(__file__).parent.parent
toc = TocBuilder(str(root_path / 'docs'))
md_files = toc.lookup()
md_toc = toc.format(md_files)
fi = FileInjector('MKDOCS-TOC')
fi.inject(str(root_path / 'mkdocs.yml'), md_toc)
if __name__ == '__main__':
build()

BIN
slides/images/0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

69
slides/index.md Normal file
View File

@ -0,0 +1,69 @@
# Gestion de projet DATA
## Introduction
* De quoi on parle ?
* C'est quoi les DATA ?
## L'écosysteme DATA actuel
## Les DATA au sein de votre processus métier
* Collecte de données et objets connectés
* Analyse et préparation des données
* Intelligence Artificielle et Machine Learning
* Flux de données et actionautomatiques
## Enjeux, opportunités, coûts et business models
* Quelle stratégies gagnantes adopter ?
* Exemples de mise en oeuvre
## Gestion de la qualité
* Mise en production
* Formats, normes et standards
* Aspects règlementaires (RGPD et données personnelles, etc.)
## Collecte de données
Papier
Téléphone
Mesure
Capteurs
## Préparation des données
## Transformation des données
## Export des données
## Stockage des données
##

165
slides/intro.md Normal file
View File

@ -0,0 +1,165 @@
# Gestion de projet data - Introduction
## Définition
* Latin DATUM, DATA | Du latin data (« choses données (au pluriel) »)
data \da.ta\ féminin
(Philosophie) Se dit de faits connus dans le domaine scientifique et servant
de
départ à des recherches futures. (corrélatif de desiderata)
Données.
Dans le cadre de l'option à 1,99€/20Mo, la data sera-t-elle décomptée par
paliers de 1Mo ? 100Ko ? 20Ko ? 10Ko ? 1Ko ? — (Forum LesMobiles.com)
Et si Uber, le premier dentre eux, y investit (et au sens plein du terme,
puisquelle se dit prête « à voir ses recettes seffriter dans un premier
temps
»), cest parce que ses data confirment un raccourcissement du trajet moyen
des
courses réalisées par les chauffeurs. — (Olivier Haralambon , « Un vélo
électrique pour tous ? » sur LEquipe.fr. Mis en ligne le 11 septembre 2018)
---|---
* ce qui est donné
* un fait
* une information
* A quoi sert la data
* à des machines
* in fine, à d'autres humains
## Contexte
* Dans une entreprise capitaliste on veut de la croissance
* Vendre plus cher
* Vendre plus
* Elargir le marché (croissance horizontale)
* Mieux cibler sa prospection
* connaitre le consommateur
* Payer moins cher les ressources
* Etre plus efficace / ressource
* Produire plus / ressource
* Acquérir de nouvelles compétences (croissance verticale)
* De plus en plus de projet data
* De plus en plus dentreprises du secteur optent pour des stratégies data-driven et se lancent dans un marathon de projets Data Science et Intelligence artificielle, espérant ainsi profiter des avantages des nouvelles technologies et de la donnée.
* Quelle est la meilleure approche pour réussir un projet Data Science ou Intelligence artificielle ?
* Quels sont les acteurs nécessaires aux changements ?
* Comment se déclinent les différentes étapes de conception et de déploiement de projets dans le temps ?
* De plus en plus de demande pour les compétences data
* Data scientist
* data analyst
* data engineer
* ...tout le monde peut inclure de l'analyse data dans sa pratique professionnelle.
## Enjeux de la data et de son analyse
* Analyse de données
* = être capable de collecter, organiser, nettoyer, manipuler, décortiquer, analyser et visualiser des données internes ou externes, qualitatives ou quantitatives, que chaque entreprise a à sa disposition
* Nouvelle forme de capital (valeur + levier de pouvoir)
* Information
* = Valeur
* = Influence
* = Temps d'avance
* Analyse de données
* Information... qui produit de l'information
* => Levier de pouvoir
* => Nouvelle forme de capital
## Différents types de projets data
* Les usages sont innombrables.
* Objectifs concrets
* lautomatisation des processus
* lanalyse des insights (soit pour comprendre lexistant, détecter des patterns ou prédire des événements)
* lamélioration du niveau de service et lengagement vis-à-vis de lutilisateur final.
* Trois grandes classes
* 1\. Robotic Process Automation | Le Robotic Process Automation (RPA) est la forme de lIA la plus facile et la
moins coûteuse à mettre en place. En général, elle porte ses fruits à court
terme et son ROI est remarquable. Toutefois, malgré la facilité de sa mise en
place et ses bénéfices considérables, de nombreuses entreprises ont encore du
chemin à faire dans ce domaine.
---|---
* Le transfert de données et des emails collectés dans divers systèmes dinformation pour mettre à jour les bases de données clients ou les opportunités détectées ;
* Le rapprochement et contrôle des factures et commandes afin de rendre plus robuste les processus comptables ;
* La lecture et analyse des contrats et documents légaux pour extraire des contraintes ou anomalies possibles.
* 2\. Analyse de données | La deuxième forme la plus commune et connue de lIA et de la Data Science est
lanalyse de linformation et lextraction de la valeur depuis un vaste volume
de données (Big Data) pour des fins descriptives ou prédictives. Par exemple :
Les techniques les plus développées de Machine Learning, dites de Deep
Learning,
permettent de réaliser des fonctions comme la reconnaissance vocale ou dimage
ou encore du [Natural Language
Processing](https://fr.blog.businessdecision.com/replay-data-science-5-text-
mining-nlp/) (NLP).
---|---
* Faire de la maintenance prédictive sur les chaines dindustrie
* Identifier les fraudes possibles dans les systèmes bancaires ou dassurance ou les systèmes de santé
* Automatiser le ciblage clientèle lors des campagnes marketing
* Fournir aux assureurs des modèles plus précis sur les potentiels clients
* Engagement et prise de décision | La troisième forme consiste à engager lutilisateur final (employé ou client)
dans un processus dinteraction avec la machine afin de récolter de
linformation ou de fournir un service.
La richesse des fonctions que peuvent soffrir les organisations est très
attractive. Toutefois, la mise en place de projets dIntelligence Artificielle
est confrontée à plusieurs obstacles de natures différentes :
organisationnelle,
financière, technologique ou stratégique.
---|---
* Les [agents conversationnels](https://fr.blog.businessdecision.com/chatbot-agent-conversationnel-experience-client/) (chatbots) intelligents qui sont sollicités 24/7 et qui couvrent une panoplie de services dépendant du niveau dapprentissage du robot.
* Les [moteurs de recommandation](https://fr.blog.businessdecision.com/moteur-de-recommandation-temps-reel-le-graal-du-marketing-digital/) qui orientent lutilisateur dans ses choix de services ou produits
## Limites et enjeux actuels
* Initiative complexe
* En terme de RH
* En terme de processus
* En terme de technologies
* Manque de recul
* Des modeles difficilements industrialisables
* Encore en POC
* Pas de méthodes sur la partie OPS
* Approche centrée sur la technologie
* Collecte
* capable de ratisser tres large mais..
* quelle est la qualité de la donnée ?
* pertinente ou déchet ?
* Chaine opérationnelle
* Organisation non mobilisée
* Faible collaboration liées aux différences culturelles
* Vision transverse aux différentsmétiers
* Quels temps de réactions
* entre la collecte
* le traitement
* et l'action
* Vision à 360° et humanisme
* La machine ne fait pas de prise en compte globale
* L'analyse du contexte, une vision à 360° autour de la donnée, importe tout autant que cette dernière
* Risque juridique
* données perosnnelles dans les modeles (RGPD)
* a qui appartient le modele entrainé sur la base de données d'un tiers (propriété intellectuelle / industrielle)
## Références
* [READ. La Tribune : Mener à bien un projet data : une route encore semée d'embûches![Flag: url](flags/flag-url.png)](https://www.latribune.fr/opinions/tribunes/mener-a-bien-un-projet-data-une-route-encore-semee-d-embuches-792583.html)
* [Data Analytics Post : CHEF DE PROJET DATA : LEXPERT BUSINESS DE LENTREPRISE![Flag: url](flags/flag-url.png)](https://dataanalyticspost.com/fiche-metier/chef-de-projet-data/)
* [Op Team : Quelle gestion de projet pour le BIG DATA![Flag: url](flags/flag-url.png)](https://www.opteam.fr/blog/quelle-gestion-de-projet-pour-le-big-data)
* [PLB : Formation Big Data : Concevoir et piloter un projet Big Data![Flag: url](flags/flag-url.png)](https://www.plb.fr/formation/aide-%C3%A0-la-d%C3%A9cision/formation-gestion-projet-big-data,31-700375.php)
* [READ. Chefdentreprise.com : PME : les 5 étapes clés pour réussir un projet data![Flag: url](flags/flag-url.png)](https://www.chefdentreprise.com/)
* ROI
* PME
* [READ. BusinessDecisions : Data Science et IA : comment bien cadrer vos projets dentreprise ?![Flag: url](flags/flag-url.png)](https://fr.blog.businessdecision.com/data-science-ia-cadrer-projets-entreprise/)
* https://www.s-h.fr/la-data-analytics/
## Other topics
* Data visualisation
* DATA vs Business intelligence
* Big DATA
* Data Steward
* * *
/home/warbrain/src/Glenux/teaching-mgmt-data/slides/intro.html | 2020-04-08 |
[vym 2.6.11](http://www.insilmaril.de/vym)
---|---|---