D��������� ��� A��������� 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���������� — N�SQL Developers and Architects 21 / 41
D��� P���������� — N�SQL T����� ... to Nathan Hurst <nathan@developersforgood.org> for the only image in this presentation, used with permission. http://blog.nahurst.com/visual-guide-to-nosql-systems Developers and Architects 21 / 41
R�������� N�SQL �� 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
T���� Y�� Please feel free to contact me about the content anytime. Oliver Sturm • @olivers • oliver@oliversturm.com
Recommend
More recommend