Mit dem Luftschiff in die Wolke (Gastbeitrag von Christopher Supnig)

Als wir im Jahr 2015 mit der Entwicklung von appointmed der Praxissoftware für Physiotherapeuten begonnen hatten haben wir im Backend auf Java-basierte Microservices gesetzt. Wir hatten 3 Server im Rechenzentrum eines Bekannten angemietet, die wir selbst warten konnten. Das funktionierte anfangs sehr gut. Wir hatten gleich von Beginn an drei gutgesinnte Testkunden, die das Programm begleitet haben. Auf einem der Server lief unser Produktivsystem, auf einem unser Testsystem und auf dem letzten unser Entwicklungssystem und ein Buildserver, der es uns ermöglichte neue Versionen direkt auf die einzelnen Umgebungen auszuliefern.

Das hört sich doch eigentlich sehr gut an, nicht?
Dieses Luftschiff wollte jedoch nicht so recht abheben. Wie man sich schon denken kann, erzeugen drei Kunden nicht gerade eine übermäßige Last auf dem System und als wir mehrere Kunden dazu bekamen und die Requests mehr wurden, hatten wir immer mal wieder Probleme mit Systemupdates und einzelne Services, die in manchen Situationen nicht genügend Speicher bekamen.
Uns war klar, dass wir unsere Architektur überarbeiten mussten und da wir auch langfristig aus dem kleinen Rechenzentrum in Wien ausziehen wollten, haben wir uns nach Alternativen umgesehen. Bernhard, unser Backendspezialist, ist zu dieser Zeit auf die AWS Re:Invent nach Las Vegas geflogen und hat einige interessante Konzepte mitgebracht. Für mich war der Begriff “Serverless” damals noch sehr neu. Serverless bedeutet eine Applikation auf einer Infrastruktur laufen zu haben, ohne auf die darunterlegenden Server bzw. Container Rücksicht nehmen zu müssen.

Auf in die Wolke

Nach einigen Überlegungen sind wir dann zu dem Schluss gekommen, dass eine Migration in die AWS Cloud für uns am besten ist. Der Einfachheit halber hatten wir einfach unsere Microservices auf EC2 Instanzen gestartet und diese miteinander verbunden. Wie ihr euch vorstellen könnt, bedeutete das einiges an Kosten und wir hatten wieder “Server” um die wir uns kümmern mussten. Zwar waren diese einfacher zu verwalten, da die Updates größtenteils automatisch durchgeführt wurden, doch so ganz glücklich waren wir damit noch nicht.

Lambda to the rescue

Wir haben uns immer mehr in die AWS Infrastruktur eingelesen und sind auf den Lambda-Service gestoßen. Dieser ermöglicht es Funktionen direkt auszuführen, ohne diese auf einem bestimmten Server installiert zu haben. Diese Funktionen können auf unzählige Methoden angesprochen bzw. angestoßen werden. Die für uns wichtigsten sind REST-Requests, Events, Zeitgesteuert und durch E-Mails. AWS erlaubt es diese Funktionen in unterschiedlichen Programmiersprachen zu erstellen, was sehr angenehm ist. Aufgrund der Gewschwindigkeits- und Speichervorteile haben wir uns für NodeJS entschieden.
Einen der ersten Services, die wir auf so eine Funktion umgestellt hatten, war unser Terminerinnerungsservice. Dieser prüft zeitgesteuert, welche Termine anstehen und informiert die Patienten entweder per SMS oder per E-Mail darüber. Alleine durch diese Umstellung konnten wir knapp €50,— von unserer monatlichen Infrastrukturrechnung streichen.

Aufgrund der guten Erfahrungen mit AWS Lambda sind wir nun dabei alle restlichen Services umzustellen bis wir hoffentlich bald wirklich “Serverless” in der Wolke unterwegs sind.

Christopher Supnig ist Webentwickler und Co-Founder von appointmed. Wenn Sie mehr Erfahren möchten, besuchen Sie ihn auf https://www.supnig.com

Gentoo für den Raspberry Pi 3: gentoo4raspi-201612

Ich habe mein Gentoo Image für den Raspberry Pi 3 auf den aktuellen Stand gebracht und somit die Version 201612 released. Integriert wurde auch der aktuelle Raspberry Pi Kernel 4.4.37-v7, was wohl hinsichtlich aktueller Kernel Meldungen auch securitymäßig relevant ist.

