chp:faq

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
chp:faq [2018/08/31 12:32]
ferry
chp:faq [2020/10/17 11:12] (current)
Line 1: Line 1:
-:!: Let op! deze documentatie is nog volop in ontwikkeling :!: +====== ​Veelgestelde vragen: ​======
-\\ \\ +
-====== ​Technisch ====== +
-===== Cloud ===== +
-FIXME +
-====Static Assets CDN ===== +
-FIXME+
  
 +=== Wat zijn OpenShift projecten en hoe maak ik een project aan? ===
 +Het aanmaken van nieuwe projecten is gelimiteerd tot omroep medewerkers,​ dit is gedaan om omroepen zelf de controle te geven wat er op hun naam gedaan wordt. Externe developers kunnen via de omroepen rechten krijgen op een project. Als een externe ontwikkelaar een nieuw project wil moet dat via de omroep aanvragen.
 +
 +=== Wat moet ik als ontwikkelaar allemaal weten van OpenShift om ermee te kunnen werken? ===
 +Ons streven is dat je als ontwikkelaar snel aan de slag kan met OpenShift. Op deze wiki staan belangrijke concepten uitgelegd en staan ook verschillende scenario'​s beschreven. Doormiddel van de juiste templates hoef je alleen de applicatie-code aan te leveren en eventueel instellingen voor bijvoorbeeld php modules door te voeren. De web-interface maakt je project inzichtelijk en de command-line interface werkt ook op een overzichtelijke manier. ​
 +
 +=== Is het mogelijk van buitenaf te verbinden met de OpenShift image registry? ​ ===
 +Dat kan inderdaad. Op deze manier kun je de images die je hebt gebouwd in Openshift lokaal debuggen. ​
 +Log in op de web-interface,​ klik rechtsboven op je username. En klik op ''​copy login command'':​
 +{{:​chp:​pasted:​20200221-111205.png| }}
 +
 +Voer vervolgens het volgende commando uit, hiermee log je in op de registry van Openshift via je user-token (oc whoami -t):
 +<code bash>​echo $(oc whoami -t) | docker login -u openshift --password-stdin https://​ose-registry.chp.npohosting.nl</​code>​
 +Eenmaal ingelogd kun je images naar je lokale docker-omgeving halen via:
 +<code bash>
 +docker pull ose-registry.chp.npohosting.nl/<​project>/<​image>​
 +</​code>​
 +Om er achter te komen wat je nou precies bij project en image moet invullen kun je, als je in het juiste project zit, de details van de images opvragen via:
 +<code bash>
 +oc get imagestream
 +NAME                   ​DOCKER REPO                                                                   ​TAGS ​    ​UPDATED
 +alpine ​                ​docker-registry.default.svc:​5000/​voorbeeldprojectje/​alpine ​                   3.11     6 weeks ago
 +</​code>​
 +Vervang ''​docker-registry.default.svc:​5000''​ door ''​ose-registry.chp.npohosting.nl'',​ en let ook op wat er bij ''​tag''​ staat. Bijvoorbeeld:​
 +<code bash>
 +docker pull ose-registry.chp.npohosting.nl/​voorbeeldprojectje/​alpine:​3.11
 +</​code>​
 +Het is technisch mogelijk om ook images te pushen, maar dat is meestal een slecht idee:
 +
 +<fs x-small>//"​Using only commits is bad if you lose track of how to rebuild your image. You don't want to be in the state that you can't rebuild the image. This final state is here called the golden image as the image will be your only reference, starting point and ending point at each stage. If you loose it, you'll be in a lot of trouble since you can't rebuild it. The fatal dead end is that one day you'll need to rebuild a new one (because all system lib are obsolete for instance), and you'll have no idea what to install... ending in big loss of time."//</​fs>​
 +
 +=== Moet ik als ontwikkelaar ook containers kunnen bouwen en goed zijn met Docker? ===
 +Als je onze templates en die van OpenShift zelf gebruikt, hoeft dat niet. Wij raden ook aan om die zoveel mogelijk te gebruiken. ​
 +
 +=== Waar moet ik op letten als ik op zoek ben naar een container op een registry zoals Docker-hub? ===
 +
 +Allereerst is het belangrijk om te beseffen dat als je een ''​docker pull''​ of ''​docker run''​ uitvoert, je een binary binnenhaalt. Iedereen kan zijn images op docker-hub zetten dus kwaliteit is niet gegarandeerd. Voor wat meer zekerheid hebben we een aantal belangrijke tips:
 +  - Gebruik bij voorkeur de templates (en dus ook de images) die wij hebben gemaakt.
 +  - Gebruik bij voorkeur "​official images"​ en images van "​verified publishers"​.
 +  - Vermijd images waarvan de volledige dockerfile (en artifacts) niet beschikbaar zijn. 
 +  - De containers moeten "​rootless"​ kunnen werken, dus zonder root-user en zonder root-rechten. Als de dockerfile beschikbaar is kun je, waar nodig, de image aanpassen zodat deze "​rootless"​ kan werken. ​
 +Bij official images en "​verified publishers"​ is de documentatie meestal op orde en zijn ook alle docker-files beschikbaar waarmee je zelf de image kan bouwen of aanpassen. ​
 +  - Let op of de image goed wordt onderhouden (en dus recent updates heeft gekregen).
 +  - Kijk of er (goede) documentatie voor te vinden is. Vermijd images zonder beschrijving/​documentatie
 +  - Let bij de dockerfile op de "​FROM"​ statement; dit is een base-image, zie toelichting. ​
 +
 +Een base-image vormt de basis waarop een image wordt gebouwd. Dit is vergelijkbaar met een Linux-distributie. Het is een probleem als er gebruik gemaakt wordt van een oude distributie of als dit een volledige distributie is die niet geoptimaliseerd is voor container gebruik. Met (te) grote base-images worden allerlei zaken meegeleverd die niet nodig zijn om de applicatie te draaien. Al die extra dingen kunnen een potentieel security lek bevatten en moeten worden geüpdatet. ​
 ====== Developer omgeving ====== ====== Developer omgeving ======
  
