Vandaag zijn wij aan de gang gegaan met een aantal vragen van een klant, betreffende de bij ons gehoste server. Eén van deze vragen betrof een vraag over backups. Op dit moment maakt de virtuele machine van de klant gebruik van twee hardeschijven. Op één van deze hardeschijven staat een /data partitie waarop websites en sql backups worden weggeschreven. Op dit moment worden deze files slechts lokaal op de VM gebackupped, en niet extern weg geschreven. Aangezien de klant er om vroeg hoe deze backups waren geregeld, hebben wij besloten om voorlopig wekelijks een externe hardeschijf aan te sluiten op de server, waarop we de data van deze partitie overcopieren. Hiervoor zijn wij naar Hoofddorp gestuurd om twee hardeschijven aan te schaffen voor deze backup workaround. Wekelijks zal er dus iemand naar het datacenter moeten rijden om de hardeschijven weer te verwisselen.
Op termijn zal er een oplossing ingevoerd worden, waarbij de data automatisch zal worden gebackupped naar een externe locatie. Dit voorkomt het verlies van gegevens bij uitval van de virtuele machine.
Later vandaag ben ik nog bezig geweest aan mijn C# applicatie. Het auto registratie gedeelte is nu zo goed als klaar. De zoek functie in deze module werkt, evenals het delete gedeelte. Wat nu nog te doen staat is toepassen van een aantal checks om ook deze module fool proof te maken, en er geen onzin ingevuld kan worden.
Maar voor nu: weekend . . .
vrijdag 25 november 2011
donderdag 24 november 2011
Dag 59: Virtual hosts Apache / C# app auto registratie gedeelte
Vandaag ben ik de dag begonnen met de aanvraag van een klant. Deze klant heeft een contract bij ons voor een Windows server, om al hun websites op te hosten. Een eigenschap aan Windows en IIS is, is dat het eigelijk alleen functioneert op .NET. De klant heeft enige tijd geleden bij ons drie domeinnamen geregistreerd voor één van hun klanten. Vandaag wilde zij ons de bestanden en databases voor deze websites aanleveren, zodat wij deze kunnen hosten. Na wat heen en weer gemail bleken de betreffende websites PHP websites te wezen, en dus geen .NET websites. Aangezien PHP onder IIS nooit zo zal draaien als onder Apache, hebben we dit terug gekoppeld aan de klant via de Sales afdeling. Als we de aanvraag van deze klant willen uitvoeren, zullen we deze op één van onze Linux machines moeten hosten. Dit brengt natuurlijk extra kosten met zich mee, aangezien het buiten het contract tussen de klant en I-Company om moet gebeuren.
Na het akkoord van deze klant ben ik aan de gang gegaan op onze Linux server. Hierop draaien al meerdere PHP websites in combinatie met Apache2 en MySQL.
Aangezien er meerdere websites op deze omgeving actief zijn, zal er gewerkt moeten worden met Virtual Hosts onder Apache. Het principe is eigelijk hetzelfde als onder IIS. Dankzij de verschillende bindings die in IIS in te stellen voor de verschillende websites, is voor de server gemakkelijk te bepalen door welke website een hostheader moet worden afgevangen.
Via Apache werkt dit hetzelfde met de virtuele hosts, alleen wordt het op de terminal uitgevoerd. Via de sites-available directory in Apache2, is een virtual host file aan te maken waarin de site directory, domeinnaam en aliasen en dergelijke in worden gespecificeerd, van een betreffende website. Vervolgens is via a2ensite www.domein.nl de site te enablen, en dient apache gereload te worden. Hierna heb ik de DNS records van het betreffende domein gepoint naar onze server. Het resultaat is dat alles naar behoren werkt, en de website aanvragen correct worden afgevangen door Apache. Vervolgens de bestanden van de website geupload, en de MySQL database middels een SQL dump geïmporteerd.
Na bovenstaand klusje ben ik nog aan de gang geweest met enkele andere tickets, die wat minder tijd in beslag namen. Dit waren bijvoorbeeld een aantal verzoeken van de programmeurs een nieuwe development omgeving in te richten, en wat releases online te plaatsen.
's Middags ben ik nog een tijdje aan de slag gegaan met mijn C# applicatie. Het telefoon registratie systeem was al afgerond en compleet werkend. Vandaag ben ik aan de gang gegaan dit zelfde te maken, onder een ander tabblad binnen de applicatie, voor de auto registratie. Gezien de omvang van de code die ik al reeds heb opgebouwd, was het soms nog ingewikkeld te achterhalen hoe iets ook alweer in elkaar zat. Uiteindelijk ben ik wel zover gekomen dat de basic functionaliteiten weer aanwezig zijn. Het toevoegen, bewerken en deleten van een auto record is nu mogelijk.
Later zal ik nog aan de slag gaan met de zoek functie, en natuurlijk het fool proof maken van deze module. Het zal dan niet meer mogelijk zijn om onzinnige dingen in te voeren, zoals bijvoorbeeld het registreren van een uitgeleende auto en geen naam van de persoon opgeven.
Na de autoregistratie module staan nog de VPN token registratie en de backup module op het programma. De VPN token registratie zal ongeveer hetzelfde werken als de telefoon en auto registratie. De backup module zal nog even een uitzoek werken worden. Het lieft dient namelijk in te stellen zijn via de applicatie, om onder andere aan te geven dat er dagelijks of wekelijks een backup van de database gemaakt dient te worden.
Na het akkoord van deze klant ben ik aan de gang gegaan op onze Linux server. Hierop draaien al meerdere PHP websites in combinatie met Apache2 en MySQL.
Aangezien er meerdere websites op deze omgeving actief zijn, zal er gewerkt moeten worden met Virtual Hosts onder Apache. Het principe is eigelijk hetzelfde als onder IIS. Dankzij de verschillende bindings die in IIS in te stellen voor de verschillende websites, is voor de server gemakkelijk te bepalen door welke website een hostheader moet worden afgevangen.
Via Apache werkt dit hetzelfde met de virtuele hosts, alleen wordt het op de terminal uitgevoerd. Via de sites-available directory in Apache2, is een virtual host file aan te maken waarin de site directory, domeinnaam en aliasen en dergelijke in worden gespecificeerd, van een betreffende website. Vervolgens is via a2ensite www.domein.nl de site te enablen, en dient apache gereload te worden. Hierna heb ik de DNS records van het betreffende domein gepoint naar onze server. Het resultaat is dat alles naar behoren werkt, en de website aanvragen correct worden afgevangen door Apache. Vervolgens de bestanden van de website geupload, en de MySQL database middels een SQL dump geïmporteerd.
Na bovenstaand klusje ben ik nog aan de gang geweest met enkele andere tickets, die wat minder tijd in beslag namen. Dit waren bijvoorbeeld een aantal verzoeken van de programmeurs een nieuwe development omgeving in te richten, en wat releases online te plaatsen.
's Middags ben ik nog een tijdje aan de slag gegaan met mijn C# applicatie. Het telefoon registratie systeem was al afgerond en compleet werkend. Vandaag ben ik aan de gang gegaan dit zelfde te maken, onder een ander tabblad binnen de applicatie, voor de auto registratie. Gezien de omvang van de code die ik al reeds heb opgebouwd, was het soms nog ingewikkeld te achterhalen hoe iets ook alweer in elkaar zat. Uiteindelijk ben ik wel zover gekomen dat de basic functionaliteiten weer aanwezig zijn. Het toevoegen, bewerken en deleten van een auto record is nu mogelijk.
Later zal ik nog aan de slag gaan met de zoek functie, en natuurlijk het fool proof maken van deze module. Het zal dan niet meer mogelijk zijn om onzinnige dingen in te voeren, zoals bijvoorbeeld het registreren van een uitgeleende auto en geen naam van de persoon opgeven.
Na de autoregistratie module staan nog de VPN token registratie en de backup module op het programma. De VPN token registratie zal ongeveer hetzelfde werken als de telefoon en auto registratie. De backup module zal nog even een uitzoek werken worden. Het lieft dient namelijk in te stellen zijn via de applicatie, om onder andere aan te geven dat er dagelijks of wekelijks een backup van de database gemaakt dient te worden.
woensdag 23 november 2011
Dag 58: IBM probleem / linux issue
Vandaag ben ik vooral weer aan de slag geweest om oude openstaande requests te verwerken. De reden dat deze requests niet direct door ons zijn verwerkt is omdat ze wat ingewikkelder zijn, en/of we input van anderen nodig hebben.
Zo was er onder andere een request dat al een week in het helpdesk systeem stond. Dit betrof een probleem met een IBM pakket genaamd Unica. Dit is een pakket dat speciaal voor deze klant door IBM is opgezet op hun servers (die bij ons in het beheer zijn).
Van één van deze servers werkte de webinterface van het software pakket niet meer.
Dit software pakket draait echter niet op een webserver zoals IIS, maar heeft een eigen ingebouwde webserver (webSphere).
Bij ons was daarom al een tijdje de vraag wie verantwoordelijk is voor de support voor dit probleem. Uiteindelijk is gebleken dat I-Company slechts het beheer verzorgt van de server en het OS, en issues met het Unica pakket voor rekening zijn van IBM zelf. Aangezien dit een probleem op applicatie niveau betrof, heb ik dit terug gekoppeld aan de klant met de vraag het door te spelen aan IBM.
Later vandaag kreeg ik een telefoontje van een externe partij die voor een klant van ons een upgrade uitvoerd op een website van hun.
Deze server is in ons beheer maar de ontwikkeling van websites en dergelijke die erop draaien verzorgen zij zelf.
Deze externe partij belde op vanwege een probleem bij het upgraden van het CMS van één van de websites. Doordat deze programmeur slechts blanco pagina's te zien kreeg in plaats van error pagina's met feedback, belde hij mij even op om te toegang te vragen tot de log bestanden van apache. Deze server betreft een linux machine. Aangezien het niet de bedoeling is dat iedereen lees rechten op deze log heeft, heb ik de gebruiker, die tevens wel FTP toegang heeft, lid gemaakt van de apache groep (www-data). Deze heeft namelijk leesd rechten op de apache logs. Echter bleek deze gebruiker gejailed te zijn in één van de website directories. Ik heb daarom voor deze gebruiker een nieuw account aangemaakt, die gejailed is op de log map van apache, en deze lid gemaakt van de apache group. Hiermee kon de programmeur goed uit de voeten, en kon zijn werk weer hervatten.
Verder heb ik vandaag nog enkele firewall requests uitgevoerd, zoals het toevoegen van een IP adres van een persoon, die toegang nodig had via RDP op één van hun servers. Ik heb dit IP aan de firewall toegevoegd en deze alleen het recht gegeven door de firewall heen te komen via het RDP protocol/poort.
Zo was er onder andere een request dat al een week in het helpdesk systeem stond. Dit betrof een probleem met een IBM pakket genaamd Unica. Dit is een pakket dat speciaal voor deze klant door IBM is opgezet op hun servers (die bij ons in het beheer zijn).
Van één van deze servers werkte de webinterface van het software pakket niet meer.
Dit software pakket draait echter niet op een webserver zoals IIS, maar heeft een eigen ingebouwde webserver (webSphere).
Bij ons was daarom al een tijdje de vraag wie verantwoordelijk is voor de support voor dit probleem. Uiteindelijk is gebleken dat I-Company slechts het beheer verzorgt van de server en het OS, en issues met het Unica pakket voor rekening zijn van IBM zelf. Aangezien dit een probleem op applicatie niveau betrof, heb ik dit terug gekoppeld aan de klant met de vraag het door te spelen aan IBM.
Later vandaag kreeg ik een telefoontje van een externe partij die voor een klant van ons een upgrade uitvoerd op een website van hun.
Deze server is in ons beheer maar de ontwikkeling van websites en dergelijke die erop draaien verzorgen zij zelf.
Deze externe partij belde op vanwege een probleem bij het upgraden van het CMS van één van de websites. Doordat deze programmeur slechts blanco pagina's te zien kreeg in plaats van error pagina's met feedback, belde hij mij even op om te toegang te vragen tot de log bestanden van apache. Deze server betreft een linux machine. Aangezien het niet de bedoeling is dat iedereen lees rechten op deze log heeft, heb ik de gebruiker, die tevens wel FTP toegang heeft, lid gemaakt van de apache groep (www-data). Deze heeft namelijk leesd rechten op de apache logs. Echter bleek deze gebruiker gejailed te zijn in één van de website directories. Ik heb daarom voor deze gebruiker een nieuw account aangemaakt, die gejailed is op de log map van apache, en deze lid gemaakt van de apache group. Hiermee kon de programmeur goed uit de voeten, en kon zijn werk weer hervatten.
Verder heb ik vandaag nog enkele firewall requests uitgevoerd, zoals het toevoegen van een IP adres van een persoon, die toegang nodig had via RDP op één van hun servers. Ik heb dit IP aan de firewall toegevoegd en deze alleen het recht gegeven door de firewall heen te komen via het RDP protocol/poort.
dinsdag 22 november 2011
Dag 57: C# app database herstellen / nieuwe klanten website livegang
Vandaag, tussen de reguliere werkzaamheden door, een poging gedaan verder te gaan aan mijn C# applicatie. Echter was er iets goed fout gegaan met de MySQL database achter mijn applicatie. Ik heb gisteren een aantal MySQL backups van een klant uitgetest op mijn lokale database, om te testen of de backups naar behoren werkte. Aanvankelijk leek alles in orde, maar sinds vandaag wilde de mysqld deamon niet meer starten. Aangezien de databases te groot waren om een SQL dump van te maken, heb ik de complete databases met tabellen gedownload van de server. Deze simpelweg copieren naar de data directory van mijn MySQL database leverde dus dit probleem op. Ik heb hiervoor jammer genoeg mijn server opnieuw moeten installeren, en de tabellen opnieuw moeten aanmaken.
Helaas door wat uitzoek werk hier en daar, ben ik daarna niet meer toegekomen verder nog wat te doen aan mijn applicatie.
Later vandaag ben ik aan de gang geweest met het live zetten van een nieuwe klanten website. Deze moest vanaf de development omgeving in zijn geheel worden overgeheveld naar de live omgeving, inclusief de database. Echter bleek er op de live omgeving een conflict te zijn met dubbele Handler mappings. Deze was op de development omgeving op site niveau geconfigureerd, maar draaide op de live omgeving al op server niveau. Deze mappings dubbel toevoegen levert een conflict op. Deze mappings worden onder andere gebruikt voor user friendly urls. De oplossing hiervoor was de web.config aan te passen met de volgende regels in de tag: . Na dit te hebben aangepast, moest in de database de portial aliases nog worden aangepast, zodat de website begrijpt dat wanneer je naar de betreffende host header gaat (URL), deze correct wordt afgevangen en je naar de website wordt gestuurd.
Bovenstaande waren twee bijzondere dingen vandaag. Natuurlijk ben ik de rest van de dag met overige dingen bezig geweest zoals een aantal firewall issues e.d.
Helaas door wat uitzoek werk hier en daar, ben ik daarna niet meer toegekomen verder nog wat te doen aan mijn applicatie.
Later vandaag ben ik aan de gang geweest met het live zetten van een nieuwe klanten website. Deze moest vanaf de development omgeving in zijn geheel worden overgeheveld naar de live omgeving, inclusief de database. Echter bleek er op de live omgeving een conflict te zijn met dubbele Handler mappings. Deze was op de development omgeving op site niveau geconfigureerd, maar draaide op de live omgeving al op server niveau. Deze mappings dubbel toevoegen levert een conflict op. Deze mappings worden onder andere gebruikt voor user friendly urls. De oplossing hiervoor was de web.config aan te passen met de volgende regels in de
Bovenstaande waren twee bijzondere dingen vandaag. Natuurlijk ben ik de rest van de dag met overige dingen bezig geweest zoals een aantal firewall issues e.d.
maandag 21 november 2011
Dag 56: C# app telefoon module fool proof / vervelende klant
Vandaag heb ik weer een stuk verder kunnen gaan aan mijn C# protectje. Zoals vrijdag al gemeld, was het telefoon registratie stuk al zo goed als af.
Vandaag heb ik de puntjes op de i gezet, door deze module "fool proof" te maken. Met andere woorden, je kunt geen acties meer uitvoeren die nergens toe leiden. Zo is het bijvoorbeeld niet meer mogelijk om bij het toevoegen van een record aan te vinken dat het toestel of simkaart is uitgeleend, maar geen naam in te vullen van de persoon aan wie het is uitgeleend.
Ook is het bijvoorbeeld niet meer mogelijk om een compleet leeg record toe te voegen.
Kortom, het systeem is niet meer voor de gek te houden.
Later vandaag ben ik met een verzoek van een klant aan de gang gegaan, waarvoor ik afgelopen vrijdag een aantal domeinnamen heb geregistreerd. Normaal gesproken vullen wij voor alle aanvragen hun in als houder, en icompany als administratief en technisch contact persoon. Dit wilde zij plotseling niet meer, en voor de houder moest hun eigen klant worden ingevuld, en zij zelf als administratief contact persoon.
Na dit aangepast te hebben, wilde deze klant ook nog is alle gegevens per domein naam in pdf formaat aangeleverd hebben.
Deze klant komt wel vaker met vervelende verzoeken. Zo communiceert deze klant meestal eerst met zijn eigen klanten, doet zeer onrealistische beloftes, en communiceert vervolgens aan ons wat er moet gebeuren. Niet erg handig, soms duren dingen langer dan hij zijn klanten heeft beloofd.
Vandaag heb ik de puntjes op de i gezet, door deze module "fool proof" te maken. Met andere woorden, je kunt geen acties meer uitvoeren die nergens toe leiden. Zo is het bijvoorbeeld niet meer mogelijk om bij het toevoegen van een record aan te vinken dat het toestel of simkaart is uitgeleend, maar geen naam in te vullen van de persoon aan wie het is uitgeleend.
Ook is het bijvoorbeeld niet meer mogelijk om een compleet leeg record toe te voegen.
Kortom, het systeem is niet meer voor de gek te houden.
Later vandaag ben ik met een verzoek van een klant aan de gang gegaan, waarvoor ik afgelopen vrijdag een aantal domeinnamen heb geregistreerd. Normaal gesproken vullen wij voor alle aanvragen hun in als houder, en icompany als administratief en technisch contact persoon. Dit wilde zij plotseling niet meer, en voor de houder moest hun eigen klant worden ingevuld, en zij zelf als administratief contact persoon.
Na dit aangepast te hebben, wilde deze klant ook nog is alle gegevens per domein naam in pdf formaat aangeleverd hebben.
Deze klant komt wel vaker met vervelende verzoeken. Zo communiceert deze klant meestal eerst met zijn eigen klanten, doet zeer onrealistische beloftes, en communiceert vervolgens aan ons wat er moet gebeuren. Niet erg handig, soms duren dingen langer dan hij zijn klanten heeft beloofd.
Abonneren op:
Posts (Atom)