diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..59a5480 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +presentations.devpro.fr diff --git a/README.md b/README.md index 092f9fa..0707bcb 100644 --- a/README.md +++ b/README.md @@ -3,25 +3,6 @@ [![CI](https://github.com/devpro/presentations/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/devpro/presentations/actions/workflows/ci.yml) [![Deploy](https://github.com/devpro/presentations/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/devpro/presentations/actions/workflows/deploy.yml) -Source or links to presentations made by Bertrand Thomas. +Source code of [presentations.devpro.fr](http://presentations.devpro.fr/). You are welcome to [contribute](CONTRIBUTING.md). - -## Content - -### Events - -Event | Session | Slides -------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------- -DevOpsDays Geneva 2023 | [🇫🇷 Transformation numérique et DevOps à l'heure des conteneurs](https://devopsdays.org/events/2023-geneva/program/bertrand-thomas) | [PDF](https://public.devpro.fr/slides/devopsdays_geneva_2023_bertrand_thomas.pdf) -Meetup DevOps Geneva Feb 2024 | [🇫🇷 La sécurité des conteneurs rendue simple grâce à l'open source](https://www.meetup.com/fr-FR/devops-geneve/events/298652964/) | [HTML](https://devpro.github.io/presentations/meetup-secu-conteneur-202402/) - -### Workshops - -Title | Host --------------------------------------------------------------------------|----------- -[Angular Dojo](https://slides.com/devprofr/dojo-angular) | Slides.com -[Azure DevOps 101](https://slides.com/devprofr/azure-devops-101) | Slides.com -[.NET Core 101](https://slides.com/devprofr/net-core-101) | Slides.com -[MongoDB News 2009 Q1](https://slides.com/devprofr/mongodb-news-2019-q1) | Slides.com -[Puppet Dojo](https://slides.com/devprofr/dojo-puppet) | Slides.com diff --git a/docs/index.md b/docs/index.md index 32f78aa..e69d464 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,23 +4,23 @@ You'll find here the content of all public presentations made by [DevPro](https: ## Events -* [Meetup DevOps Geneva Feb 2024](https://www.meetup.com/fr-FR/devops-geneve/events/298652964/): [🇫🇷 Sécurité des conteneurs](https://devpro.github.io/presentations/meetup-secu-conteneur-202402/) +* [Meetup DevOps Geneva Feb 2024](https://www.meetup.com/fr-FR/devops-geneve/events/298652964/): [🇫🇷 Sécurité des conteneurs](https://presentations.devpro.fr/meetup-secu-conteneur-202402/) * [DevOpsDays Geneva 2023](https://devopsdays.org/events/2023-geneva/program/bertrand-thomas): [🇫🇷 Transformation numérique et DevOps à l'heure des conteneurs](https://public.devpro.fr/slides/devopsdays_geneva_2023_bertrand_thomas.pdf) ## Recent -* [Ansible](https://devpro.github.io/presentations/ansible) -* [Automated testing](https://devpro.github.io/presentations/automated-testing) -* [Code quality](https://devpro.github.io/presentations/code-quality) -* [Git](https://devpro.github.io/presentations/git) -* [GitOps 101](https://devpro.github.io/presentations/gitops-101) -* [Infrastructure automation](https://devpro.github.io/presentations/infrastructure-automation) -* [Observability 101](https://devpro.github.io/presentations/observability-101) -* [Presentation-as-code](https://devpro.github.io/presentations/presentation-as-code) +* [Ansible](https://presentations.devpro.fr/ansible) +* [Automated testing](https://presentations.devpro.fr/automated-testing) +* [Code quality](https://presentations.devpro.fr/code-quality) +* [Git](https://presentations.devpro.fr/git) +* [GitOps 101](https://presentations.devpro.fr/gitops-101) +* [Infrastructure automation](https://presentations.devpro.fr/infrastructure-automation) +* [Observability 101](https://presentations.devpro.fr/observability-101) +* [Presentation-as-code](https://presentations.devpro.fr/presentation-as-code) ## Draft -* [🇫🇷 DevOps 101](https://devpro.github.io/presentations/devops-101-fr) +* [🇫🇷 DevOps 101](https://presentations.devpro.fr/devops-101-fr) ## Archive diff --git a/marp/src/ansible.md b/marp/src/ansible.md index 916ef20..2ea0f20 100644 --- a/marp/src/ansible.md +++ b/marp/src/ansible.md @@ -84,7 +84,7 @@ README.md ## Continuous integration pipeline (CI) -* CI **badge** must be present at the top of the `README.md` file: [![GitLab Pipeline Status](https://gitlab.com/rabbids-incubator/infra-automation-best-practices/badges/main/pipeline.svg)](https://gitlab.com/rabbids-incubator/infra-automation-best-practices/-/pipelines) +* CI **badge** must be present at the top of the `README.md` file * CI must run on every commit of **main branch** diff --git a/marp/src/infrastructure-automation.md b/marp/src/infrastructure-automation.md index 5d66f64..1ca4f9b 100644 --- a/marp/src/infrastructure-automation.md +++ b/marp/src/infrastructure-automation.md @@ -120,8 +120,4 @@ Some _italic_ and **bold** element. ## That's all folks -We'll be glad to have your feedback and support: - -→ [devpro.github.io/presentations/infrastructure-automation](https://devpro.github.io/presentations/infrastructure-automation) - Happy updates :smile: diff --git a/marp/src/observability-101.md b/marp/src/observability-101.md index 73c0df3..80232ba 100644 --- a/marp/src/observability-101.md +++ b/marp/src/observability-101.md @@ -160,7 +160,7 @@ Aka "The Three Pillars of Observability" ## Demonstration -* Clone [rabbids-incubator/servicenow-dotnet-client](https://github.com/rabbids-incubator/servicenow-dotnet-client) +* Clone [devpro/servicenow-dotnet-client](https://github.com/devpro/servicenow-dotnet-client) * Start containers with `docker-compose up` * Configure and run the sample web API with `dotnet run --project src samples/WebApiSample` * Make REST API calls from [Swagger page](https://localhost:7079/swagger/index.html) diff --git a/slidev/src/automated-testing.md b/slidev/src/automated-testing.md index 98b8302..6887fef 100644 --- a/slidev/src/automated-testing.md +++ b/slidev/src/automated-testing.md @@ -1,115 +1,115 @@ ---- -theme: seriph -highlighter: shiki -lineNumbers: false -css: unocss -transition: slide-left -title: Automated Testing ---- - -# Automated Testing - -Want to know about one of the most important best practices in software development? - ---- - -# Objectives - -What can be achieved with automated testing? - -- 🎯 **Focus** on the real added value -- 🚀 **Reduce** the Time To Market -- 🛎 **Guarantee** the quality of service -- 💪 **Overcome** IT complexity -- 👷 **Enable** technical improvement reworks - ---- - -# Pyramid of Tests - -Foundation of any testing strategy - -pyramid of tests - ---- - -# Challenges - -What is difficult to have with test automation? - -- ⛑ **Maintenable** tests (over time) -- 🏬 **Reproducible** data set -- ✍ **Open** solution with contributions from non-technical people -- 🧪 **Straightforward** test plan -- 📖 **Comprehensive** test results -- 🐛 **Investigable** errors - ---- - -# Lessons learned - -Known recipes for success - -- Tests are executed in a neutral environment (automation pipelines) -- Development and testing of any change are done at the same time -- Specifications are accessible and explicit -- Best practices and patterns are followed while engineering the solution -- Any failure in production is a perfect candidate for test automation -- Focus is made on the most used and critical usecases - ---- - -# PageObject Pattern - -Split the code between the application features and the UI components - -Page Objects, HTML Wrapper - ---- - -# BDD (Behavior driven development) - -An Agile software development process that encourages collaboration - -Automated Tests, Executable Specifications, Living Documentation - ---- - -# Los 3 amigos - -Business, Testing, Development - -Los 3 Amigos - ---- - -# Gherkin language - -Describe any process in simple words - -```gherkin -Feature: Guess the word - - # The first example has two steps - Scenario: Maker starts a game - When the Maker starts a game - Then the Maker waits for a Breaker to join - - # The second example has three steps - Scenario: Breaker joins a game - Given the Maker has started a game with the word "silky" - When the Breaker joins the Maker's game - Then the Breaker must guess a word with 5 characters -``` - ---- - -# Open-source tooling - -Most used projects - -- [**Cucumber**](https://cucumber.io/) ([GitHub org](https://github.com/cucumber)) -- [**Cypress**](https://www.cypress.io/) ([code](https://github.com/cypress-io/cypress) _★ 42.6k_) -- [**Jest**](https://jestjs.io/) ([code](https://github.com/facebook/jest) _★ 41.4k_) -- [**Playwright**](https://playwright.dev/) ([code](https://github.com/microsoft/playwright) _★ 47.7k_) -- [**Selenium**](https://www.selenium.dev/) ([code](https://github.com/SeleniumHQ/selenium) _★ 25.8k_) +--- +theme: seriph +highlighter: shiki +lineNumbers: false +css: unocss +transition: slide-left +title: Automated Testing +--- + +# Automated Testing + +Want to know about one of the most important best practices in software development? + +--- + +# Objectives + +What can be achieved with automated testing? + +- 🎯 **Focus** on the real added value +- 🚀 **Reduce** the Time To Market +- 🛎 **Guarantee** the quality of service +- 💪 **Overcome** IT complexity +- 👷 **Enable** technical improvement reworks + +--- + +# Pyramid of Tests + +Foundation of any testing strategy + +pyramid of tests + +--- + +# Challenges + +What is difficult to have with test automation? + +- ⛑ **Maintenable** tests (over time) +- 🏬 **Reproducible** data set +- ✍ **Open** solution with contributions from non-technical people +- 🧪 **Straightforward** test plan +- 📖 **Comprehensive** test results +- 🐛 **Investigable** errors + +--- + +# Lessons learned + +Known recipes for success + +- Tests are executed in a neutral environment (automation pipelines) +- Development and testing of any change are done at the same time +- Specifications are accessible and explicit +- Best practices and patterns are followed while engineering the solution +- Any failure in production is a perfect candidate for test automation +- Focus is made on the most used and critical usecases + +--- + +# PageObject Pattern + +Split the code between the application features and the UI components + +Page Objects, HTML Wrapper + +--- + +# BDD (Behavior driven development) + +An Agile software development process that encourages collaboration + +Automated Tests, Executable Specifications, Living Documentation + +--- + +# Los 3 amigos + +Business, Testing, Development + +Los 3 Amigos + +--- + +# Gherkin language + +Describe any process in simple words + +```gherkin +Feature: Guess the word + + # The first example has two steps + Scenario: Maker starts a game + When the Maker starts a game + Then the Maker waits for a Breaker to join + + # The second example has three steps + Scenario: Breaker joins a game + Given the Maker has started a game with the word "silky" + When the Breaker joins the Maker's game + Then the Breaker must guess a word with 5 characters +``` + +--- + +# Open-source tooling + +Most used projects + +- [**Cucumber**](https://cucumber.io/) ([GitHub org](https://github.com/cucumber)) +- [**Cypress**](https://www.cypress.io/) ([code](https://github.com/cypress-io/cypress) _★ 42.6k_) +- [**Jest**](https://jestjs.io/) ([code](https://github.com/facebook/jest) _★ 41.4k_) +- [**Playwright**](https://playwright.dev/) ([code](https://github.com/microsoft/playwright) _★ 47.7k_) +- [**Selenium**](https://www.selenium.dev/) ([code](https://github.com/SeleniumHQ/selenium) _★ 25.8k_) diff --git a/slidev/src/meetup-secu-conteneur-202402.md b/slidev/src/meetup-secu-conteneur-202402.md index e9edd65..c1c7d7d 100644 --- a/slidev/src/meetup-secu-conteneur-202402.md +++ b/slidev/src/meetup-secu-conteneur-202402.md @@ -17,7 +17,7 @@ Meetup du 8 février 2024 --- layout: image-right -image: 'https://devpro.github.io/presentations/assets/images/tom-cruise-m-i-2-climbing.jpg' +image: 'https://presentations.devpro.fr/assets/images/tom-cruise-m-i-2-climbing.jpg' --- # Objectifs @@ -31,7 +31,7 @@ image: 'https://devpro.github.io/presentations/assets/images/tom-cruise-m-i-2-cl --- layout: intro-image-right -image: 'https://devpro.github.io/presentations/assets/images/tom-cruise-m-i-fallout-jump-buildings.jpg' +image: 'https://presentations.devpro.fr/assets/images/tom-cruise-m-i-fallout-jump-buildings.jpg' --- # Partie I - Cycle de vie d'un container @@ -64,7 +64,7 @@ EXPOSE 3000 #   -Container build +Container build --- @@ -72,7 +72,7 @@ EXPOSE 3000 -Container build +Container build --- @@ -80,7 +80,7 @@ EXPOSE 3000 -Container & datacenter +Container & datacenter --- @@ -88,7 +88,7 @@ EXPOSE 3000 -Kubernetes architecture +Kubernetes architecture --- @@ -96,11 +96,11 @@ EXPOSE 3000 -Tom Cruise in a Vault for M-I +Tom Cruise in a Vault for M-I --- layout: intro-image-right -image: 'https://devpro.github.io/presentations/assets/images/tom-cruise-m-i-dead_reckoning_hill.jpeg' +image: 'https://presentations.devpro.fr/assets/images/tom-cruise-m-i-dead_reckoning_hill.jpeg' --- # Partie II - Stratégie de sécurisation @@ -254,7 +254,7 @@ layout: cover # Trop d'informations ? -Eviter la deferlente +Eviter la deferlente --- layout: two-cols @@ -351,7 +351,7 @@ layout: two-cols --- layout: intro-image-right -image: 'https://devpro.github.io/presentations/assets/images/tom-cruise-m-i-fallout-jump-plane.jpg' +image: 'https://presentations.devpro.fr/assets/images/tom-cruise-m-i-fallout-jump-plane.jpg' --- # Partie III - Démonstrations diff --git a/taskfile.yml b/taskfile.yml index 30d4894..f48860e 100644 --- a/taskfile.yml +++ b/taskfile.yml @@ -39,10 +39,11 @@ tasks: - mkdir -p $DEST_FOLDER/assets/images - cp -r assets/images/*.* $DEST_FOLDER/assets/images/ # - npm run build src/index.md -- --base presentations -o ../$DEST_FOLDER + # npm run build "$SRC_FOLDER/$filename.md" -- --base "presentations/$filename" -o "../$DEST_FOLDER/$filename" - | for file in "$SRC_FOLDER"/*.md; do filename=$(basename "$file" .md) - npm run build "$SRC_FOLDER/$filename.md" -- --base "presentations/$filename" -o "../$DEST_FOLDER/$filename" + npm run build "$SRC_FOLDER/$filename.md" -- --base "$filename" -o "../$DEST_FOLDER/$filename" done nginx:start: