Upload
others
View
24
Download
2
Embed Size (px)
Citation preview
JE ONTWIKKELSTRAATOPZETTEN INDE CLOUDWELKE KEUZESZIJN ERTE MAKEN?
WHITEPAPER
Inhoudsopgave10
07
Hoe ziet de cloudomgeving eruit?
Wat is je uitgangspositie?
04 Introductie
07 Wat is je uitgangspositie?
08 Cloud-services op een rijtje
09 SaaS: Software as a Service
09 PaaS: Platform as a Service
09 IaaS: Infrastructure as a Service
10 Hoe ziet de cloudomgeving eruit?
10 Office365endeOTAP-ontwikkelstraat
12 MicrosoftAzureende
OTAP-ontwikkelstraat
14 Azureresourcegroups
17 Naamgeving
17 Office365
21 Azure
24 Processen
26 Conclusie
27 OctavievanHaaften,CloudArchitect
27 Over Mavention
28 Bijlage:AzureResource
Manager-template
30 OTAP-omgevingalsparameter
31 ARM-templateuitrollen
17Naamgeving
2 3
Introductie
IndezewhitepaperbekijkenweopconceptueelniveauhoeeenontwikkelstraatofOTAP-straaterindeclouduitkanzienenwaarjerekeningmeekanofmoethoudenalsje
eenOTAP-straatgaatinrichten. Wezoomennietinopspecifiekeoplossingenengaanooknietinophoecomplexeenoplossingwelofnietis.WekijkennietnaarspecifiekewebpartsofhoejeeengigantischewebsiteinAzurebouwtmetalletoetersenbellen,afhankelijkhedenenintegratiesmetCRM-systemenofPowerBI. WelkijkenwenaarwatAzuretebiedenheeft,watOffice365tebiedenheeft,waarwelofjuistgeenflexibiliteitzit,hoejeomkuntgaanmetnaamgevingenwelkeprocessenjewellichtaanmoetpassen. Eéndingiszeker:allesdraaitomkeuzes.
Octavie van Haaften Cloud Architect
OTAP staat voor Ontwikkeling, Test, Acceptatie en Productie en wordt ook wel een ontwikkelstraat genoemd. Deze woorden geven de fases aan die in software ontwikkeling/implementaties doorlopen moeten worden. OTAP is afgeleid van de Engelse DTAP: Development, Testing, Acceptance and Production
4 5
WAT IS JE UITGANGSPOSITIE?
Van scratch
Het is natuurlijk goedmogelijk dat je nog geenontwikkelstraat hebt.
Dat maakt het leven een beetjegemakkelijker; je begint met eenschone lei. Dat maakt de keuzesnietminder, maar je kunt je straathelemaalinrichtenzoalsjedatwilt,zonder rekeningtemoetenhoudenmetwateralis.
Hebjeerweleen,danmoetjegoedgaan kijken welke onderdelen nuniet meer opgaan. De grootsteuitdagingzitdaninOffice365.
Van lokaal naar SharePoint Online
Stel: jebentnoghelemaalnietbezigmet de cloud. Je hebtbijvoorbeeld je SharePoint-
servers lokaal staan en je hebteen SharePoint-omgeving voortest en een SharePoint-omgevingvoor productie.Nu stap je over opSharePoint Online. Dan sta je vooreen uitdaging. Kies je ervoor omvoor elke SharePoint-omgevingdie je lokaalhebtstaaneenaparteOffice-365-omgeving te kopen?Danhebjetweetenantsnodig:eenvoor productie en een voor test.Of kies je voor één tenant waar
je test- en productieomgeving in terechtmoetenkunnen?DanmoetjedusnadenkenoverzakenalsdeURL’s van je SharePoint-sites, overhoe jemet Search omgaat, hoe jemet Managed Metadata omgaat, al die onderdelen binnen SharePointOnlinewaarjeermaaréénvanhebt,die je niet kunt opsplitsen. Daarkomenwijlaterinditwhitepaperopterug.
Veel maatwerkEen ander scenario.
Je hebt SharePoint lokaal opeen server staan en je kuntnietnaarOffice365migreren
omdat je veel maatwerk hebtdat niet compatibel is met Office365. De enige optie die overblijftwanneerjeookjemaatwerknaardecloud wilt migreren, is een virtuele serverinAzuretemakenwaaropjeSharePointinstalleert.Hierinkunjejemaatwerkookinstalleren.
6 7
CLOUD-SERVICES OP EEN RIJTJE
Alsjeoverstaptnaardecloud,moetereenkeuzegemaaktwordenvoorbepaaldecloud-services.DeverschillentussenIaaS,PaaSenSaaSnogevenkortopeenrijtje.
PaaS: Platform as a ServicePaaS is eigenlijk SaaS, zonder het stukjesoftware. Je hebt bijvoorbeeld eenwebserver maar moet je website metfunctionaliteitzelfinstalleren.Datbovenstestukje, die extra software, die Microsoftal voor je heeft klaargezet dat moet jehier zelf doen.Of je hebtbijvoorbeeldeendatabase. Azure heeft voor jou de SQLserver–hetplatform–alklaarstaanmaardedatabase–defunctionaliteit–nogniet.Daar moet je zelf nog mee aan de slag.
SaaS: Software as a ServiceDit is in wezen wat Office 365 is. Desoftware is al geïnstalleerd voor je en je gebruiktde functionaliteitendieerzijn.Zogebruik je bijvoorbeeld SharePoint Onlinemet Search, of je gebruikt Outlook in decloud omdat Exchange geïnstalleerd is.
IaaS: Infrastructure as a ServiceOnder infrastructuur verstaan we in dit geval devirtueleserver,hetinregelenvandevirtuelenetwerkcomponenten,zoalsdefirewall,eengateway: je netwerkconfiguratie. Bij IaaSwordendeSharePoint-serversdievoorheenin rekken stonden te zoemen virtueelgemaakt. Je installeert SharePoint op eenWindows-server en daar kun je je eigenmaatwerk op installeren. Je serverruimtestaatnuindecloud,enjehebtnogsteedshet beheer over het besturingssysteem,de database, de applicaties en de data.
8 9
HOE ZIET DE CLOUDOMGEVING ERUIT?
Office 365 en de OTAP-ontwikkelstraat
AlsjemetOffice365werkten jewiltietsgaantesten,benjealsnelgeneigdeen tweede omgeving te willen
hebben.Zocreëerjeeenproductieomgevingeneentestomgeving.Vroegerinstalleerdenwe een extra server om die testomgevingoptezetten.Maardatkannietindecloud.Jehebt eenOffice-365-omgevingmet allefunctionaliteiten en services die Microsoft jou biedt en dat is je productieomgeving.Dansta je vooreenkeuze.Ga jenogzo’n
Office-365-omgeving erbij kopen en diebenoemenalsjetestomgeving?DanhebjetweeOffice-365-tenants.Jekunterookvoorkiezenomdieenetenant,diejealhebt,ookintezettenalstestomgeving.Datbetekentdat je zowel de productieomgeving als de testomgevinginéénomgevinghebt.Datismogelijk,maar daarmoet jewel iets voorinrichten.Jemoeterafsprakenovermakenenjeervanbewustzijnwaarheteventueelkanbijten.
Je kunt ook een stap verdergaan en voorelke omgeving in je ontwikkelstraat eenaparte Office-365-omgeving inrichten. Eénvoorontwikkeling,éénvoorhettesten,éénvoor de acceptatieomgeving en één voor productie.
Datscheeltafsprakenenwerkoptechnischvlak, maar op beheervlak krijg je er extrawerk bij. Immers, je hebt vier omgevingentebeheren.Datkanenerzijdsvoorjeprocesen inrichting wat makkelijker zijn, maaranderzijdsgeefthetjewelmeerwerk.Ookdat is weer een keuze. In het kader vanautomatisering kan het ook prettig zijn:hoemeerjekuntautomatiseren,hoebeter.Maarhethebbenvanviertenantsbetekentookmeerkosten.Misschiennieteensperse in het beheer, maar in de aanschaf: je
kooptallemaalnieuweMicrosoft-services.
Wereldwijde enterprises gaan vaak nogverder. Zij moeten rekening houden metbijvoorbeeld juridische aspecten in eenregio. Veel landen hebben inmiddels huneigen wet- en regelgeving omtrent de cloud. Zo geldt in Duitsland bijvoorbeelddat alle data binnen de Duitse grenzenmoeten blijven. Duitsland heeft, binnenzo’n onderneming, dus een eigen cloud-omgeving.DatgeldtookvoorbijvoorbeeldAustralië,CanadaenChina.Alszo’nbedrijfinaldielandenopereert,kandatbetekenendat je voor je productieomgevingook nogeens aparte Office-365-tenants moethebben.Zokanhetvoorkomendat jemetbijvoorbeeld vijf productieomgevingen temakenhebt.
Voorwehetgaanhebbenoverdeontwikkelstraatzelf,doenweeersteenstapjeterugenkijkennaardecloudomgevingzelf.AlswehetoverdeMicrosoftcloudhebben,hebbenweenerzijdsOffice365enanderzijdsAzure.Latenweeveninzoomenop
dezetweeelementen.
10 11
Microsoft Azure en de OTAP- ontwikkelstraat
MetMicrosoftAzurebeschikjeovernog veel meer functionaliteiten en services dan met alleen Office
365. Zo kun je bijvoorbeeld die server dievroegerindatserverhokstondnuinAzurezetten.Zocreëer jeeenvirtueleserver.Jekunt ook je databases of je eigen externeharde schijven in Azure zetten. Zo zijn ertalloze voorbeelden van wat je in Azurekunt doen om je toekomstige oplossingneer tezetten.Al ishetmaareensimpelewebsitediejemaakt;ookdiekunjeinAzurezetten.SecgezienbiedtAzurealleswatjebuiten Office 365 om kunt realiseren aanfunctionaliteiten.Ziehetalseenverlengstuk.Technisch gezien heeft Microsoft Office365 gepositioneerd ‘bovenop’ Azure, hetis afhankelijk van Azure. Als je die tweewerelden samentrekt, kun je dus tot eenoplossing komen, bijvoorbeeld een Azurewebsite,diegegevensuitOffice365toont.
4.2 Microsoft Azure en de OTAP- ontwikkelstraatStel: je hebt een website gemaakt en dieheb je gelanceerd op je Azure-omgeving.DiewebsitehaaltinformatieopuitjeOffice-365-omgeving.Jekuntdesitebeschikbaarstellen voor bijvoorbeeld je klanten, jecontactpersonen, leveranciers of andere mensenwaar jemee samenwerkt. Jewiltde site ongetwijfeld in de ontwikkelfasetesten en de test voorleggen aan een acceptatiegebruikersgroep voordat je desite in productie neemt. Zo komt ook hetontwikkelstraatconceptinAzureterug.
HetmooievanAzureisdathetvelemalenflexibeler is danOffice 365. Je hebt geenvier Azure-tenants nodig als je eenOTAP-ontwikke lstraatnodighebt.Jekunt inhetgevalvanAzurevolstaanmetéén.EenAzure-tenantbestaatnamelijkuitabonnementen
en per abonnement kun je aangevenwat je daar je doelmee is. Zo kun je eenabonnementhebbenvoorontwikkeling,eenvoor test, een voor acceptatie en een voor productie, en daarbinnen rol je je websiteuit.
In dit voorbeeld zijn vier verschillende Office-365-omgevingen gecom-bineerd met twee aparte Azure-abonnementen. Eén abonnement com-bineert de ontwikkel- en de testomgeving (links) en één combineert de acceptatie- en productieomgeving. Dit is dus een voorbeeld met twee abonnementen. Zo kun je vergelijkbare voorbeelden verzinnen met bijvo-orbeeld een of vier abonnementen. In het geval van één abonnement kun je die weer zodanig inrichten dat je wel de hele OTAP-ontwikkelstraat kunt doorlopen.
12 13
Azure resource groups
Laten we even verder inzoomen op de Azure-tenant.BinnenelkeAzure-tenantkunjeeenofmeerdereabonnementen
hebben.Binnenelkabonnementkunjeeenofmeerdere resourcegroupshebben.Eenresource group is feitelijk een containerwaarin je je Azure-resources vastlegt.Vergelijk het met een folder op je hardeschijf. In een folder vind je je bestanden.In een resource group vind je al je Azure-resources:eenwebsite,eendatabase,eenopslagschijf of een virtuele server. Diegroepeer je in een resource group. Voorelke omgeving kun je zo’n resource groupinrichten..
Keuzes, keuzes, keuzes
Ook hier geldt weer: alles draait omkeuzes. En keuzes worden metname gevoed door kosten, beheer
en de behoefte van dewerkwijze bij jouwbedrijf.Nietelkbedrijfontwikkeltentestinhuis.Als jedatsoortzakenuitbesteedt, iseen ontwikkel- en testomgeving uiteraardniet nodig en volstaat een acceptatie- en productieomgeving. Een ander bedrijfdoorlooptwelallevierdestappen inhuis.Zoiselkesituatieuniek.
14 15
NAAMGEVING
Een heel belangrijk onderdeelinbeideomgevingenishoedenaamgevingeruitziet.Meteen
naamgevingsconventie reduceer je de complexiteit van beheer, kunje scripts automatiseren en kun jeomgevingen onderscheiden. Hoedie naamgeving er dan precies uitziet is niet zo belangrijk; hetbelangrijkste isdát jeerafsprakenovermaakt.
Hieronder volgen een aantal voorbeelden van denaamgevingsconventie die wij bij Mavention gebruiken. Als webij klanten komen die nog geennaamgevingsconventie hebben,dan introduceren we deze en leggen we ook uit waarom. Maar als eral een naamgevingsconventie is, gebruiken we die natuurlijk. Hetis vooral belangrijk dat er eennaamgevingsconventie is. Hoe dieeruitzietisomheteven.
Office 365
EengoedvoorbeeldzijndeURL’svanjeSharePoint-sites.Diemoetenuniek zijn. De URL van je testomgeving kan niet dezelfde zijn alsvanjeproductieomgeving,daarinmoet jeeenonderscheidmaken.
Jemoetvoldoenaaneennaamgevingsconventieomdeomgevingenuitelkaar tekunnenhouden.JekuntdandenkenaanhetopnemenvandeenvironmentalsprefixindeURL:
https://mavention.sharepoint.com/sites/dev-project-abc
https://mavention.sharepoint.com/sites/tst-project-abc
Nubenjejebewustvanhoezo’ncloudomgevingerophethoogsteniveauuitziet,welkesmakenerzijn:eentenant,tweetenants,viertenants,nogmeertenantsenallevariatiesaandeAzure-kant.Jehebteeneerstekeuzegemaakt,maarwatbetekentdatdan,welkeafsprakenmoetjenugaanmaken?Alsjevooreenenkeletenanthebtgekozen,enjewilttocheentest-enproductieomgeving,waarmoetjedanallemaalaandenken?Office365iswatminderflexibeldanAzure.Vandaardatikdietweeookaparthebbenoemd.
16 17
AlsjedeOffice-365-tenantvoormeerdereoplossingengebruikt,danishethandigomookdeoplossingindeURLmeetenemen:
https://mavention.sharepoint.com/sites/dev-pp-project-abc
https://mavention.sharepoint.com/sites/tst-pp-project-abc
https://mavention.sharepoint.com/sites/dev-intranet-hr
https://mavention.sharepoint.com/sites/dev-intranet-legal
https://mavention.sharepoint.com/sites/tst-intranet-hr
DatgeldtookalshetgaatomdeSearch-functionaliteitbinnenSharePoint.Daarheb jemaaréénservicevoor,diekun jeniet in tweeëndelen.DusmoetjediezoinrichtendatalsjehetSearch-componentaanspreektindetestomgeving, dat je alleen de testsites oplevert, en als je dat doet in de productieomgeving,datjedanalleenproductiesitestezienkrijgt.Daarmeekunjevoorkomendatjetestdatainjeproductieomgevingzietofviceversa.Bij de Search-functionaliteit kun je denken aan het gebruik van ResultSources.MeteenResultSourcesbepaaljedezoekresultatenopbasisvaneengedefinieerdezoekquery.JekuntduseenResultSourcemakenvoordeontwikkelomgeving(DEV)eneenvoordetestomgeving(TST).DenaamvandeResultSourcekunjebaserenopeennaamgevingsconventie:
MAV-Intranet-DEV
MAV-Intranet-TST
DequeryisgebaseerdopdeURL’s,diejouwoplossinggebruikt.Bijvoorbeeld:
Je moet de functionaliteiten vanSharePoint dus zodanig inrichtendat je de omgevingen altijd weet te onderscheiden.Ditgeldtnietalleenvoor de zoekfunctionaliteit, maarookvoorsitecollectionsenvoorhetbeherenvandeappcatalog.
De appcatalog is een bijzondergeval. Heel lang kende SharePointOnline alleen een appcatalog voor de heletenant.Sindsenigetijdkennenwe ook een appcatalog per sitecollection. Dit levert weer nieuwemogelijkheden op als het gaat omdeployment van je eigen Apps for
SharePoint.Indetenantappcatalogstaan Apps for SharePoint diebeschikbaarzijnvoordeheletenant.Apps in de appcatalog van de sitecollectionzijnalleenbeschikbaarindiebetreffendesitecollection.
Als je apps uitrolt naar de tenant-appcatalog,danmoetjeerrekeningmeehoudendatdebestandsnaam,detitelenhetproduct-iduniekzijn.Inonderstaandvoorbeeldstaateentest- en productieversie van de app ‘SPSBE2018’
18 19
Wanneer je apps uitrolt naar de appcatalog van de site collection hebjedezebeperkingniet.Alsjouwoplossing meerdere site collections omvat, dan moet je de app dus naar aldiesitecollectionsuitrollen.
Als we kijken naar de OTAP-strategie, zit de beperking bijOffice 365 vooral in het feit dat jevoor sommige services maar een versiehebt.Daarkunjeniettweeofmeerdere smaken van hebben. Jemoet met die ene versie slim weten omtegaan.Voorsommigeserviceskan dat niet eens; dan moet je jebewust zijn dat je dingen doorelkaarheenhebt.Ditisbijvoorbeeldvantoepassingbijdeuserprofielen.Standaard heb je één lijstmet alleaccounts waar men mee inlogt.
Die accounts hebben potentieeldus ook toegang hebben tot jetestomgeving. Je kunt besluitendat zo te laten. Of je kiest ervooraparteaccountsaantemakenvoorde testomgeving. Daar zitten dannatuurlijkweerabonnementskostenaan.
Nu bestaat Office 365 niet alleenuit SharePoint Online. Als je naarandere Office-365-services kijkt,zoalsGroupsenTeams,danhebjenietalleenmeteenSharePointsitecollectiontemaken,maarookmeteenmailbox waar een e-mailadresaanvastzit.Dite-mailadreszou jeook graag willen voorzien van eenaanduidingzodatjeweetofhetgaatomeenbijvoorbeeldeentest-ofeenproductieomgeving.
Azure
In Azure heb je die beperkingenniet echt. Je kan van elkeresource–ofhetnueenwebsite,
eenvirtueleserverofeendatabaseis–meerdereinstantiesmaken.Jekunt twee, drie of 500websites ofdatabases aanmaken. En je kuntin de naamgeving aangeven of dit eenontwikkel-, test-, acceptatie-ofproductieomgevingis.
Dit is een voorbeeld van eennaamgevingsconventie zoals je die zoukunnengebruiken.Tweetotvierkaraktersvoordebedrijfsnaam,deafdelingsnaam of bijvoorbeeld hetkostenplaatsnummer (DEPT[2-4]),RG voor resource group, drie totzeskaraktersvoordedienstofhet
product(SERVICE[3-6]),entweetotvier karakters voor de omgeving(ENVIRONMENT[2-4]).
De eerste regel is een voorbeeldvan klant GDH, voor wie eenresource group (RG) is gemaaktvoor de global portal (GP), in ditgeval voor de ontwikkelomgeving(DEV). De tweede regel toont eenvoorbeeld van klant STK, voor wieeen resourcegroup isaangemaaktvoor de project portal (PP), voorde acceptatieomgeving. De laatsteregel toont een voorbeeld vanMavention (MAV), voor wie eenresourcegroup(RG)isaangemaaktvoor de productieomgeving (PRD)vooronsproductMake.
20 21
Zo kun je naamgevingsconventiesvastleggen. Bij Mavention hebbenwe een heel document waarindeze conventies vastliggen voor alle Azure-resources en vooralle Office-365-onderdelen. Inhet voorbeeld hierboven zag je
de naamgevingsconventie voor resource groups, maar zo hebbenweookeennaamgevingsconventievoor application service plans, websites, virtual machines endatabases. Het gaat allemaal uitvanhetzelfdeprincipe.
Waaromisditzobelangrijk?Jehebteenprocesdateendeploymentgaatuitvoeren, bijvoorbeeld je websiteuitrollen.Datdoejeniethandmatig,daarhebjeeenprocesvoorendaarhebjescriptsvoorgeschreven.Danishetwelheelbelangrijkomgoedenaamgevingsconventiestehebben.Dat geeft je houvast, het zorgt datje consequent bent en weet waarje iets naartoemoet uitrollen.Meteen goede naamgevingsconventie wordenjescriptsheeloverzichtelijken makkelijk te beheren en toe tepassen.
In de bijlage ‘Azure ResourceManager-template’ vind je eenvoorbeeld van hoe je met eenscript en een template je Azure-omgevinguitroltmetgebruikvandenaamgevingsconventie.
Voor Office 365moet je, vanwegede eerder besproken juridischewetgeving, aparte omgevingen hebben voor landen als Canada,Duitsland en China. Voor Azure isdat niet nodig.Als je een resourceaanmaakt,bijvoorbeeldeenwebsite,kunjeindenaamgevingmeenemeninwelke regiodezeuitgeroldmoetworden. Zo kun je een resourcegrouphebbendieeenwebsiteversieheeftinDuitsland,dezelfdewebsitein Australië en dezelfde in China.Fysiek zijn het aparte websites.Maar je hebt ze in jouw Azure-omgeving in dezelfde resource group staan; ze staan allemaal bijelkaar, in hetzelfde abonnement.Dat is ietswatnietmetOffice365kan.DittoontweerdeflexibiliteitdieAzurebiedt.
Hopelijk geeft dit een goed beeldvanhoejeomgevingeruitkangaanzien, los van hoe je de processenuiteindelijk gaat invullen entoepassen.
In dit voorbeeld zie je eenvergelijkbareopzetvoorapplicationserviceplans,waarbijzelfsderegiois aangegeven. In dit geval is dat
West-Europa (WE), maar dat kannatuurlijk elke willekeurige regiozijn.
22 23
PROCESSEN
Continuous Integration is het proces waarbij automatisch een code build wordt gemaakt en getest zodra het team aanpassingen maakt en in de code repository opslaat.
Continuous Delivery is het proces waarbij van een code build een deployment build wordt gemaakt, geconfigureerd, getest en uiteindelijk uitgerold naar een productieomgeving.
Vervolgensgaathetomjeprocessen.Welkeprocessengajedefiniërenenwatwordenjewerkwijzen?Datisimmersookeenbelangrijkonderdeelvanjeontwikkel-straat.DezeprocessenwordenvaakookwelCI/CDgenoemd,oftewelContinuous
Integration/ContinuousDelivery.
Als we het hebben over deOTAP-straat, dan beginnenwe bij de ontwikkeling
door het development team. Daarbeginnen de eerste processen endus ook de eerste afspraken. Hetkan zijn dat je in de oplossing dieje aan het maken bent bepaaldetechnische onderdelen of eenstukjeconfiguratieopmoetnemen.Dit zorgt ervoor dat het uitrollennaar Azure of Office 365 conformde afspraken gaat die je hebtvastgelegdvoorjeOTAP-omgeving.
Stel: Je hebt een project meteen looptijd van twee maanden.Elke twee weken wil je eentussenversie opleveren, die gaat naar testomgeving. Op die manierkunneneenaantaltestersdieversiealvast testen en eventuele bugsrapporteren. Dat betekent dat erelke twee weken een versie uit deontwikkelomgevingwordtdoorgezetnaar de testomgeving. Vervolgensis er ook een deployment-procesdatzorgtvoorhetoverzettenvandetest- naar de acceptatieomgeving, en van de acceptatie- naar de productieomgeving.
Omdat te realiseren zijnookweerafsprakennodig,zoalsbijvoorbeeldover je configuratie. Het kanmaar zo zijn dat naamgeving, de afhankelijkebronnendiejegebruikt,anders zijn in de testomgeving dan indeacceptatieomgeving.Datkun
je niet in je code opnemen, maar moet je configureerbaar maken.Hetdeployment-procesmoetaldieconfiguratie-itemskunnen instellenzodat het ook goed werkt op devolgendeomgeving.
Voor deze vorm van releasemanagement zijn diverse tools beschikbaar,zoalsAzureDevOpsenOctopusDeploy.Metbeidetoolskunjeeenreleasedefiniërenenbepalenhoe dit proces eruitziet. Je kuntdiversetakenlatenuitvoeren,zodat
de configuratie en de deploymentpackage helemaal naar wens isvoor jouw ontwikkelstraat. Denkhierbij aan taken zoals specifiekegulptaken voor je SharePoint-Framework-projectofhetuitvoerenvaneenARM-template.
Meer informatie over Azure DevOps Meer informatie over Octopus Deploy
Dit plaatje laat het deployment-proces zien. We zien hoe versie 1.0 van een product van de ontwikkelomgeving naar de testomgeving wordt gezet. Na verloop van tijd heb je een versie 1.0 in productie staan. Ondertussen ben je al bezig met het ontwikkelen van versie 2.1. Al die tussenversies kun je visueel maken, zodat je weet wat waar staat.
24 25
CONCLUSIE
OVER MAVENTION
Doorallekeuzemomentendieerzijn,ontstaatereenheelbreedspectrumvanmogelijkhedenhoejeOTAP-straateruitkanzien.Hetisonmogelijkalle
keuzestebeschrijven.Octavie is een gedreven en gepassioneerde cloudarchitect voorMavention inNederland.Metvelejarenervaringals.NETontwikkelaar,software-architect,teamleiderencoachheefthijeengroteliefdeontwikkeldvoorSharePoint,AzureenOffice365.
Meer weten?
Stuur een e-mail naar [email protected] t.a.v.OctavievanHaaften.
Octavie van Haaften,
CloudArchitect
Wij helpen joumetslimmer,efficiënter en veiligerdigitaal werken! In
Mavention heb je een partner diedagelijks vol passie voor mensenen technologie werkt aan hetdigitaalsamenwerkenvanmorgen.Goed doordachte oplossingenmet uiteindelijke adoptie alsuitgangspunt.Zorgendatjemensende verandering ook werkelijkomarmenisminstenszobelangrijk,wanteennieuwsysteemzonderdat
ditgebruiktwordt,daarheb jeniksaan.
Als Microsoft Cloud Productivitypartner zijn wij dé expert op hetgebied van SharePoint en Office365.Wijzijnaltijdopdehoogtevandelaatstetrendsenontwikkelingenvan dit platform. Het delen vankennisenervaringzitinonsDNAenzetten dit graag in om samen met joutotechteresultatentekomen!
Daarom is deze whitepaper vooral opconceptueel niveau gebleven met hieren daar wat voorbeelden. We hebben
bekekenwatAzure tebiedenheeft,watOffice365tebiedenheeft,waargeenflexibiliteitzitenwaardatwelzit.Watdoe jemetnaamgeving?Enmoet je in jeprocessenwellichtnogzakenaanpassen?Ofjenuvanafscratchbegintmetjeontwikkelstraatofdat jealeenomgevinghebtdiejemigreertnaardecloud,steedsweerkomjevoorkeuzestestaan.Hetisbelangrijkdatjegoed nadenkt over wat voor jouw organisatie– op dit moment en voor de toekomst – debestekeuzeis.
26 27
BIJLAGE: AZURE RESOURCE
MANAGER-TEMPLATE
Hettemplatebevatenkelehoofdelementen:
Parametersdefiniërendeinputwaardesvoorhettemplate,zoalsdelocatievanjeresourcesenomgevingvanjeontwikkelstraat.
Variables worden gebruikt binnen het template en bestaan regelmatig uitcomplexe expressies. Je kunt hiermee de resource-namen bepalen op basis van denaamgevingsconventie.
ResourcesdefiniërenaldeAzure-resourcesdieuitgeroldworden.Denkhierbijaaneenstorageaccount,Azure-websites,eenvirtueelnetwerkofeenvirtuelemachine.
Outputs bevattenwaardesdiebeschikbaarzijninscriptsnahetuitvoerenvanhetARM-template.ZokunjehetpubliekeIP-adresvaneenvirtuelemachinebeschikbaarmakenengebruikeninhetverderescript-proces.
Schematischzietditeralsvolgtuit:
MeerinformatieoverdesyntaxvaneenARM-templatestaatopdesitevanMicrosoft.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [],
"outputs": {}
}
EenAzureResourceManager-template–ookwelARM-template–iseenJSON-be-stand.HierinzijndeAzure-resourcesgedefinieerd,dieuitgeroldmoetenwordenindeopgegevenAzureResourceGroup.VoorelkeAzureresourcekunjeeigenschappenenafhankelijkhedeninstellen,zodatderesourcesconsistentenherhaaldelijkuitger-oldkunnenworden.DitlaatsteisdekrachtvaneendeploymentmeteenARM-tem-
plate.
28 29
OTAP-omgeving als parameterStel,jehebtjeOTAP-omgevinggedefinieerdalsDEV,TST,ACCenPRD.DezewaardeskunjealsparameteropnemeninjeARM-template:
ARM-template uitrollenEr zijn verschillendemanierenomeenARM-templateuit te rollen: via deAzurePortal,PowerShell,AzureDevOpsof3rdpartyproductenzoalsOctopusDeploy.InditvoorbeeldgebruikikPowerShell.
DePowerShellcmdletdiegebruiktmoetwordenisNew-AzureRmResourceGroupDeployment.Dezecmdletvraagttenminsteomdenaamvanjedeployment,ResourceGroupendeARM-template.Alsjeparametershebt,dankunjedezedoorgevenviaTemplateParameterObject.
Opdezemanierkun jeookdeoverigeparametersdefiniëren,dieonderdeel zijnvan jenaamgevingsconventie, zoals department en regio. Hiermee kun je dan de resource-namenbepaleninhetelementVariables.
{
"parameters": {
"environment": {
"defaultValue": "DEV",
"allowedValues": [
"DEV",
"TST",
"ACC",
"PRD"
],
"type": "string"
}
},
"variables": {},
"resources": [],
"outputs": {}
}
"variables": {
"servicePlanName": "[toUpper(concat(parameters('department'), '-ASP-', 'AAWS-', parameters('environment'), '-', parameters('region')))]",
"webappName": "[toUpper(concat(parameters('department'), '-WEB-', 'AAWS-', parameters('environment'), '-', parameters('region')))]"
},
30 31
$templateParameters = @{
department = $Department
environment = $Environment
location = $Location
region = $Region
}
#Deploying resources with the resource management file
$ResourceGroupName = ("MAV-RG-ARMDEMO-$($Environment)").ToUpper()
$TemplateFile = [System.IO.Path]::Combine($PSScriptRoot, ".\MAV-ARMDEMO-Template.json")
$deploymentName = ((Get-ChildItem $TemplateFile).BaseName + '-' + ((Get-Date).ToUniversalTime()).ToString('MMdd-HHmm'))
$result = New-AzureRmResourceGroupDeployment -Name $deploymentName `
-ResourceGroupName $ResourceGroupName `
-TemplateFile $TemplateFile `
-TemplateParameterObject $templateParameters
EenvoorbeeldvaneenstukjePowerShell-script:
Als je het script uitvoertvoordeontwikkelomgevingDEV,zietheteralsvolgtuit:
IndeAzurePortalziejedantenslottehetvolgende:
En voor de productie-omgevingPRD:
32 33