Ik ben nu een tijdje aan het werk bij een klein softwarebedrijf met op dit moment 2 directe ontwikkelaars. Ik werk dus direct samen met 1 collega die redelijk thuis is in web-frontend ontwikkeling. Onze klanten zijn voornamelijk kleine bedrijven waar we websites voor ontwikkelen in eigen systemen (dus geen standaard frameworks, nagenoeg alles is zelfbouw).
De manier van deployment is al jaren hetzelfde geweest: Op 1 server staat een mapje met de mastercode, die wordt gecopy/paste naar een nieuwe map, daar worden klantspecifieke aanpassingen op gedaan (en e.v. bugs gefixed in de mastercode) en die wordt uiteindelijk via FTP online gezet. Er is dus 0 relatie tot andere systemen, als een bug op 1 plaats gefixed is moet dat op alle andere websites doorgevoerd worden. Het zal je niet verbazen dat functionaliteit dus nooit 1 op 1 over te zetten is. Verder worden bugfixes altijd via FTP gedaan, rechtstreeks op de productieomgeving.
Ik kom nu dus als ontwikkelaar op dit bedrijf kijken en heb voor een aantal websites waar regelmatig ontwikkelwerk in zit alvast een versiebeheer geïmplementeerd. Om e.e.a eenvoudig grafisch inzichtelijk te maken voor mijn collega's heb ik daarbij Stash geïnstalleerd. Van een paar projecten heb ik nu dus historie, de mogelijkheid te switchen tussen branches, etc, alle voordelen die git met zich meebrengt.
Voor het deployment loop ik echter nog tegen wat issues aan. Voor de meeste bedrijven zal testwerk een groot onderdeel uitmaken van hun deployment strategy, bij ons is het slechts een kwestie van compiles? ship it!. Ik ben nu dus op zoek naar een methode die vergelijkbaar werkt als via FTP (de editor biedt de mogelijkheid om commit+push te down) en dat deze wijziging automatisch uitgerold wordt op een testserver. Aan het eind kan een set wijzigingen dan handmatig online gezet worden op de productieserver. Ik kan hier niet echt goede ideëen voor vinden en kom eigenlijk alleen systemen tegen als Buildmaster en Bamboo. Dat lijkt me voor nu wat overkill, uiteindelijk zou ik wel graag bij zo'n systeem uit komen, maar ik zou het nu graag in stapjes doen, eerst een testserver, unit tests in de code, de concrete voordelen van een goede strategie duidelijk maken voor ons bedrijf, en dan een voorstel doen voor zo'n server.
Wat is jullie idee hierbij? Hoe zouden jullie zoiets aanpakken?
De manier van deployment is al jaren hetzelfde geweest: Op 1 server staat een mapje met de mastercode, die wordt gecopy/paste naar een nieuwe map, daar worden klantspecifieke aanpassingen op gedaan (en e.v. bugs gefixed in de mastercode) en die wordt uiteindelijk via FTP online gezet. Er is dus 0 relatie tot andere systemen, als een bug op 1 plaats gefixed is moet dat op alle andere websites doorgevoerd worden. Het zal je niet verbazen dat functionaliteit dus nooit 1 op 1 over te zetten is. Verder worden bugfixes altijd via FTP gedaan, rechtstreeks op de productieomgeving.
Ik kom nu dus als ontwikkelaar op dit bedrijf kijken en heb voor een aantal websites waar regelmatig ontwikkelwerk in zit alvast een versiebeheer geïmplementeerd. Om e.e.a eenvoudig grafisch inzichtelijk te maken voor mijn collega's heb ik daarbij Stash geïnstalleerd. Van een paar projecten heb ik nu dus historie, de mogelijkheid te switchen tussen branches, etc, alle voordelen die git met zich meebrengt.
Voor het deployment loop ik echter nog tegen wat issues aan. Voor de meeste bedrijven zal testwerk een groot onderdeel uitmaken van hun deployment strategy, bij ons is het slechts een kwestie van compiles? ship it!. Ik ben nu dus op zoek naar een methode die vergelijkbaar werkt als via FTP (de editor biedt de mogelijkheid om commit+push te down) en dat deze wijziging automatisch uitgerold wordt op een testserver. Aan het eind kan een set wijzigingen dan handmatig online gezet worden op de productieserver. Ik kan hier niet echt goede ideëen voor vinden en kom eigenlijk alleen systemen tegen als Buildmaster en Bamboo. Dat lijkt me voor nu wat overkill, uiteindelijk zou ik wel graag bij zo'n systeem uit komen, maar ik zou het nu graag in stapjes doen, eerst een testserver, unit tests in de code, de concrete voordelen van een goede strategie duidelijk maken voor ons bedrijf, en dan een voorstel doen voor zo'n server.
Wat is jullie idee hierbij? Hoe zouden jullie zoiets aanpakken?
It might sound as if I have no clue what I'm doing, but I actually have a vague idea.