OTAP straat inrichten, hoe het beste te beginnen?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 721760

Topicstarter
Ik zal bnnenkort beginnen als ontwikkelaar bij een bedrijf. Ik zal een OTAP-straat gaan inrichten voor hun developmentproces.

Nu zit ik m'n hoofd te breken, hoe ik het beste kan beginnnen. Als ik mij oriënteer op internet, roept het meer vragen bij mij op dan dat ik een startpunt kan vinden. Daarom wil ik het voor de doorgewinterde webdevelopers hier vragen, om er zo achter te komen wat er een beetje 'industriestandaard' is, en meer van de common best practices.

Achtergrond:

Ik wil Phalcon PHP framework introduceren, dat PHP als extensie voor hun C-core gebruikt. Voordeel hiervan zal vooral snelheid zijn. Deze framework zal op hun servers gebruikt worden, dat voor webapplicaties gebruikt wordt. Het zijn LAMP-servers.
Hun serverstructuur is als volgt ingedeeld: ontwikkeling en acceptatie vindt op server 1 plaats.
Productie is op server 2.

Data is ook op beide servers verschillend.

Bedoeling is wel dat de Git op Ontwikkeling plaatsvindt, waarin men kan committen naar de master dat op Ontwikkeling is, en ik via een interface kan syncen met Test, Acceptatie en Productie.

In voorbereiding en bij gebrek aan praktische ervaring heb ik hierover wat vragen met als doel zoveel mogelijk zienswijzen en praktische oplossingen te vergaren. De lijst met vragen is groot, maar ik hou het voor nu bij de hoofdvragen. Suggesties voor leesvoer om het een ander zelf uti te zoeken zijn natuurlijk ook welkom.

Hoe houden we serverconfiguratie tussen ontwikkeling,test,acceptatie,productie gelijk? Ik zat te kijken naar Vagrant, Puppet, etc. Ik word er niet veel wijzer van. En hoe ga je om met de verschillen die er wel altijd zijn, zoals domeinnamen, ssl certificaten en ip-adressen?

En zoals ik het lees, syncen Vagrant/Puppet eventuele verschillen in templates/scripts door naar acceptatie. Hoe doen we dat met versiebeheer van database veranderingen?


Als we een ontwikkeling aan een project doen, veranderen er vaak verschillende dingen: Frontend code, backend code, database schema's en serverconfiguraties. Hoe houden we deze veranderingen bij elkaar en hoe rollen jullie die in 1 keer uit van test naar bijvoorbeeld acceptatie en verder?

Tevens vraag ik mij af, wanneer er sprake is van een mislukte uitrol naar acceptatie, inclusief serverconfiguratieveranderingen-> hoe wordt dit ongedaan gemaakt zodat acceptatie zoveel mogelijk hetzelfde blijft als productie?

Enig input zou gewaardeerd worden. Ik weet namelijk niet goed waar ik dit hands-on kan aanpakken.

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 04-07 18:20
Anoniem: 721760 schreef op zaterdag 09 januari 2016 @ 23:49:
Ik wil Phalcon PHP framework introduceren, dat PHP als extensie voor hun C-core gebruikt. Voordeel hiervan zal vooral snelheid zijn. Deze framework zal op hun servers gebruikt worden, dat voor webapplicaties gebruikt wordt. Het zijn LAMP-servers.
Is performance de enige reden? Wel ervaring met Phalcon? Want PHP7 is ook niet zo langzaam meer, is ook meer de vraag wat de bottleneck is en hoeveel bezoekers je verwacht ed. 'Normale' PHP is misschien wat makkelijker ontwikkelen, als daar meer ervaring is. Genoeg andere frameworks beschikbaar ;)
Anoniem: 721760 schreef op zaterdag 09 januari 2016 @ 23:49:
Hoe houden we serverconfiguratie tussen ontwikkeling,test,acceptatie,productie gelijk? Ik zat te kijken naar Vagrant, Puppet, etc. Ik word er niet veel wijzer van. En hoe ga je om met de verschillen die er wel altijd zijn, zoals domeinnamen, ssl certificaten en ip-adressen?

