D A
S 2018
Oliver Sturm • @olivers • oliver@oliversturm.com
D A S - - PowerPoint PPT Presentation
D A S 2018 Oliver Sturm @olivers oliver@oliversturm.com O S Training Director at DevExpress Consultant, trainer,
S 2018
Oliver Sturm • @olivers • oliver@oliversturm.com
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
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
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
B B
Developers and Architects 5 / 41
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
T: S A
Laeuft wahrscheinlich auf einem Server Kann auch ein Client sein... Stellt Dienste bereit ...oder automatisierte Funktionen
Developers and Architects 7 / 41
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
T: A S
Die meisten "Anwendungen" haben heutzutage mehrere Komponenten und sind eigentlich Anwendungssysteme
Developers and Architects 9 / 41
T: E A
Enterprise-Anwendungen skalieren fuer sehr grosse Organisationen und Datenvolumen Architekturell nicht unbedingt anders als andere Anwendungen
Developers and Architects 10 / 41
S
Part of most architectural concepts SOA? Web Services "Real-time web?" SignalR? socket.io?
Developers and Architects 11 / 41
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
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
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
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
M — C
Direct communication between services Message Queues Service Bus (ESB)
Developers and Architects 16 / 41
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
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
M — R
Developers and Architects 19 / 41
D P
Relational databases NoSQL options Key/value and column family stores Document Data analytics (e.g. MapReduce)
Developers and Architects 20 / 41
D P — NSQL
Developers and Architects 21 / 41
D P — NSQL
... to Nathan Hurst <nathan@developersforgood.org> for the
http://blog.nahurst.com/visual-guide-to-nosql-systems
Developers and Architects 21 / 41
R NSQL RDBMS:
Sicherstellen, dass von den Ideen der relationalen Datenhaltung profitiert wird NoSQL sehr vielfaeltig
Developers and Architects 22 / 41
D P — ORM
Choice of frameworks Top Down or Bottom Up? DB Independence
Developers and Architects 23 / 41
D P — CQRS
Command/Query Responsibility Segregation Separate query and command models Conflicts with ORM? Event Sourcing Eventual consistency
Developers and Architects 24 / 41
R CQRS E S:
Developers and Architects 25 / 41
U I
Platforms Native: WinForms, XAML HTML Electron Reasoning for native UI platforms:
Developers and Architects 26 / 41
UI A P
MVVM Flux
Developers and Architects 27 / 41
HTML UI — W R
Traditional web-server based rendering? Reasoning:
Developers and Architects 28 / 41
P L
.NET: C#, VB.NET, F#, others? JavaScript: Native, TypeScript, CoffeeScript, LiveScript, others?
Developers and Architects 29 / 41
M
Mobile support as a conceptual module Strategic platform?
Developers and Architects 30 / 41
N M
iOS SDK Android SDK Windows Phone? Reasoning:
Developers and Architects 31 / 41
M .NET
Xamarin Native Forms Reasoning:
Developers and Architects 32 / 41
M — HTML/H
HTML (5), JavaScript, CSS PhoneGap/Cordova, CrossWalk, nw.js, ... Cross-platform Reasoning:
Developers and Architects 33 / 41
C
Deployment option Related: Docker? Managed infrastructure
Developers and Architects 34 / 41
C
Supplied services, vertical features Base platform functionality Dynamic scalability SLA Serverless computing
Developers and Architects 35 / 41
C — L C
Locations Industry/governmental requirements
Developers and Architects 36 / 41
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
C R
For/against cloud: For/against specific platforms, IaaS, PaaS:
Developers and Architects 38 / 41
O S
Everybody does it, right? Give and take... Reasoning:
Developers and Architects 39 / 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
Please feel free to contact me about the content anytime. Oliver Sturm • @olivers • oliver@oliversturm.com