D A S - - PowerPoint PPT Presentation

d a
SMART_READER_LITE
LIVE PREVIEW

D A S - - PowerPoint PPT Presentation

D A S 2018 Oliver Sturm @olivers oliver@oliversturm.com O S Training Director at DevExpress Consultant, trainer,


slide-1
SLIDE 1

D A

S 2018

Oliver Sturm • @olivers • oliver@oliversturm.com

slide-2
SLIDE 2

O S

Training Director at DevExpress Consultant, trainer, author, software architect and developer for over 25 years Microsoft C# MVP Contact: oliver@oliversturm.com

Developers and Architects 2 / 41

slide-3
SLIDE 3

A

Idea: Talk about technology Application building blocks Services Microservices Data persistence Security IoT User Interfaces Programming Languages Mobile Cloud Open Source

Developers and Architects 3 / 41

slide-4
SLIDE 4

A B B

What is an "application" made of? Terminology check: Client application Server application Web application Application system Enterprise application

Developers and Architects 4 / 41

slide-5
SLIDE 5

B B

Developers and Architects 5 / 41

slide-6
SLIDE 6

T: C A

Kann auf einem "Client" laufen Client im Gegensatz zum Server Kann im Client/Server-Zusammenhang verstanden sein Thin/Fat-Clients Einfaches Konzept aus architektureller Sicht Sehr einfaches Deployment einer einzelnen Installation Statische, planbare Anforderungen an Kommunikationsinfrastruktur

Developers and Architects 6 / 41

slide-7
SLIDE 7

T: S A

Laeuft wahrscheinlich auf einem Server Kann auch ein Client sein... Stellt Dienste bereit ...oder automatisierte Funktionen

Developers and Architects 7 / 41

slide-8
SLIDE 8

T: W A

Traditionell: Server-Anwendung, die ueber HTTP Daten verfuegbar macht Modern: Basiert auf HTML/JS Serverkomponente noch immer wichtig Gegenbeispiel: Wenn ein Spiel durch den AppStore auf mein iPhone gelangt und nie mit einem Server redet, ist es keine Web-Anwendung, auch wenn es in HTML/JS geschrieben ist

Developers and Architects 8 / 41

slide-9
SLIDE 9

T: A S

Die meisten "Anwendungen" haben heutzutage mehrere Komponenten und sind eigentlich Anwendungssysteme

Developers and Architects 9 / 41

slide-10
SLIDE 10

T: E A

Enterprise-Anwendungen skalieren fuer sehr grosse Organisationen und Datenvolumen Architekturell nicht unbedingt anders als andere Anwendungen

Developers and Architects 10 / 41

slide-11
SLIDE 11

S

Part of most architectural concepts SOA? Web Services "Real-time web?" SignalR? socket.io?

Developers and Architects 11 / 41

slide-12
SLIDE 12

S — SOA

Remember the four tenets Don Box got excited about? Boundaries are explicit Services are autonomous Services share schema and contract, not class Service compatibility is determined based on policy SOA resulted in a very formal understanding of service architecture, which is fortunately not shared by too many architects today.

Developers and Architects 12 / 41

slide-13
SLIDE 13

W S

ASMX — WSE — WCF — WSDL — SOAP — Microsoft's world of enormous complexity intended to solve a very simple problem RESTful services: the most complicated part is the name URLs and HTTP methods JSON, XML and possibly other data formats, using content negotiation

Developers and Architects 13 / 41

slide-14
SLIDE 14

S — R- W

WebSockets and their various ancestors Bi-directional communication Reasoning against real-time web techniques: In manchen Faellen braucht man "nur" AJAX Client definiert den Zeitpunkt Kann automatisch von Caching profitieren Bedenken Sie die "Kosten" Codestruktur aehnlich State Machine

Developers and Architects 14 / 41

slide-15
SLIDE 15

M

How big is a microservice? It depends. Do one "thing" well. What's a "thing"? It depends. Two-pizza team Throwawayable Focus on boundaries and business context, not on lines of code

Developers and Architects 15 / 41

slide-16
SLIDE 16

M — C

Direct communication between services Message Queues Service Bus (ESB)

Developers and Architects 16 / 41

slide-17
SLIDE 17

M — C

