Al een aantal jaren zijn er hele gedegen, doorontwikkelde en handige frameworks te vinden voor diverse programmeertalen. Ik zal mijn geval het beperken tot PHP, maar het staat eenieder vrij om het vanuit zijn specialisme te bekijken, zolang de frameworks maar open source zijn.
Momenteel ben ik met een aantal mensen binnen ons bedrijf in gesprek voor het gebruiken van een dergelijk framework (CodeIgnitor, CakePHP, Zend) als basis voor het nieuwe CMS voor onze websites. Het CMS dat nu op de planken ligt is hoog aan vervanging of revisie toe, daar zijn we het allen over eens.
Hoewel iedereen in het team de meerwaarde van een framework zien (tijdsbesparend, consistentie, conventies, scheiding code en opmaak, gecentraliseerde codebase...) en ik daar zelf ook voor ben, zien sommigen toch ook bezwaren voor het gebruiken van iets van iemand anders. Grootste struikelblok voor onze senior programmeur zijn toch wel de aanwijsbare risico's die aan het gebruiken van publiekelijk verkrijgbare en inzichtelijke frameworks. De gedachte is dat een open source framework makkelijker te misbruiken is omdat exploits en fouten openbaar gemaakt worden en dus door kwaadaardige personen op grote schaal kunnen worden uitgevoerd. Aangezien wij nogal wat sites beheren zou dat wel eens fataal kunnen zijn. Bovendien: de verscheidenheid aan beheersystemen bij alle cliënten bemoeilijkt het up to date houden van de codebase over alle websites. Voordat we bij alle klanten het framework gewapend hebben tegen de nieuwste fouten zijn we weken verder.
Nou heb ik daar wel eens over nagedacht en een oplossing met een codebase op één van onze servers (dus core bestanden worden met curl of fopen extern binnengehaald) bedacht. Deze verwijst dan altijd naar de meest actuele versie van het framework wat met een simpele actie direct overal toegepast kan worden. Je crëert daarmee wel weer afhankelijkheden en extra bandbreedte buiten de deur, maar het zou gelijk de moeilijkheden wegnemen die het vergt om alle verschillende servers en databases te moeten upgraden.
Nou is het zo dat frameworks, doordat ze open source zijn, ook een grotere userbase hebben die fouten in de code kunnen verbeteren en zodoende sneller reageren dan een gesloten pakket kan bijhouden. Oftewel de zwakte dat het openbaar is wordt een sterkte door de grote controle die heerst op de veiligheid. Kijk maar naar Linux. De updatecyclus ligt vele malen hoger dan die van Miscrosoft of Apple. Als je zou willen tenminste. Daarnaast kiezen veel bedrijven niet voor niets Linux voor hun 'mission critical' taken.
Maar toch heb ik niet een kant en klaar antwoord op de vraag wat er te doen valt aan de openheid van frameworks en hun veiligheid daardoor. De tegenstanders van OS frameworks hebben wel een punt. Is het risico van exploits groter dan bij gesloten pakketten? Of juist niet? Of maakt het niet uit vanwege de snelle patching die er tegenover staat?
Zelf ben ik een vervent voorstander van frameworks, ook opensource. Misschien wel juist open source. Ik onderken de risico's, maar lig daar zelf niet zo wakker van. Als ik zelf een framework zou moeten schrijven (al dan niet met medeprogrammeurs) dan zal ik waarschijnlijk 10x meer fouten er in hebben zitten dan een uitgekristalliseerd pakket als Zend. Als ik kijk naar de updates van CodeIgnitor, dan zijn die redelijk frequent en ook nog eens minimaal voor zo'n uitgebreide codebase; 20 - 30 minor bugfixes. Natuurlijk, het is een risico, maar is het reëel?
Ik ben benieuwd hoe jullie denken over het gebruik van open source software in het algemeen en frameworks in het bijzonder voor het gebruik bij 'best wel belangrijke' dingen als online betalingen, grote corporate websites, etcetera. Wat adviseren/hanteren jullie?
Momenteel ben ik met een aantal mensen binnen ons bedrijf in gesprek voor het gebruiken van een dergelijk framework (CodeIgnitor, CakePHP, Zend) als basis voor het nieuwe CMS voor onze websites. Het CMS dat nu op de planken ligt is hoog aan vervanging of revisie toe, daar zijn we het allen over eens.
Hoewel iedereen in het team de meerwaarde van een framework zien (tijdsbesparend, consistentie, conventies, scheiding code en opmaak, gecentraliseerde codebase...) en ik daar zelf ook voor ben, zien sommigen toch ook bezwaren voor het gebruiken van iets van iemand anders. Grootste struikelblok voor onze senior programmeur zijn toch wel de aanwijsbare risico's die aan het gebruiken van publiekelijk verkrijgbare en inzichtelijke frameworks. De gedachte is dat een open source framework makkelijker te misbruiken is omdat exploits en fouten openbaar gemaakt worden en dus door kwaadaardige personen op grote schaal kunnen worden uitgevoerd. Aangezien wij nogal wat sites beheren zou dat wel eens fataal kunnen zijn. Bovendien: de verscheidenheid aan beheersystemen bij alle cliënten bemoeilijkt het up to date houden van de codebase over alle websites. Voordat we bij alle klanten het framework gewapend hebben tegen de nieuwste fouten zijn we weken verder.
Nou heb ik daar wel eens over nagedacht en een oplossing met een codebase op één van onze servers (dus core bestanden worden met curl of fopen extern binnengehaald) bedacht. Deze verwijst dan altijd naar de meest actuele versie van het framework wat met een simpele actie direct overal toegepast kan worden. Je crëert daarmee wel weer afhankelijkheden en extra bandbreedte buiten de deur, maar het zou gelijk de moeilijkheden wegnemen die het vergt om alle verschillende servers en databases te moeten upgraden.
Nou is het zo dat frameworks, doordat ze open source zijn, ook een grotere userbase hebben die fouten in de code kunnen verbeteren en zodoende sneller reageren dan een gesloten pakket kan bijhouden. Oftewel de zwakte dat het openbaar is wordt een sterkte door de grote controle die heerst op de veiligheid. Kijk maar naar Linux. De updatecyclus ligt vele malen hoger dan die van Miscrosoft of Apple. Als je zou willen tenminste. Daarnaast kiezen veel bedrijven niet voor niets Linux voor hun 'mission critical' taken.
Maar toch heb ik niet een kant en klaar antwoord op de vraag wat er te doen valt aan de openheid van frameworks en hun veiligheid daardoor. De tegenstanders van OS frameworks hebben wel een punt. Is het risico van exploits groter dan bij gesloten pakketten? Of juist niet? Of maakt het niet uit vanwege de snelle patching die er tegenover staat?
Zelf ben ik een vervent voorstander van frameworks, ook opensource. Misschien wel juist open source. Ik onderken de risico's, maar lig daar zelf niet zo wakker van. Als ik zelf een framework zou moeten schrijven (al dan niet met medeprogrammeurs) dan zal ik waarschijnlijk 10x meer fouten er in hebben zitten dan een uitgekristalliseerd pakket als Zend. Als ik kijk naar de updates van CodeIgnitor, dan zijn die redelijk frequent en ook nog eens minimaal voor zo'n uitgebreide codebase; 20 - 30 minor bugfixes. Natuurlijk, het is een risico, maar is het reëel?
Ik ben benieuwd hoe jullie denken over het gebruik van open source software in het algemeen en frameworks in het bijzonder voor het gebruik bij 'best wel belangrijke' dingen als online betalingen, grote corporate websites, etcetera. Wat adviseren/hanteren jullie?