Productieserver

Een productieserver is een server die wordt gebruikt om website-inhoud en -toepassingen te hosten voor uitrol naar een live omgeving. Het is de belangrijkste server waarop websites en webapplicaties toegankelijk zijn voor eindgebruikers en wordt ook wel een live server genoemd.

Een productieserver kan een dedicated machine zijn, een virtuele server, een basis-pc of meerdere machines die geografisch zijn verspreid. Voor kleine bedrijven en eenvoudige toepassingen, kunnen alle activiteiten die betrokken zijn bij de implementatie worden uitgevoerd op een enkele computer. Bij software-implementatie op bedrijfsniveau worden meestal meerdere servers gebruikt voor de fasen die nodig zijn om software te maken en te bewerken en om applicaties aan eindgebruikers te leveren.

Een veelgebruikte deployment-architectuur is ontwikkeling, testen, staging, productie (vaak uitgedrukt als DEV, TEST, STAGING, PROD of DTSP). De ontwikkelomgeving is de computer waar softwareprogramma's worden gemaakt en eventuele wijzigingen in de codering worden aangebracht, meestal het werkstation van een ontwikkelaar. In deze architectuur, wanneer ontwikkelaars klaar zijn met de applicatie, deponeert de ontwikkelingsserver het naar de test / QA server.  Na het testen, wordt de software gedeployed naar een staging server, waar alle elementen van een website of applicatie worden geassembleerd op dezelfde manier als ze live zullen verschijnen. Zodra alles er correct uitziet en naar behoren functioneert op de staging server, wordt de software uitgerold naar de productieserver, die deze toegankelijk maakt voor eindgebruikers.

Van oudsher zijn de ontwikkel- en productieomgevingen om verschillende redenen gescheiden.  Zo kan een probleem met ongeteste software, zoals een oneindige lus of een geheugenlek, de werking van de productieserver belemmeren en problemen veroorzaken voor eindgebruikers. Een ander punt van zorg zijn de fouten die aan gebruikers worden getoond.

Als gevolg hiervan is in omgevingen van enige omvang ontwikkeling op de productieserver ten strengste ontmoedigd. Recentelijk zijn er echter andere benaderingen geprobeerd om fasen uit de software-implementatie te halen en de processen efficiënter te maken. Eén benadering die in sommige DevOps-omgevingen wordt gebruikt is feature flagging, waarmee ontwikkelaars bepaalde features kunnen selecteren die beschikbaar zullen zijn voor specifieke gebruikers. Feature flags kunnen het mogelijk maken om op de productieserver te ontwikkelen met features uitgeschakeld voor de meeste gebruikers totdat is aangetoond dat ze klaar zijn om live te gaan voor alle gebruikers.