En zoals ik het lees, syncen Vagrant/Puppet eventuele verschillen in templates/scripts door naar acceptatie. Hoe doen we dat met versiebeheer van database veranderingen?
Serverconfiguratie heb ik niet zoveel verstand van. Je zou met Vagrant/puppet inderdaad een basis-image kunnen maken en dan met configuratie de precieze instellingen doen. Je zal natuurlijk rekening moeten houden met domeinen/ssl, maar dat hangt een beetje af van je applicatie (of het multi-domein is, of gewoon 1 hoofddomein en niet uitmaakt welke). Je kan dit in je applicatie afvangen. SSL kan je ook voor je test omgevingen maken als je wil natuurlijk. IP-adressen zouden niet zoveel invloed moeten hebben toch? Tenzij je naar andere services verwijst, afhankelijk van je omgeving, maar je zal dat afhankelijk van de server/domein kunnen bepalen.
Anoniem: 721760 schreef op zaterdag 09 januari 2016 @ 23:49:
Als we een ontwikkeling aan een project doen, veranderen er vaak verschillende dingen: Frontend code, backend code, database schema's en serverconfiguraties. Hoe houden we deze veranderingen bij elkaar en hoe rollen jullie die in 1 keer uit van test naar bijvoorbeeld acceptatie en verder?
Hoe vaak verwacht je dat serverconfiguratie veranderd? Ik denk dat je die los moet zien van de andere 3.
Frontend+backend code zit dus in je versiebeheer. Je database scheme kan je ook in de database bijhouden, met migraties (bijv. Laravel en Doctrine hebben dat, weet niet of Phalcon dat standaard heeft). Bij het deployen voer je dan je migraties uit, zodat alles wat open staat toegepast wordt.
Het is voor ons afhankelijk van hoe groot het project is. Voor simpele sites van development naar productie. Anders een 'staging' tussenstap op precies dezelfde server en bijv. een recentie kopie van de bestanden/database. Je kan ook nog bijv. een test-suite runnen op je staging/acceptatie, zodat je zeker weet dat alles goed werkt. En dan pas doorzetten.
Anoniem: 721760 schreef op zaterdag 09 januari 2016 @ 23:49:
Tevens vraag ik mij af, wanneer er sprake is van een mislukte uitrol naar acceptatie, inclusief serverconfiguratieveranderingen-> hoe wordt dit ongedaan gemaakt zodat acceptatie zoveel mogelijk hetzelfde blijft als productie?
Als je dus je migraties bijhoudt, en ook de 'undo' variant kan je bij het 'rollbacken' ook de migratie terugdraaien. Ik hou meestal een stuk of 5 releases bij, zodat we alleen maar de symlink om hoeven zetten. Dan ben je binnen 1 sec weer terug.
Anoniem: 721760 schreef op zaterdag 09 januari 2016 @ 23:49:
Enig input zou gewaardeerd worden. Ik weet namelijk niet goed waar ik dit hands-on kan aanpakken.
Er zijn vast wel UI interfaces voor, bijv. http://deploybot.com/
En ook commandline tools (Capistrano, Rocketeer etc), maar je zal toch veel zelf moeten uitzoeken. Zeker voor serverconfiguratie.
Hangt er ook een beetje vanaf hoe bedrijfskritiek en specifiek de wijzigingen zijn. Als je een standaard Symfony/Laravel/Slim etc framework draait met Ubuntu + PHP7, zullen de verschillen tussen servers als redelijk klein zijn. Als je gewoon een 'standaard' image/configuratie kan gebruiken, is dat natuurlijk wel een stuk makkelijker.

[ Voor 4% gewijzigd door Barryvdh op 10-01-2016 11:38 ]