Download Gentoo4Raspi 201612 auf Sourceforge (3,39 GByte)

Änderungen 201610 -> 201612
Kernel von Linux 4.4.31-v7+ #922 -> Linux 4.4.37-v7+ #936
– dev-libs/expat-2.1.1-r2 -> dev-libs/expat-2.2.0-r1
– sys-libs/db-4.8.30-r2 -> sys-libs/db-5.3.28-r2
– sys-libs/readline-6.3_p8-r2 -> sys-libs/readline-6.3_p8-r3
– net-misc/openssh-7.3_p1-r6 -> net-misc/openssh-7.3_p1-r7
– dev-lang/python-3.4.3-r1 -> dev-lang/python-3.4.5
– net-dns/bind-tools-9.10.4_p3 -> net-dns/bind-tools-9.10.4_p4
– net-misc/ntp-4.2.8_p8 -> net-misc/ntp-4.2.8_p9
– sys-devel/flex-2.5.39-r1 -> sys-devel/flex-2.6.1
– net-misc/whois-5.2.12 -> net-misc/whois-5.1.5
– Neu: sys-apps/iproute2-4.4.0
– dev-libs/glib-2.46.2-r3 -> dev-libs/glib-2.48.2

Allgemeine Infos:
– Vollständig getestet für den Raspberry Pi 3. Im wesentlichen installiert laut diesem und diesem Guide
– Download ist eine gezipte img Datei für eine 16GB SD Karte. Zum Schreiben empfiehlt sich der Win32 Disk Imager
– Hostname „raspi.local“, root-pw: „password“
– Achtung: root Login per ssh ist erlaubt (ggf. anpassen in /etc/ssh/sshd_config)
– verwendet wurde der raspberry Kernel inklusive der nonfree Module um zb. den WLAN Chipsatz zum Laufen zu bringen
– wlan0 ist nicht eingerichtet, eth0 default auf dhcp

Gentoo Linux für den Raspberry Pi 3

Fast alle meine Raspberry Projekte haben als Grundlage ein minimales Gentoo Linux System. Das liegt nicht nur daran, dass Gentoo meine präferierte Distribution ist, ich halte es ob seiner Schlankheit und Anpassungsfähigkeit auch für geradezu ideal für den Einsatz auf dem Raspberry.

Allerdings dauert die Installation (bei der einiges manuell gemacht werden muss) immer so seine Zeit und ein fixfertiges Image das für mich zufriedenstellend funktionierte, konnte ich bisher nicht finden.

Daher habe ich mich entschlossen, mein Gentoo Image für den Raspberry Pi 3 hier allgemein zur Verfügung zu stellen.

Die Eckdaten:
– Vollständig getestet für den Raspberry Pi 3. Im wesentlichen installiert laut diesem und diesem Guide
– Download ist eine gezipte img Datei für eine 16GB SD Karte. Zum Schreiben empfiehlt sich der Win32 Disk Imager
– Hostname „raspi.local“, root-pw: „password“
– Achtung: root Login per ssh ist erlaubt (ggf. anpassen in /etc/ssh/sshd_config)
– verwendet wurde der raspberry Kernel inklusive der nonfree Module um zb. den WLAN Chipsatz zum Laufen zu bringen
– wlan0 ist nicht eingerichtet, eth0 default auf dhcp
– Installierte Pakete („world“): sysklogd, logrotate, nano, gentoolkit, traceroute, bind-tools, dhcpcd, ntp, whois, wpa_supplicant, vixie-cron

Ich möchte dieses Image auch weiterhin pflegen, updaten und hier (vermutlich etwa monatlich) publizieren. Über Anregungen an [email protected] freu ich mich.

Download Gentoo4Raspi 201610 auf Sourceforge (3,13 GByte)

Thunderbird mit office365 und Windows Phone via DavMail

Ich komm von meinem Thunderbird nicht los. Woran es auch genau liegen mag, ich mag ihn einfach, was vielleicht schon alleine damit zu tun hat, dass man einfach eine ganz gute Kontrolle darüber hat was man so an Andere schickt (zum Beispiel muss ich mir keine Sorgen machen jemandem ohne es zu wollen einfach ein winmail.dat File zu senden).

