215-214
Administrivia
• Homework6checkpoint– MondayDec4th
• FinalExamReview:Dec13th,2-4pmWean5409• FinalExam:Dec15th,5:30-8:30pmWean7500
915-214
Monolith
• Whathappenswhenweneed100servers?
• Whatifwedon’tuseallmodulesequally?
• Howcanweupdateindividualmodels?
• DoallmodulesneedtousethesameDB,language,runtime,etc?
1115-214
Microservices shouldbe:
• Modelledaroundbusinessdomain• Cultureofautomation• Hideimplementationdetails• Decentralizedgovernance• Deployindependently• Designforfailure• Highlyobservable
1215-214
Microservice prerequisites
• RapidProvisioning• BasicMonitoring• RapidApplicationDeployment• Devops Culture
1515-214
Impactondevelopmentpractices
• Amazontransitionedto“two-pizza”teams• “FullStack”developers• ”Devops”asaprereq• Livetestingandrollback• Migratingfrom“monolithtomicroservices”ispopular,but
comesatacost
1615-214
Microservices benefits
• StrongModuleBoundaries• IndependentDeployment• TechnologyDiversity
1915-214
DiscussionofMicroservices
• Aretheyreally“new”?• Domicroservices solveproblems,orpushthemdowntheline?• Whataretheimpactsoftheaddedflexibility?• GoodArchitecturedoesn’tfixpoorlowleveldesignproblems• Beware“cargocult”• “Ifyoucan’tbuildawell-structuredmonolith,whatmakesyou
thinkmicroservices istheanswer?” – SimonBrown• LeadstomoreAPIdesigndecisions
2015-214
Microservice prerequisites
• RapidProvisioning• BasicMonitoring• RapidApplicationDeployment• Devops Culture
2215-214
WhyDevOps?
• DevelopersandOperationsdon’thavethesamegoals– Devs wanttopushnewfeatures– Opswantstokeepthesystemavailable(stable,tested,etc.)s
• PoorcommunicationbetweenDevandOps• Limitedcapacityofoperationsstaff• Wanttoreducetimetomarketfornewfeatures• Reduce“Throwitoverthefence”syndrome
2315-214
DevOpsDefinition
• “DevOpsisasetofpracticesintendedtoreducethetimebetweencommittingachangetoasystemandthechangebeingplacedintonormalproduction,whileensuringhighquality.”
2415-214
WhatareimplicationsofDevOps?
• Qualityofthecodemustbehigh– Testing
• Qualityofthebuild&deliverymechanismmustbehigh– Automation&moretesting
• Timeissplit:– Fromcommittodeploymenttoproduction– Fromdeploymenttoacceptanceintonormalproduction
• Goal-orienteddefinition– Mayuseagilemethods,continuousdeployment(CD),etc.– Likelytousetools
• Achievingitstartsbeforecommitting
2715-214
DevOpsToolchain
• Code— codedevelopmentandreview, sourcecodemanagement tools,codemerging
• Build— continuousintegration tools,buildstatus• Test— continuoustesting toolsthatprovidefeedbackon
businessrisks• Package— artifactrepository,applicationpre-deployment
staging
2815-214
DevOpsToolchaincontinued
• Release— changemanagement,releaseapprovals, releaseautomation
• Configure— infrastructureconfigurationandmanagement, InfrastructureasCode tools
• Monitor— applicationsperformancemonitoring,end–userexperience
3015-214
DevOpsToolchain- Code
• Codedevelopmentandreview• Sourcecodemanagement tools• Codemerging
MoreonCodeReviewin17-313