JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met...

18
JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD WELKE KEUZES ZIJN ER TE MAKEN? WHITEPAPER

Transcript of JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met...

Page 1: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

JE ONTWIKKELSTRAATOPZETTEN INDE CLOUDWELKE KEUZESZIJN ERTE MAKEN?

WHITEPAPER

Page 2: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 3: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 4: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 5: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 6: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 7: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 8: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 9: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 10: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 11: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 12: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 13: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 14: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 15: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 16: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

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

Page 17: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving

$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

Page 18: JE ONTWIKKELSTRAAT OPZETTEN IN DE CLOUD€¦ · Office 365 en de OTAP-ontwikkelstraat Als je met Office 365 werkt en je wilt iets gaan testen, ben je al snel geneigd een tweede omgeving