Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| appcluster-hosting [2019/09/23 11:00] – [Logrotatie van applicatie logs] matthias | appcluster-hosting [2026/05/27 14:01] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Appcluster hosting bij NPO Hosting en Streaming ====== | ||
| + | |||
| + | Appcluster hosting bij NPO Hosting en Streaming is een vorm van | ||
| + | managed hosting. Wij beheren de | ||
| + | hardware, het OS, loadbalancers, | ||
| + | De applicatie zelf (denk aan php, ruby, java of python code) wordt door u beheerd. | ||
| + | We bieden twee types webhosting aan en een testomgeving: | ||
| + | |||
| + | * [[: | ||
| + | * [[: | ||
| + | * gratis((bij afname van een hosting pakket zit standaard ook een testomgeving)) | ||
| + | |||
| + | Prijzen kunnen opgevraagd worden via https:// | ||
| + | |||
| + | Wij richten ons op hosting van: | ||
| + | * Apache en Nginx | ||
| + | * PHP(-fpm), Ruby (Rails), Java (Tomcat), Python, NodeJS | ||
| + | * Mysql, Redis, Postgresql en couchDB databases | ||
| + | |||
| + | |||
| + | Andere setups kunnen we vaak ook hosten, afgelopen jaren hebben wij waar nodig passend maatwerk geleverd. | ||
| + | |||
| + | Het kan zijn dat deze vorm van managed hosting "te veel" voor uw | ||
| + | doeleinden is, omdat u zelf dieper wilt kunnen ingrijpen in het OS, | ||
| + | bijvoorbeeld door zelf makkelijk extra software te kunnen installeren. | ||
| + | In dat geval is ons [[:chp]] misschien geschikter voor u. | ||
| + | |||
| + | |||
| + | ====== Quick Start ====== | ||
| + | Om ons platform (goed) te kunnen gebruiken is het belangrijk om van een aantal dingen op te hoogte te zijn. | ||
| + | |||
| + | |||
| + | * [[sterretje-cluster: | ||
| + | * [[sterretje-cluster: | ||
| + | * [[: | ||
| + | * [[: | ||
| + | * [[: | ||
| + | * [[: | ||
| + | |||
| + | |||
| + | |||
| + | Voor het aanleveren van bepaalde typen applicaties hebben wij de volgende checklists | ||
| + | * [[sterretje-cluster: | ||
| + | * [[sterretje-cluster: | ||
| + | * [[sterretje-cluster: | ||
| + | * [[sterretje-cluster: | ||
| + | * [[sterretje-cluster: | ||
| + | |||
| + | |||
| + | |||
| + | ====== Standaard Software ====== | ||
| + | Alle omgevingen zijn zoveel mogelijk gebaseerd op open source software | ||
| + | componenten: | ||
| + | Wij zijn namelijk overtuigd van de kracht van open source en bij NPO Hosting en Streaming is er de nodige kennis aanwezig van de gebruikte open source componenten. | ||
| + | |||
| + | ^ Component ^ Gebruikte software ^ Opmerkingen ^ | ||
| + | | OS | CentOS 8 stream, 64 bit | [[https:// | ||
| + | | HA-Loadbalancer | Keepalived | Loadbalancing wordt verzorgd door Keepalived dmv Direct Routing. | ||
| + | | Statische webserver / front-Proxy | Apache-2.4 + mod_worker of Nginx | Deze front-proxies kunnen statische data (html, plaatjes, .css, .js etc.) snel en efficient uitserveren; | ||
| + | | Applicatieserver | Apache-2.4 + mod_prefork, | ||
| + | | PHP | php(-fpm) | Voor PHP kunnen wij [[sterretje-cluster: | ||
| + | | Database | MySQL(MariaDB of Mysql) of Postgresql | Wij bieden alleen versies aan die updates ontvangen | | ||
| + | | Mail | postfix | Mail [[mail: | ||
| + | |||
| + | ===== Extra software in het appcluster ===== | ||
| + | In het appcluster is naast de gewone LAMP stack (en Nginx) ook andere hosting mogelijk van bijvoorbeeld Java, Ruby on Rails en NodeJS. Daartoe zijn de volgende software componenten | ||
| + | beschikbaar: | ||
| + | |||
| + | ^ Component ^ Versie ^ Opmerkingen ^ | ||
| + | | Java | openjdk-8 en -11 | Normaliter bieden we alleen de runtime environment (jre) aan. Op de upload servers is de volledige jdk beschikbaar | | ||
| + | | Servlet container | tomcat-8.5 en -9 | | | ||
| + | | [[https:// | ||
| + | | [[https:// | ||
| + | | [[https:// | ||
| + | | ElasticSearch | 7.x | | | ||
| + | | [[https:// | ||
| + | | Overig | - | Andere tools als ImageMagick, | ||
| + | |||
| + | In overleg met NPO Hosting en Streaming kunnen eventueel extra ondersteunende pakketten geinstalleerd worden. De omgeving is op een andere manier ingericht dan een traditionele één-applicatie-per-(virtuele)serveromgeving. Bij ons neem je geen (virtuele) server af maar in feite een set resources, gekoppeld aan een setje software. | ||
| + | |||
| + | De software heeft daarvoor een (kleine) aanpassing nodig om ervoor te zorgen dat je bijvoorbeeld meerdere Apache processen kan draaien op een server zonder dat deze elkaar in de weg zitten of de hele server kunnen claimen. Die processen noemen we dan instanties (meerder instanties van software X). Dit is vooral relevant voor de beheerders van NPO Hosting en Streaming, maar als websitebouwer betekend het: | ||
| + | * Je hebt een centrale upload-server voor je site, de juiste instanties lezen je code in en serveren het uit. Je dus logt niet direct in op de webserver. | ||
| + | * Wij hebben geen standaard package manager zoals yum of apt-get. Wij compileren zelf de software, met de nodige aanpassingen. | ||
| + | * We kunnen meerdere versies van dezelfde software draaien op dezelfde server. Het up- of downgraden kan met het omzetten van een snelkoppeling. | ||
| + | * High availability; | ||
| + | |||
| + | Een wat meer in-depth uitleg van de opbouw van de omgeving [[sterretje-cluster: | ||
| + | |||
| + | |||
| + | ====== De Upload-sites-server ====== | ||
| + | De upload-server is te bereiken vanaf upload-sites of upload-testsites voor de testomgeving. Dit is een server die verbonden is met de centrale storage en is bedoeld -zoals de naam laat zien- om sites en content daarvan te uploaden. Als ontwikkelaar heb je, als het goed is, een account voor upload-sites. Want het grote publiek heeft geen toegang tot dit systeem. | ||
| + | |||
| + | De servers lezen alles vanaf de centrale storage in en schrijven daar ook hun logs in weg. Als ontwikkelaar kun je de upload-server hiervoor gebruiken: | ||
| + | * Het plaatsen/ | ||
| + | * Bekijken van [[: | ||
| + | * Via upoad-sites kun je een sql connectie leggen naar je database. | ||
| + | * Shell toegang((Let wel, dit is geen shell toegang tot de webservers zelf)) (afhankelijk of je een ftp of sftp account hebt). Bijvoorbeeld om een cron-job aan te maken of via de commandline dingen te kopieren, te verplaatsen etc. | ||
| + | |||
| + | Om zelf (f)cron jobs te kunnen aanmaken hebben wij speciale [[: | ||
| + | ===Sftp=== | ||
| + | Als NPO Hosting en Streaming hebben we een duidelijke voorkeur dat men gebruik maakt van SFTP (d.m.v. ssh-keys). FTP is een oud en onveilig protocol wat alle data, ook wachtwoorden onversleuteld verstuurd. Als je verbinding niet beveiligd is liggen die gegevens voor het oprapen. | ||
| + | |||
| + | |||
| + | ====== De Frontproxy-, | ||
| + | Al het webverkeer wordt afgehandeld door de frontproxies, | ||
| + | alle requests die uit de cache geserveerd kunnen worden hoeven niet door | ||
| + | een applicatieserver afgehandeld te worden, wat +/- een factor 100 (!) | ||
| + | in performance kan schelen. (een frontproxy kan maximaal +/- 5000 hits/ | ||
| + | afhandelen, een tomcat applicatieserver +/- 50) | ||
| + | |||
| + | Bij php hosting is er geen sprake van een aparte applicatieserver. Daar | ||
| + | verzorgt de webserver zelf het afhandelen van php bestanden. | ||
| + | Echter, het blijkt dat php serving ook verbetert als dat achter een | ||
| + | proxy gestopt wordt. In die zin krijgt de php-enabled server dus een rol | ||
| + | als een applicatieserver. | ||
| + | |||
| + | Ondertussen is alle file access die hierbij nodig is via NFS naar de storage | ||
| + | server (bijvoorbeeld voor een database server die z'n datafiles moet | ||
| + | raadplegen). Om het NFS verkeer te minimaliseren zijn alle cluster nodes | ||
| + | uitgerust met veel geheugen, zodat de meeste file access vanuit het geheugen | ||
| + | gedaan kan worden en niet via NFS hoeft. | ||
| + | |||
| + | |||
| + | ====== Logrotatie van applicatie logs ====== | ||
| + | Dit kan gebruikt worden om logfiles die door webapplicaties weggeschreven worden dagelijks te laten roteren. Dit gebeurt op eenzelfde wijze als ook voor bijvoorbeeld Apache logfiles het geval is. | ||
| + | |||
| + | Wanneer de logfiles op de juiste manier worden weggeschreven, | ||
| + | |||
| + | Wat is er voor nodig: | ||
| + | * Laat de logfiles wegschrijven onder / | ||
| + | * Het logfile moet door de webserver zijn aangemaakt. Dwz, de owner van het file moet een webserver instantie zijn. Files aangemaakt bijv. vanuit een cronjob hebben als owner een ssh account. | ||
| + | |||
| + | Indien aan deze voorwaarden wordt voldaan, wordt er logrotatie uitgevoerd. In alle andere gevallen worden de logfiles met rust gelaten. | ||
| + | |||
| + | Wanneer logfiles geroteerd worden, worden deze in zip-formaat geplaatst onder / | ||
| + | |||
| + | Omdat een webapplicatie door meerdere webserver instanties wordt uitgeserveerd, | ||
| + | |||
| + | Het analyseren van de log-files kan gemakkelijk via GoAccess. [[.: | ||