Strategies 2017 Oliver Sturm • @olivers • oliver@oliversturm · 2020-02-19 · Application...
Transcript of Strategies 2017 Oliver Sturm • @olivers • oliver@oliversturm · 2020-02-19 · Application...
DevelopersandArchitectsStrategies2017
OliverSturm•@olivers•[email protected]
OliverSturmTrainingDirectoratDevExpress
Consultant,trainer,author,softwarearchitectanddeveloperforover25years
MicrosoftC#MVP
Contact:[email protected]
AgendaIdea:Talkabouttechnology
ApplicationbuildingblocksServicesMicroservicesDatapersistenceUserInterfacesProgrammingLanguagesMobileCloudOpenSource
ApplicationBuildingBlocksWhatisan“application”madeof?Terminologycheck:
ClientapplicationServerapplicationWebapplicationApplicationsystemEnterpriseapplication
BuildingBlocksFunktionaleModule(horizontalundvertikal)ArchitekturelleSchichtenArchitekturelleVerteilung
Terminology:ClientApplication
Terminology:ServerApplication
Terminology:WebApplication
Terminology:ApplicationSystem
Terminology:EnterpriseApplication
ServicesPartofmostarchitecturalconceptsSOA?WebServices“Real-timeweb?”SignalR?socket.io?
Services–SOARememberthefourtenetsDonBoxgotexcitedabout?
BoundariesareexplicitServicesareautonomousServicesshareschemaandcontract,notclassServicecompatibilityisdeterminedbasedonpolicy
SOAresultedinaveryformalunderstandingofservicearchitecture,whichisfortunatelynotsharedbytoomanyarchitectstoday.
WebServicesASMX–WSE–WCF–WSDL–SOAP–Microsoft’sworldofenormouscomplexityintendedtosolveaverysimpleproblemRESTfulservices:themostcomplicatedpartisthename
URLsandHTTPmethodsJSON,XMLandpossiblyotherdataformats,usingcontentnegotiation
Services–Real-timeWebWebSocketsandtheirvariousancestors
Libraries:SignalR,socket.io
Bi-directionalcommunication
Reasoningforreal-timewebtechniques:
Amnuetzlichsten,wennderServertatsaechlichvonsichausUpdatesschickenkann,mitzufaelligerFrequenz,aberausreichenderHaeufigkeitCode-Strukturbedenken,tendenziellkomplexeStateMachine
MicroservicesHowbigisamicroservice?Itdepends.
Doone“thing”well.What’sa"thing"?Itdepends.Two-pizzateamThrowawayableFocusonboundariesandbusinesscontext,notonlinesofcode
Microservices–CommunicationDirectcommunicationbetweenservices
AddressierungderDiensteentwederstatischkodiert(??!?),oderNachschlagesystem,oderDepedencyInjection
MessageQueuesServiceBus(ESB)
Microservices–CompositionFunctionlevel:AWSLambda,AzureFunctions–“Serverless”Computing
Integrationwithcloudinfrastructurefortriggeringandoutputgeneration
Dockercontainersdocker-composeCloudcontainerservices(ecs-cli,AzureDockerVMextension)
Alsosupportcomposition
Microservices–ReasoningSaubereArchitektur,einfachesTesten,strikteModularisierungGranulareSkalierbarkeitUnabhaengigkeitvonDiensten,UpdateseinzelnerDiensteimlaufendenBetriebOverhead
ProgrammierarbeitAusfuehrungsgeschwindigkeit
DataPersistenceRelationaldatabasesNoSQLoptions
Key/valueandcolumnfamilystoresDocumentDataanalytics(e.g.MapReduce)
DataPersistence–NoSQL
Theonlyimageinthispresentation,usedwithpermissionfromNathanHurst,[email protected]://blog.nahurst.com/visual-guide-to-nosql-systems
ReasoningNoSQLvsRDBMS:
DataPersistence–ORMChoiceofframeworksTopDownorBottomUp?DBIndependence
Reasoning:
ArbeitenmitDatenbankenohneSQL-KenntnisseMehrereDatenbankenvomselbenCodeansprechenCachingundanderezusaetzlicheFunktionalitaetContra:ArbeitimmeraufObjektebene,Server-Updatesoftschwierig
DataPersistence–CQRSCommand/QueryResponsibilitySegregation
SeparatequeryandcommandmodelsConflictswithORM?EventSourcing
Eventualconsistency
ReasoningCQRSandEventSourcing:
UserInterfacesPlatforms
Native:WinForms,XAMLHTML
Electron
ReasoningfornativeUIplatforms:
UIApplicationPatternsMVVMFlux
HTMLUI–WheretoRenderTraditionalweb-serverbasedrendering?
Reasoning:
ProgrammingLanguages.NET:C#,VB.NET,F#,others?JavaScript:Native,TypeScript,CoffeeScript,LiveScript,others?
MobileMobilesupportasaconceptualmoduleStrategicplatform?
“Native”MobileiOSSDKAndroidSDKWindowsPhone?
Reasoning:
Mobile.NETXamarin
NativeForms
Reasoning:
Mobile–HTML/HybridHTML(5),JavaScript,CSSPhoneGap/Cordova,CrossWalk,nw.js,…Cross-platform
Reasoning:
CloudDeploymentoption
Related:Docker?
Managedinfrastructure
CloudfunctionalitySuppliedservices,verticalfeaturesBaseplatformfunctionality
DynamicscalabilitySLA
Serverlesscomputing
Cloud–LegalConsiderationsLocationsIndustry/governmentalrequirements
CloudOptionsAzure,AmazonWebServices(PaaS,IaaS)PaaS:Google(alsosomeIaaSnow),Heroku,othersSaaS:Office365,Azure/AWSWebsites,…
CloudReasoningFor/againstcloud:
For/againstspecificplatforms,IaaS,PaaS:
OpenSourceEverybodydoesit,right?Giveandtake…
Reasoning:
SourcesThispresentation:
https://oliversturm.github.io/developers-and-architects/basta-spring-2017Deprettifiedcontentinpdfformat:https://oliversturm.github.io/developers-and-architects/basta-spring-2017/slidecontent.pdf
ThankYouPleasefeelfreetocontactmeaboutthecontentanytime.