Differences

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

Link to this comparison view

Both sides previous revision Previous revision
chp:algemeen [2019/03/14 16:28]
matthias [Container Technieken]
chp:algemeen [2019/04/26 10:34] (current)
Line 1: Line 1:
 +:!: Let op! deze documentatie is nog volop in ontwikkeling :!:
 +\\ \\
 +====== Community Hosting Platform ======
 +
 +Het op OpenShift gebaseerde Community Hosting Platform van NPO stelt omroepen en hun ontwikkelaars in staat om zelfstandig applicaties aan te maken, te deployen en te onderhouden. Het NPO Hosting en Streaming team is er ter ondersteuning en om te voorzien in de benodigde bouwstenen. Naast de voordelen van de hoge mate van zelfstandigheid biedt het platform een verdere scheiding van applicaties en toegangsrechten dan tot nu toe mogelijk was in het bestaande platform. Ook maakt het nieuwe platform de applicaties en de ondersteunende componenten daarvan inzichtelijk. ​
 +
 +
 +
 +
 +==== Containers en het huidige hostingsplatform (Appcluster) ====
 +
 +{{ :​chp:​algemeen:​containers_vs_traditional.png |}}
 +In de basis zijn containers geisoleerde processen die naast elkaar op een systeem/​server draaien. Het huidige hostingsplatform werkt op een vergelijkbare manier. Bijvoorbeeld:​ meerdere apache, nginx en mysql processen draaien naast elkaar. Daarnaast is er ook een zekere mate van isolatie zodat deze processen elkaar niet in de weg kunnen zitten. Bij ons draait Apache en Nginx met read-only storage voor alle code, data zoals plaatjes worden gescheiden en ergens anders weggeschreven. Dit concept zien we ook terug bij containers. \\
 +Wat is dan het verschil en waarom zou je willen overstappen op een "​echt"​ container platform?\\
 +  * Het huidige platform vereist (veel) handwerk om applicaties als losse "​instanties"​ te draaien.
 +  * De isolatie van processen in een '​echt'​ containerplatform is beter.
 +  * Nieuwe containerplaformen bieden nieuwe mogelijkheden voor zowel beheer als ontwikkeling. Met het openshift dashboard is kunnen wij ook eindredacties meer inzicht geven in het nieuwe hostingsplatform. ​
 +  * Niet het wiel opnieuw uitvinden. Er zijn nu tools en frameworks beschikbaar om containers te maken, te beheren en op een High Availible manier te draaien. ​
 +
 +
 +===== Kubernetes =====
 +
 +Kubernetes is een framework om containers aan te sturen en om ze te laten draaien op meerdere machines; dit proces heet (container) orchestration. Kubernetes heeft nog meer mogelijkheden,​ maar in de context van OpenShift is dit de belangrijkste functionaliteit. \\
 +{{:​chp:​algemeen:​orchestrator.png?​nolink&​400 |}}
 +
 +Machines waar containers op kunnen draaien heten nodes. Kubernetes zorgt voor een verdeling van containers over de beschikbare nodes, afhankelijk van het gebruik kunnen de hoeveelheid containers worden bijgeschaald.\\ ​
 +Kubernetes zorgt daarnaast voor netwerkconnectiviteit naar containers toe; Openshift gebruikt hiervoor een eigen oplossing. Kubernetes regelt ook eventuele (persistant) storage voor containers. ​
 +
 +Kubernetes is een erg populaire container orchestrator en wordt door veel grote (IT) organisaties gebruikt. ​
 +
 +\\ \\ \\
 +
 +===== OpenShift =====
 +
 +Openshift bouwt voort op Kubernetes. In het kort is Openshift een kubernetes platform wat geschikt is gemaakt om door meerdere klanten gebruikt te worden. Deze klanten kennen ook weer meerder typen gebruikers met andere rechten. Bijvoorbeeld:​ een redactie heeft andere rechten nodig dan een interne developer en een interne developer heeft weer andere rechten dan een externe. ​
 +
 +Maar Openshift voegt nog meer toe aan kubernetes zoals:
 +  * Verbeterde security
 +  * Coninious integration & continious deployment integratie
 +  * Gebruiksgemak dmv. een portal en tools die het development/​devops proces ondersteunen.
 +
 +
 +Omdat Openshift gebruik maakt van Kubernetes, wat weer gebruik maakt van Docker is er veel overlap qua termen en de betekenissen daarvan. ​
 +^Term^ betekenis ^
 +| Pod | Zelfde als bij Kubernetes: één containter of een verzameling containers die dezelfde resources delen zoals een IP address en persistent storage. |
 +| Route | Openshift-specifiek:​ Dit is een __DNS entry__ die gekoppeld is aan een //service// zodat deze buiten het cluster toegankelijk is. In tegenstelling tot routes bij netwerkapparatuur gaat het hier niet om IP adressen maar om DNS entries. Bijvoorbeeld:​ mycms.project.example.com | 
 +| Service| Een loadbalancer met een vast IP adress die verkeer naar dynamische IP adressen van pods kan sturen. |
 +|Replication (controler) | Dezelfde pod (definitie) meerdere keren tegelijk draaien. Dit wordt ook wel horizontaal schalen genoemd. Het horizontaal schalen gebeurt via de replication controller voor pods die daar geschikt voor zijn. |
 +| Project | In kubernetes heet dit een namespace; dit is een geisoleerde omgeving waarin applicaties kunnen worden gedeployeerd. Projecten zijn afgeschermd op basis van gebruikersaccounts. Op deze manier kun je een (externe) ontwikkelaar toegang verlenen tot projecten.|
 +====== Het Platform ======
 +FIXME
 +
 +===== Cloud =====
 +
 +{{ :​chp:​algemeen:​AWS-service-broker.png?​nolink&​400|}} ​
 +
 +De cloud omgeving wordt gehost in de AWS Cloud, hier wordt de omgeving gehost in 3 availability zones zodat de omgeving tegen het uitvallen van een volledige datacenter beschermd is.
 +In de cloud omgeving is het mogelijk om verschillende diensten van AWS rechtstreeks af te nemen via de catalogus in OpenShift.
 +
 +\\ \\ \\ \\ \\
 +===== Static Asset CDN =====
 +
 +Het Static Asset CDN is een S3-compatible object storage omgeving die gehost wordt op de NPO Infrastructuur. \\
 +Het hosten van deze omgeving op het NPO Infrastructuur geeft als voordeel dat we de content die hierop gehost wordt via het NPO Netwerk uitserveren. ​
 +Dit netwerk heeft rechtstreekse verbindingen met de nederlandse ISP's en hierdoor kunnen we de data heel goedkoop afleveren en een groot deel van de dure traffic kosten in de cloud beperken.
 +Deze omgeving wordt net als de Cloud omgeving gehost op 3 availability zones : Hilversum-NOS,​ Hilversum-MGW en Amsterdam. ​
 +