This repository has been archived by the owner on Oct 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Pragmatic-Architecture-Cyrille-Martraire.html
368 lines (345 loc) · 24.5 KB
/
Pragmatic-Architecture-Cyrille-Martraire.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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no, user-scalable=no">
<title>NewCrafts — Training - Architecture Modulaire et Pragmatique</title>
<meta name="description" content="NewCrafts — Training - Architecture Modulaire et Pragmatique">
<meta name="robots" content="noindex, nofollow">
<meta property="og:title" content="NewCrafts — Training - Architecture Modulaire et Pragmatique">
<meta property="og:site_name" content="NewCrafts">
<meta property="og:description" content="NewCrafts — Training">
<meta property="og:type" content="website">
<meta property="og:url" content="">
<meta property="og:image" content="">
<link rel="shortcut icon" href="https://ncrafts.io/assets/img/favicon.ico">
<link rel="icon" type="image/png" sizes="192x192" href="https://ncrafts.io/assets/img/logo.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://ncrafts.io/assets/img/logo.png">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,400i,600,700">
<link rel="stylesheet" id="css-main" href="assets/css/dashmix.min.css">
<link rel="stylesheet" id="css-theme" href="assets/css/themes/xinspire.min.css">
<link href="/assets/fonts/css/fontawesome.css" rel="stylesheet">
<link href="/assets/fonts/css/brands.css" rel="stylesheet">
<link href="/assets/fonts/css/solid.css" rel="stylesheet">
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-F8FJBR9R48"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-F8FJBR9R48');
</script>
</head>
<body>
<div id="page-loader" class="show bg-gd-aqua"></div>
<div id="page-container" class="enable-page-overlay side-scroll page-header-dark page-header-glass main-content-narrow">
<header id="page-header">
<div class="content-header">
<div>
<a href="#" class="logo">
<img src="/assets/media/img/logo.png" alt="NewCrafts" height="50" class="ml-1 d-none d-sm-inline-block">
</a>
<a href="https://training.ncrafts.io" class="btn btn-dual">
<i class="fa fa-arrow-left"></i> Retour à la page d'accueil
</a>
</div>
<div>
<a target="_blank" href="https://mastodon.social/@newcrafts" class="btn btn-dual">
<i class="fab fa-brands fa-mastodon"></i>
</a>
<a target="_blank" href="https://bsky.app/profile/newcrafts.bsky.social" class="btn btn-dual">
<i class="fa-solid fa-at"></i>
</a>
<a target="_blank" href="https://twitter.com/ncraftsconf" class="btn btn-dual">
<i class="fab fa-twitter"></i>
</a>
<a target="_blank" href="mailto:[email protected]" class="btn btn-dual">
<i class="far fa-envelope"></i>
Contact
</a>
</div>
</div>
</header>
<main id="main-container">
<div class="bg-image" style="background-image: url('assets/media/photos/paris.jpg');">
<div class="bg-gd-white-op-l">
<div class="content content-boxed content-full py-5">
<div class="row">
<div class="col-md-8 d-flex align-items-center py-3">
<div class="w-100 text-center text-md-left">
<h1 class="h1 mb-2 text-uppercase" style="color: white;">🇫🇷 Architecture Modulaire et Pragmatique</h1>
<h2 class="h4 font-size-lg text-uppercase font-w600" style="color: white;">Formation de 2 jours en français avec Cyrille Martraire</h2>
<a class="font-w600" style="color: white;">
<img src="assets/media/photos/cyrille-martraire.jpg" class="img-avatar img-avatar48">
Cyrille Martraire
</a>
</div>
</div>
<div class="col-md-4 d-flex align-items-center">
<a class="block block-rounded block-link-shadow block-transparent bg-white-75 text-center mb-0 mx-auto" href="https://ti.to/nc/nc24" target="_blank">
<div class="block-content block-content-full px-5 py-4">
<div class="font-size-h2 font-w600 text-black">
Réservez
</div>
<span class="btn btn-hero-success">
<i class="fa fa-arrow-right mr-1"></i> S'inscrire
</span>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="content content-boxed">
<div class="row">
<div class="col-md-8 order-md-0">
<div class="block block-rounded">
<!-- <div class="block-header block-header-default">
<i class="fas fa-podcast"></i>
<h2 class="block-title"> Speakers' podcast</h2>
</div>
<div class="block-content">
<div style="padding:100% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/807029568?h=0f586351aa&badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="position:absolute;top:0;left:0;width:100%;height:100%;" title="Marijn Huizendveld, May 24th"></iframe></div><script src="https://player.vimeo.com/api/player.js"></script>
</div> -->
<div class="block-header block-header-default">
<h2 class="block-title">Détails de la formation</h2>
</div>
<div class="block-content">
<h5>
Objectifs :
</h5>
<p>Les systèmes logiciels modernes, qu'ils soient ou non en micro-services, nécessitent toujours plus d'attention à leur architecture logicielle. Au-delà d'assurer un bon fonctionnement avec les performances et le coût attendu, l'architecture vise de plus en plus à répondre aux enjeux de modularité, d'autonomie des équipes, de modernisation d'existant, de cohérence à l'échelle. Face à ces enjeux, la somme des compétences nécessaires semble considérable, mais nous avons réussi à en proposer une synthèse compacte et structurée, quelque soit les technologies envisagées pour la mise en œuvre.
</p>
<p>
La formation Architecture Modulaire et Pragmatique couvre ainsi à la fois la théorie et les applications de l'architecture de systèmes qui peuvent être complexes, et ce dans une présentation unifiée. Le contenu est issu de notre expertise théorique ainsi que de nos nombreuses expériences d’accompagnement de nos clients sur des sujets spécifiquement d'architecture, en incluant les modes d’échec classiques que nous avons observés.
</p>
<p>
Cette formation présente la démarche et les raisonnements, introduit les concepts essentiels, dont certains empruntés à DDD, couvre les techniques et patterns clés d’architecture ainsi que les principales technologies nécessaires pour les mettre en œuvre. Et puisque cette mise en œuvre commence le plus souvent sur des systèmes existants, cette formation décrit aussi des trajectoires de migration et de cohabitation avec le legacy, ainsi que les enjeux humains associés.
</p>
<h5>Au cours de cette formation vous allez :</h5>
<ul>
<li>Apprendre à définir une architecture pragmatique, la documenter et la présenter</li>
<li>Acquérir une vision structurée d’un système logiciel dans ses différentes perspectives et ses différentes échelles </li>
<li>Anticiper les principales problématiques d’une architecture en évolution et en production </li>
<li>Identifier les couplages et les critères de modularité, pour la scalabilité et la disponibilité </li>
<li>Connaître les principaux patterns et styles architecturaux de l’état de l’art </li>
<li>Savoir concevoir un système à base de (micro)-services ou en monolithe modulaire </li>
<li>Définir une trajectoire de migration d’un existant vers une approche plus modulaire </li>
</ul>
<h5>Programme détaillé :</h5>
<ul>
<li>
Introduction à l’Architecture
<ul>
<li>
Les multiples définitions de l’architecture technique : une question de stabilité, grande échelle, savoir partagé, décisions irréversibles
</li>
<li>
Architecture comme moyen d’alignement entre les objectifs de l'entreprise et ses systèmes d’information
</li>
<li>
Les perspectives d'Architecture
</li>
<li>
Architecture vs. Architecte
</li>
<li>
Architecture Émergente
</li>
</ul>
</li>
<li>
Principes d'architectures modulaire
<ul>
<li>
Aperçu des Bounded Contexts et du Context Mapping
</li>
<li>
Comment modulariser pour favoriser l'autonomie locale
</li>
<li>
Microservices vs. Modular Monolith
</li>
<li>
L'importance des contrats rétrocompatibles entre modules
</li>
<li>
Federated vs. Centralized Data
</li>
<li>
Réaliser les conséquences en terme de duplication (DRY vs Coupling) et de cohérence à terme (Eventual Consistency)
</li>
</ul>
</li>
<li>
Overview de styles d’architecture
<ul>
<li>
Event-Driven Architecture </li>
<li>
Choregraphie vs. Orchestration, forces et faiblesses respectives
</li>
<li>
Microservices Architecture, Smart Endpoints & Dumb Pipes
</li>
<li>
Architecture Hexagonale
</li>
<li>
Entreprise Integration Patterns (EIP, Gregor Hohpe), Integration styles, PoEAA (Fowler)
</li>
<li>
Notions de design d'API
</li>
<li>
Architecture globale vs. locale, Umbrella diagrams
</li>
</ul>
</li>
<li>
Technical Architecture
<ul>
<li>
Asynchronous messaging, queues vs topics, Events vs. Commands
</li>
<li>
Data consistency: Golden Source, replication, autonomy vs. authority
</li>
<li>
Fault-tolerance, Load balancing
</li>
<li>
Stateless vs. statefull, consequences, stickiness & affinité, managing sessions
</li>
<li>
Configuration, Discovery
</li>
<li>
Logging & tracing guidelines, Monitoring: guidelines, tools
</li>
<li>
Integration in practice: reconciliation, data migration
</li>
<li>
Notions de Test-Driven Architecture, métriques, static analysis
</li>
<li>
L’importance de la communication en architecture, techniques et astuces
</li>
<li>
Notions de Living Documentation appliquée à l’architecture
</li>
</ul>
</li>
<li>
Legacy migration patterns
<ul>
<li>
Principes de Legacy Cohabitation et non de Big Bang
</li>
<li>
Strangler Application Pattern
</li>
<li>
Legacy Read Model, Macroservice, Change Data Capture patterns appliqués au legacy
</li>
<li>
Principes de raisonnement de ROI sur les décisions de modernisation
</li>
<li>
Autres patterns de Legacy
</li>
</ul>
</li>
</ul>
<h5>Pré-requis :</h5>
<ul>
<li>
Connaissance de différents langages de programmation avec des bonnes connaissances en design objet.
</li>
<li>
Connaissance de différents langages de programmation avec des bonnes connaissances en design objet.
</li>
<li>
Avoir déjà une expérience dans le développement de logiciel.
</li>
</ul>
<h5>Public :</h5>
<p>Cette formation s’adresse aux développeurs expérimentés, team leads, responsables d’architectes, mais aussi aux architectes confirmés ou en devenir.</p>
</div>
</div>
<div class="block block-rounded">
<div class="block-header block-header-default">
<h2 class="block-title">About Cyrille MARTRAIRE</h2>
</div>
<div class="block-content">
<p>
Cyrille Martraire (@cyriux) is CTO and partner at Arolla (@ArollaFr), the founder of the Paris Software Craftsmanship community and a regular speaker at international conferences.
</p>
<p>
Cyrille has experience in startups, software vendors and banks since 1999, but he still calls himself a developer.
</p>
<p>
He's passionate about design in every aspect: TDD, BDD and in particular DDD.
</p>
<p>
Cyrille also has an extensive knowledge of capital market finance, and he's the author of the book Living Documentation published by Addison-Wesley Professional.
</p>
</div>
</div>
</div>
<div class="col-md-4 order-md-1">
<div class="block block-rounded">
<div class="block-header block-header-default" style="background-size: cover; height: 30vh;">
<img class="img-fluid" src="/assets/media/img/Arolla-bouloi.png" style="background-size: cover; height: 30vh; text-align: center;">
</div>
<div class="block-content">
<ul class="fa-ul list-icons">
<li>
<span class="fa-li text-primary">
<i class="fa fa-map-marker-alt"></i>
</span>
<div class="font-w600">Lieu</div>
<div class="text-muted">
<a target="_blank" href="https://maps.app.goo.gl/qpzuowKdZ5tmH2oV6">
Arolla<br>
21 Rue du Bouloi, 75001 Paris<br><br>
</a>
</div>
</li>
<li>
<span class="fa-li text-primary">
<i class="fa fa-clock"></i>
</span>
<div class="font-w600">Date</div>
<div class="text-muted">
14 et 15 mai 2024<br>
de 9h à 17h (CEST)
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</main>
<footer id="page-footer" class="bg-body-light">
<div class="content py-0">
<div class="row font-size-sm">
<div class="col-sm-6 order-sm-1 text-center text-sm-left">
<a class="font-w600" href="https://ncrafts.io/">NewCrafts</a> © <span data-toggle="year-copy">2014</span>
</div>
<div class="col-sm-6 order-sm-2 mb-1 mb-sm-0 text-center text-sm-right">
<a class="font-w600" href="mailto:[email protected]">Contact</a>
| <a class="font-w600" href="https://ncrafts.io/#coc" target="_blank">Code of conduct</a>
</div>
</div>
</div>
</footer>
</div>
<script src="assets/js/dashmix.core.min.js"></script>
<script src="assets/js/dashmix.app.min.js"></script>
</body>
</html>