This is an old revision of the document!


Community Hosting Platform

Community Hosting Platform is een container platform tbv het hosten van omroep applicaties.
Deze nieuwe omgeving wordt deels in de cloud gehost en deels op NPO eigen infrastructuur.
De voordelen hiervan zijn dat we gebruik kunnen maken van de flexibiliteit en extra diensten die de cloud aanbied zoals Machine Learning, Big Data, etc. Verder kunnen we met het aanbieden van een Static Asset CDN de traffic kosten omlaag brengen.

Wat zijn containers ?

Om uit te leggen wat containers zijn moeten we eerst een stukje de geschiedenis in.

In het verleden werden goederen vervoerd in kratten, tonnen en kisten. Het probleem hiervan was dat ieder z'n eigen formaat had en hierdoor moeilijk te stapelen en vast te maken waren. Vooral bij schepen was dit een probleem omdat deze tijdens de tocht over zee en oceaan veel bewegen.

De transport industrie heeft hier een oplossing voor bedacht in de vorm van (zee)containers die allemaal een standaard vorm en maat hebben. De containers zijn door de klanten van de vervoers maatschappijen zelf in te pakken op de manier die voor hun het beste is en het enige waar de vervoers maatschappijen rekening moeten houden is het vervoeren van de container zelf. Hierdoor zijn de containers makkelijk te stapelen op schepen, gaan ze perfect achter een vrachtwagen en passen ze allemaal achter elkaar achter een trein.

Bij applicatie containers gebeurt hetzelfde. De applicaties worden door middel van standaard linux tools en settings in een afgesloten container gestart. Aan de kant van het het platform zien deze er allemaal hetzelfde uit en zijn gemakkelijk te stapelen.

Ontwikkelaars pakken de container in met alles wat ze nodig hebben voor het draaien van de applicatie, hier kunnen ze heel specifiek zijn in welke versies ze nodig hebben en zijn niet meer afhankelijk van wat er al op het systeem staat.

Na het inpakken kunnen ze zelf de container testen op hun machine en vervolgens deze container “shippen” naar het platform waar deze precies hetzelfde draait als op de ontwikkelaars machine.




Container Technieken

FIXME

Containers en het huidige hostingsplatform

In de basis zijn containers geisoleerde processen die naast elkaar op een systeem/server draaien. Het huidige hostingsplatform werkt op een vergelijkbaren 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 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.

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 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.

Het Platform

FIXME

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.

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.

  • chp/algemeen.1535637284.txt.gz
  • Last modified: 2020/03/06 07:53
  • (external edit)