Manual composition? Painful. Docker containers docker-compose Cloud container services (ecs-cli, Azure Docker VM extension) Also support composition

Developers and Architects 17 / 41

slide-18
SLIDE 18

M — S

Function level composition: AWS Lambda, Azure Functions, Google Cloud Functions, ... Integration with cloud infrastructure for triggering and output generation Event driven, scaleable systems with minimal infrastructure management requirements Pay as you go Lock-in effect Debugging, Testing...

Developers and Architects 18 / 41

slide-19
SLIDE 19

M — R

Developers and Architects 19 / 41

slide-20
SLIDE 20

D P

Relational databases NoSQL options Key/value and column family stores Document Data analytics (e.g. MapReduce)

Developers and Architects 20 / 41

slide-21
SLIDE 21

D P — NSQL

Developers and Architects 21 / 41

slide-22
SLIDE 22

D P — NSQL

T

... to Nathan Hurst <nathan@developersforgood.org> for the

  • nly image in this presentation, used with permission.

http://blog.nahurst.com/visual-guide-to-nosql-systems

Developers and Architects 21 / 41

slide-23
SLIDE 23

R NSQL RDBMS:

Sicherstellen, dass von den Ideen der relationalen Datenhaltung profitiert wird NoSQL sehr vielfaeltig

Developers and Architects 22 / 41

slide-24
SLIDE 24

D P — ORM

Choice of frameworks Top Down or Bottom Up? DB Independence

Developers and Architects 23 / 41

slide-25
SLIDE 25

D P — CQRS

Command/Query Responsibility Segregation Separate query and command models Conflicts with ORM? Event Sourcing Eventual consistency

Developers and Architects 24 / 41

slide-26
SLIDE 26

R CQRS E S:

Developers and Architects 25 / 41

slide-27
SLIDE 27

U I

Platforms Native: WinForms, XAML HTML Electron Reasoning for native UI platforms:

Developers and Architects 26 / 41

slide-28
SLIDE 28

UI A P

MVVM Flux

Developers and Architects 27 / 41

slide-29
SLIDE 29

HTML UI — W R

Traditional web-server based rendering? Reasoning:

Developers and Architects 28 / 41

slide-30
SLIDE 30

P L

.NET: C#, VB.NET, F#, others? JavaScript: Native, TypeScript, CoffeeScript, LiveScript, others?

Developers and Architects 29 / 41

slide-31
SLIDE 31

M

Mobile support as a conceptual module Strategic platform?

Developers and Architects 30 / 41

slide-32
SLIDE 32

N M

iOS SDK Android SDK Windows Phone? Reasoning:

Developers and Architects 31 / 41

slide-33
SLIDE 33

M .NET

Xamarin Native Forms Reasoning:

Developers and Architects 32 / 41

slide-34
SLIDE 34

M — HTML/H

HTML (5), JavaScript, CSS PhoneGap/Cordova, CrossWalk, nw.js, ... Cross-platform Reasoning:

Developers and Architects 33 / 41

slide-35
SLIDE 35

C

Deployment option Related: Docker? Managed infrastructure

Developers and Architects 34 / 41

slide-36
SLIDE 36

C

Supplied services, vertical features Base platform functionality Dynamic scalability SLA Serverless computing

Developers and Architects 35 / 41

slide-37
SLIDE 37

C — L C

Locations Industry/governmental requirements

Developers and Architects 36 / 41

slide-38
SLIDE 38

C O

Azure, Amazon Web Services (PaaS, IaaS) PaaS: Google (also some IaaS now), Heroku, others SaaS: Office 365, Azure/AWS Websites, ...

Developers and Architects 37 / 41

slide-39
SLIDE 39

C R

For/against cloud: For/against specific platforms, IaaS, PaaS:

Developers and Architects 38 / 41

slide-40
SLIDE 40

O S

Everybody does it, right? Give and take... Reasoning:

Developers and Architects 39 / 41

slide-41
SLIDE 41

S

This presentation: https://oliversturm.github.io/developers-and-architects/basta-spring-2018 PDF download: https://oliversturm.github.io/developers-and-architects/basta-spring- 2018/slides.pdf

Developers and Architects 40 / 41

slide-42
SLIDE 42

T Y

Please feel free to contact me about the content anytime. Oliver Sturm • @olivers • oliver@oliversturm.com