Differences

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

Link to this comparison view

chp:nieuwe-mogelijkheden [2019/07/01 11:43]
chp:nieuwe-mogelijkheden [2019/09/21 22:57] (current)
Line 1: Line 1:
 +====== Wat betekent Openshift voor mij? ======
 +Dit artikel is geschreven voor ontwikkelaars en webmasters die nu al bekend zijn met ons huidige appcluster platform en graag willen weten welke nieuwe mogelijkheden ons nieuwe Openshift platform biedt. Het is handig, maar niet noodzakelijk om bekend te zijn met de [[ https://​hosting.omroep.nl/​chp:​algemeen#​openshift | terminologie ]] van Openshift. ​
 +
 +==== Voordelen voor zowel ontwikkelaars als webmasters: ====
 +
 +
 +=== Cloud(-native) diensten ===
 +Deze nieuwe omgeving draait deels in de cloud en deels op NPO eigen infrastructuur. ​
 +De voordelen hiervan zijn dat we gebruik kunnen maken van de flexibiliteit die de cloud biedt. Daarnaast kunnen we gebruik maken van diensten die cloud providers bieden zoals: Machine Learning, Big Data, cloud native databases etc. 
 +
 +
 +=== Kosten-efficiĆ«nt door slim gebruik te maken van een eigen CDN ===
 +
 +Het uitserveren van content is vaak relatief duur via de cloud; via onze eigen datacentra is dit veel goedkoper. Het on-premmise gedeelte van ons openshift platform zal daarom aanvullend ook dienst doen als CDN om content uit te serveren. Dit bespaart kosten voor het dataverkeer. ​
 +
 +===  Upgrades kunnen per site/​applicatie. ​ ===
 +Het is met het appcluster mogelijk om per '​setje'​ waar meerdere sites in draaien een upgrade te doen van bijvoorbeeld PHP. Dit vereist dat alle sites die in een setje draaien compatible moeten zijn met de nieuwere PHP versie. Doordat binnen OpenShift alle sites in een eigen omgeving draaien is het mogelijk om upgrades per site te doen. 
 +
 +=== Health monitoring op applicatieniveau. ===
 + 
 +Traditionele monitoring kijkt alleen of de onderliggende infrastructuur beschikbaar is en werkt. Met Openshift kun je ook je applicatie monitoren. Dit heet "​health monitoring"​. ​
 +Deze [[https://​docs.openshift.com/​container-platform/​3.11/​dev_guide/​application_health.html |  "​health monitoring"​ ]] kan Openshift ook gebruiken om te bepalen of een nieuwe deployment geslaagd is of niet. Inkomend verkeer van buitenaf, zoals bezoekers op je website, worden pas doorgestuurd naar de nieuwe versie, als de "​health"​ van je nieuwe applicatie goed is. 
 +
 +{{:​chp:​pasted:​20190701-114144.png}}
 +
 +=== Web portal ===
 +Naast de command line is er ook een uitgebreide web portal beschikbaar. Via deze web portal is je omgeving of je project inzichtelijk. Via de web portal zijn ook '​metrics'​ beschikbaar,​ hiermee kun je zien hoeveel systeembronnen een dienst gebruikt.
 +Via de web portal nieuwe kun je applicaties en sites uitrollen, beheren en inzien. ​
 +
 +
 + 
 +===== Wat zijn de veranderingen en verbeteringen van Openshift voor mij als webredacteur?​ =====
 +
 +=== Sites hebben (standaard) hun eigen applicatieservers en databases ===
 +Binnen de huidige omgeving delen sites bepaalde resources met andere sites zoals PHP workers en de database. Binnen Openshift is het makkelijk en raadzaam om deze resources per site aan te maken. ​
 +
 +=== Projecten ===
 +
 +{{:​chp:​pasted:​20190701-114215.png}}
 +
 +Alles wat je aanmaakt binnen OpenShift valt binnen een project. Dit leent zich natuurlijk erg goed voor sites en apps die op projectbasis worden opgeleverd. Maar dat niet alleen, ook langlopende sites kun je in een project zetten. ​
 +Dit betekent dat alle "​resources"​ die bij elkaar horen, ook bij elkaar horen in OpenShift.
 +
 +Dit zorgt voor meer overzicht, maar het voorkomt ook dat je per ongeluk resources zou bewerken of verwijderen van een ander project. Want projecten zijn niet alleen een indeling, het is ook een stukje afscherming.
 +
 +Doordat alles binnen een project zit is het heel makkelijk om een (tijdelijk) project te verwijderen. Dit voorkomt ook dat er '​rommel'​ achter blijft of dat je lang moet uitzoeken wat er allemaal bij een oude site hoort.
 +Ook kun je gemakkelijk regelen wie er allemaal toegang heeft tot projecten, zoals externe developers.  ​
 +
 +
 +=== Role Based Access Control (RBAC) ​ ===
 +De naam zegt het eigenlijk al: afhankelijk van de //rol// heb je toegang tot resources binnen OpenShift. ​
 +Binnen een project kun je zelf developers en andere betrokken partijen toevoegen en verwijderen uit je project. ​
 +
 +Beschikbare rollen :
 +^ Role  ^ Omschrijving ^
 +| admin | Een gebruiker die edit rechten heeft binnen het project en de mogelijkheid heeft om project memberships aan te passen |
 +| edit  | Een gebruiker die meeste resources kan maken en aanpassen binnen het project, maar kan niet de project memberships aan passen |
 +| view  | Een gebruiker die het project kan bekijken, maar kan geen resources aanpassen en kan geen secrets of memberships zien in het project |
 +
 +[[https://​hosting.omroep.nl/​chp:​cli#​gebruikers_rechten_geven_of_ontnemen_binnen_projecten | Verdere uitleg over rollen binnen Openshift ​
 +]]
 +
 +
 +===== Wat zijn de veranderingen en verbeteringen van Openshift voor mij als ontwikkelaar?​ =====
 +
 +=== Omgevingen zijn reproduceerbaar ===
 +Resources die je aanmaakt kun je importeren uit een "​resource definition"​ in de vorm van een YAML of JSON file. Resources die je hebt aangemaakt kun je ook weer exporteren in de vorm van een YAML of JSON file.
 +
 +
 +
 +=== Updates zijn makkelijk te testen ===
 +Doordat je omgeving makkelijk te reproduceren is kun je ook gemakkelijk testen of alles werkt met andere parameters zoals een nieuwere PHP versie. ​
 +
 +=== Templates ===
 +
 +<code yaml>
 +
 +- description:​ The hostname/​dns entry that will route to the proxy. ​
 +  displayName:​ Application Hostname
 +  name: APPLICATION_DOMAIN
 +- displayName:​ NGINX Docker tag
 +  name: NGINX_VERSION
 +  required: true
 +
 +</​code>​
 +
 +Templates zorgen ervoor dat je alleen je code hoeft aan te leveren en zelf geen kubernetes-resources (zoals pods) hoeft aan te maken. Het is vergelijkbaar met hetzelfde niveau van "​ontzorging"​ als via het appcluster. Maar nu kun je het ook zelf 'on the fly' aanmaken. Templates kun je gebruiken via de web-interface,​ maar ook via de command-line. ​
 +
 +
 +=== Projecten ===
 +Binnen je project kun je alle resources aanmaken die je nodig hebt om je applicatie uit te rollen. Dit maakt alles overzichtelijk en voorkomt dat je dingen verwijderd of uitrolt binnen andere (productie)omgevingen;​ zolang je in het juiste project zit natuurlijk.
 + 
 +=== Meer ondersteuning voor CI/CD ===
 +Voorheen was een beperkte integratie mogelijk via de upload-sites server van het platform. Maar met OpenShift zijn de mogelijkheden voor CI/CD veel uitgebreider. Zo kun je een complete Jenkins pipeline in OpenShift zelf te draaien. ​
 +
 +
 +=== Rolling updates ===
 +
 +Openshift maakt gebruik van een deployment framework waarmee je nieuwe versie van je applicatie naast de huidige versie wordt opgebouwd, terwijl bezoekers nog steeds naar de huidige versie gestuurd worden. ​ Zodra de nieuwe versie is opgebouwd wordt het verkeer omgeleid naar de nieuwere versie. Daarna wordt de oude versie weer afgebouwd. ​
 +
 +