Line 21: Line 62:
  
 ====== Security ====== ====== Security ======
-FIXME+OpenShift heeft een aantal security-maatregelingen aan boord, de officiele documentatie zegt bijvoorbeeld het volgende over: 
 + 
 + //"​OpenShift Container Platform enables organizations to meet security, privacy, compliance, and governance requirements."//​ 
 + 
 +[[https://​docs.openshift.com/​container-platform/​4.2/​release_notes/​ocp-4-2-release-notes.html|Bron]] 
 + 
 +Het voert helaas te ver om alle beveiligingsmaatregelen hier te behandelen, maar voor het deployen van applicaties kan het handig zijn om te weten wat ''​rootless containers''​ zijn. \\ 
 + 
 +== Rootless containers == 
 +Omwille van de veiligheid mogen containers in OpenShift niet als de user ''​root''​ draaien maar moeten hun eigen user hebben. Vandaar de term '​rootless'​. Onze templates en die van OpenShift zelf zijn gebouwd om niet als user '​root'​ te draaien. \\ 
 +Rootless betekend bijvoorbeeld ook dat de processen in de container niet op port 80 of andere ports onder 1024 mogen draaien, want daarvoor moet je root-rechten voor hebben. \\ 
 +In de praktijk werken je sites en applicaties binnen openshift gewoon wel op port 80 en 443 met http/https want alle connecties lopen via [[chp:​concepten:​service|services]] en [[chp:​concepten:​route|routes]].  
 +\\ 
 +Rootless containers worden steeds meer gemeengoed, op het moment van schrijven is rootless mode ook als experimentele functie beschikbaar voor Docker. Steeds meer containers worden ingericht om rootless te kunnen draaien. ​
  
 ====== Kosten ====== ====== Kosten ======
Line 28: Line 82:
 We zullen een aantal categorieën hebben waar de kosten in gaan vallen. We zullen een aantal categorieën hebben waar de kosten in gaan vallen.
  
-===== Compute ​=====+=== Compute ===
 In het nieuwe platform is het niet meer nodig om vooraf capaciteit in te kopen, hierdoor willen we gaan factureren op basis van daadwerkelijke kosten ipv potentiële piek vermogen. \\ In het nieuwe platform is het niet meer nodig om vooraf capaciteit in te kopen, hierdoor willen we gaan factureren op basis van daadwerkelijke kosten ipv potentiële piek vermogen. \\
 Dit houd in dat we willen factureren op CPU en Geheugen verbruik per uur en hierdoor omroepen betere controle krijgen over de kosten per site. \\ Dit houd in dat we willen factureren op CPU en Geheugen verbruik per uur en hierdoor omroepen betere controle krijgen over de kosten per site. \\
Line 35: Line 89:
 dit omzetten naar facturatie op basis van verbruik. dit omzetten naar facturatie op basis van verbruik.
  
-===== Storage ​=====+=== Storage ===
 Zoals nu al voor de meeste omroepen gebeurt zal de facturatie van de storage op basis van verbruik zijn. Zoals nu al voor de meeste omroepen gebeurt zal de facturatie van de storage op basis van verbruik zijn.
  
-===== Netwerk verkeer ​=====+=== Netwerk verkeer ===
 In het huidige platform leven we op het NPO netwerk, hier betalen we niet voor verbruikt verkeer maar voor de aansluitingen naar de Internet Exchanges. \\ In het huidige platform leven we op het NPO netwerk, hier betalen we niet voor verbruikt verkeer maar voor de aansluitingen naar de Internet Exchanges. \\
 Vanuit de cloud hebben we helaas niet die optie en wordt hier de traffic op verbruik gefactureerd. Vanuit de cloud hebben we helaas niet die optie en wordt hier de traffic op verbruik gefactureerd.
Line 44: Line 98:
 Om de kosten lager te houden bieden we een Static Asset CDN aan op het NPO netwerk. we hebben berekend dat 80~90% van het verkeer van omroep websites statische content is en als een omroep deze vanuit het NPO netwerk kan uitserveren dan zal dit een potentiële besparing van 50% op de netwerkkosten zijn. Om de kosten lager te houden bieden we een Static Asset CDN aan op het NPO netwerk. we hebben berekend dat 80~90% van het verkeer van omroep websites statische content is en als een omroep deze vanuit het NPO netwerk kan uitserveren dan zal dit een potentiële besparing van 50% op de netwerkkosten zijn.
  
-===== Cloud Diensten ​=====+=== Cloud Diensten ===
 De extra afgenomen cloud diensten zullen vrijwel 1-op-1 door gefactureerd worden, hier zal een laag percentage bovenop liggen tbv bijkomstige administratieve kosten hiervan te dekken. De extra afgenomen cloud diensten zullen vrijwel 1-op-1 door gefactureerd worden, hier zal een laag percentage bovenop liggen tbv bijkomstige administratieve kosten hiervan te dekken.
  
  
 ====== Huidige omgeving : Appcluster ====== ====== Huidige omgeving : Appcluster ======
-===== Support Appcluster ===== 
 Support van het huidige appcluster blijft op niveau zoals dat altijd is geweest, we blijven updates voor uitvoeren volgens ons maandelijkse schema. Support van het huidige appcluster blijft op niveau zoals dat altijd is geweest, we blijven updates voor uitvoeren volgens ons maandelijkse schema.
  
-===== End-of-Life Appcluster ​===== +=== End-of-Life Appcluster === 
-Het appcluster zal minimaal nog tot eind 2020 actief blijven, na deze tijd raakt de hardware afgeschreven en er is geen planning voor nieuwe investeringen in hardware.\\ +Het appcluster zal tot 31 december 2021 actief blijven, na deze 
-Dit houd niet in dat het Appcluster dan ook uitgezet wordt, we zullen het Appcluster blijven ondersteunen.\\  +tijd is de hardware afgeschreven en er is geen planning voor nieuwe 
-Echter mocht het niet haalbaar zijn om het Appcluster voor eind 2020 leeg te hebben dan zullen we naar andere oplossingen gaan zoeken. +investeringen in hardware.
- +
- +
  
 +De bedoeling is om daarna het Appcluster uit te zetten. Mocht
 +echter tegen die tijd blijken dat dit niet haalbaar is dan zullen
 +we naar andere oplossingen zoeken. Echter, dit zal vermoedelijk ook
 +inspanningen van de kant van de gebruikers vragen, omdat we niet van
 +alle software zoals die nu in het appcluster draait kunnen garanderen
 +dat deze na 2021 ook nog beschikbaar zal zijn.
  
  • chp/faq.1535711552.txt.gz
  • Last modified: 2020/10/17 11:11
  • (external edit)