Mit Lightning gibt es hier auch eine sehr brauchbare Kalender Implementierung. Wenn man aber dann so wie ich auch noch ein Windows Phone und einen office365 Account hat (neben ein paar regulären IMAP Konten), wird das ganze schon eine Herausforderung im Bezug darauf, dass alles synchron bleibt.

Eine gutes Stück Software ist hier das GPL Projekt DavMail. Es übersetzt Mails, Kalender und Kontakte von einem Exchange Server auf die Standardprotokolle IMAP, Caldav und LDAP. Somit lässt sich fast jede Mail/Kalender Software an Exchange bzw. office365/outlook.com anbinden.

Wer übrigens so wie ich anfangs die Parameter für ein office365 Konto sucht:
Exchange Protocol: EWS
OWA (Exchange) URL: https://outlook.office365.com/EWS/Exchange.asmx

Mail-Anhang-Versendeproblem von Outlook/Exchange zu externen Empfängern

Fehlerbeschreibung: Wenn ein Anhang mitgesendet wird, erhält der Empfänger eine Winmail.dat statt dem richtigen Anhang.

Fehlerursache: Outlook/Exchange versucht bei ihm bekannten E-Mailadressen (durch im Active Directory angelegte User und Kontakte) das Sendeprotokoll auf RichText zu stellen, welches weder ordentlich genormt ist noch von allen Mail-Clients verstanden wird.

Lösung: Am Exchange-Sever als Default-Einstellung für das Versenden von Mails nach extern beim Exchange-Rich-Text-Format „Never use“ einstellen. Weiters müssen natürlich dann auch noch alle Kontakte und User auf „Use default“ gestellt werden. Im Outlook unter Datei – Optionen – E-Mail – Nachrichten in diesem Format verfassen muss die Default-Option HTML ausgewählt sein.
Lösung-Details: Am Exchange-Server in der Exchange-Management-Konsole unter Organization Configuration – Hub Transport – Remote Domains –nStandard – Properties – Message Format „Exchange rich-text format“ auf „Never Use“ stellen.
In der Exchange Management Shell (Start – All Programs – Microsoft Exchange Server 2010 – Exchange Management Shell) folgende 2 Befehle ausführen:

Get-MailContact -ResultSize Unlimited | Set-MailContact -UseMapiRichTextFormat UseDefaultSettings

Get-MailUser -ResultSize Unlimited | Set-MailUser -UseMapiRichTextFormat UseDefaultSettings

Besten dank an Hrn Taubinger Thomas und sein Team der Firma Sonnleitner.

Windows Server Sicherung / SQL Backup und QNAP NAS

In letzter Zeit häuften sich die Probleme bei Windows Server Sicherung und SQL Backup in Verbindung mit QNAP NAS die Probleme.

Grund: Windows will die VHD (Sicherungsdatei) einbinden und kommt mit den veralteten Samba einstellungen nicht zusammen bzw div confs auf der NAS.

Lösung: Die Beta Firmware hat alles gefixt und  es scheint endlich Problemlos zu klappen (Firmware ist direkt bei QNAP zum Downloaden)

HP OEM Windows Server CD´s und Vmware

Jeder kennt wahrscheinlich – Man kauft eine orginal Software (Windows Server), Virtualisiert mit Vmware und klatsch: NOT Supported Hardware

Grund hier ist das OEM Branding seitens Hersteller – bei der das Setup direkt mit der Hardware Kommunizieren will…Florian Maier hat mir sofort ein diesen link geschickt welches das Problem löst und die VM direkt Kommunizieren kann womit das Setup klappt:

Howto: VMware Esxi Installation on HP Proliant with SBS 2011 Std

VMware Converter Extrem Langsam

Sollte auch jemand Probleme bei der Netzwerk Performance haben bei der Convertierung zu VMware (P2V):

https://www.vmware.com/support/converter/doc/conv_sa_50_rel_notes.html

  1. Open the converter-worker.xml configuration file. It is usually located in C:\ProgramData\VMware\VMware vCenter Converter Standalone folder.
  2. Set the key Config/nfc/useSsl to false.Save the configuration file.
  3. Restart the VMware vCenter Converter Standalone Worker service.