Up in the Clouds at Regis24

05. März 2020

→ deutsche Version

Software Architect Enrico Hoffmann talks about Regis24’s experiences with AWS

We have been working with Amazon Web Services (AWS) for about two years now – time for a quick look back. What works well? What could be better?

There are a couple of obstacles for AWS beginners: for example, it is initially difficult to find your way around, due in part to the sheer number of services that AWS provides. In addition, the constant updates result in a flood of information which needs to be filtered and managed somehow. In the meantime, however, we've gotten quite comfortable. We are now very familiar with the services we use. We have also been able to solve some problems we had with data encapsulation and freely configurable authorizations for multiple accounts.

As some AWS services are still quite new, we occasionally come up against limits. That is, we discover that certain features we need or desire are not yet available. We have had very good experience with AWS support and the community in this regard. Our feedback is not only taken note of, but has already led directly to the implementation of new features. We have become something like a privileged pilot customer for some services of AWS in Germany.

Can you compare AWS with other cloud providers?

I have worked with Microsoft Azure and the Google Cloud Platform before. Azure is particularly suitable for Microsoft Office related applications. Apart from that, the variety and scope of features are 90 percent identical with all major cloud providers. And if a particular feature does well with one provider, the others usually follow suit. So ultimately it is a matter of taste which provider you prefer.

Looking back, how do you rate the switch from our own data centre to the cloud? Was it the right decision?

Absolutely! We no longer need to worry about hardware and network maintenance, while at the same time our solutions have virtually unlimited availability and scalability. We can concentrate on what is really important: developing, and don't have to maintain things all the time. After all, the latter regularly immobilizes companies. At some point, you're only busy keeping your systems running. The focus is then no longer on further development, but only on stabilizing the status quo.

At times there might be good reason to have your own server in the basement, in which cases one needs to take a close look to see if it is worth it.

What does this mean for our sysadmins?

The classic sysadmin of the past, who was relatively busy with hardware, network, backups and updates, no longer exists with us. Our admins are moving towards DevOps - experts for infrastructure, who are also involved in software development.

I see this as a positive thing: We are all moving away from being specialists with blinkers, in favor of a collaborative view of the bigger picture. As a result, everyone involved usually understands better why certain things happen.

What is wrong with specialization?

There is nothing wrong with specialization per se, of course. However, it can lead to operational blindness. Let's stay with the example of system security: I used to work with admins who secured their systems to the best of their knowledge and belief. But they did that by virtually locking everyone else out. You see, it is possible to secure systems so well that they become unusable. Here, by the way, the cloud has also contributed to a rethink.

How is that?

Well, if you move your system to the cloud, you inevitably have to say goodbye to your hand-carved solutions. Instead, certain standards as well as the ideas, solutions and experiences of others are becoming more important. This rethinking, away from paradigms like "security by obscurity" or the concept of sovereign knowledge of individuals, towards solutions that are independent of individuals and transparent, in my opinion automatically ensures a significantly higher level of security and stability of the solutions.

We are developing new applications and features almost exclusively as microservices and no longer as a monolith. Did the cloud also play a part in this development?

No, not exactly. We got to the point a few years ago where we needed alternatives to our original software architecture. That was long before we decided to go cloud. And the hype about microservices as a panacea for old-school code monsters that are crusted and barely controllable has of course left its mark on us.

So we started to isolate individual functions where possible and program additional features separately. And that still works very well today. In the meantime we are developing new solutions initially as mini-monolith. Later on, functionalities can be detached as a separate micro service, if this becomes necessary due to further development.

So no, our move to microservices had nothing to do with the move to the cloud. But it is certainly true that the concept of microservices is ideally suited to a serverless architecture - for example, because by encapsulating individual services and functions, we achieve optimum scalability of our solutions.

What do you think: What trends will shape your work in IT in the future?

Cloud computing will continue to spread, i.e. more and more applications will migrate from the hard disk or local server to the cloud. Browser IDEs such as Amazon's Cloud9, which we use, as well as a wide variety of end devices with ever-improving usability make us less dependent on the classic office workplace. In addition, machine learning will no longer be used by highly specialized technology companies only, but also by companies that cannot even imagine it today.

Will Regis24 use machine learning, too?

Yes. We are still in the phase of approaching it. That means we are looking at the potential of various tools and testing them for manageability. However, I am firmly convinced that machine learning will be used in one form or another in our solutions in the foreseeable future.

Anchor

Deutsche Version:

Über die Wolke: Cloud-Computing bei Regis24

Software-Architekt Enrico Hoffmann im Interview


Wir arbeiten seit etwa zwei Jahren mit Amazon Web Services (AWS) – Zeit für ein Zwischenfazit. Was funktioniert gut? Was könnte besser laufen?

Es gibt für AWS-Einsteiger diverse Hürden, die relativ hoch liegen: Beispielsweise ist es anfangs schwierig, sich in AWS zurechtzufinden, was auch an der schieren Zahl der Dienste liegt, die AWS bereitstellt. Zudem gibt es ständig Aktualisierungen, was eine Flut an Informationen zur Folge hat, die man irgendwie filtern und managen muss. Inzwischen haben wir uns aber ganz gut eingefuchst. Mit den Diensten, die wir verwenden, sind wir jetzt gut vertraut. Auch konnten wir das Problem der Datenkapselung bzw. der frei konfigurierbaren Berechtigungen für multiple Accounts lösen.

Da einige AWS-Dienste noch recht jung sind, stoßen wir hin und wieder an Grenzen. Das heißt, wir stellen fest, dass es bestimmte Features noch gar nicht gibt, die wir benötigen oder uns wünschen. Wir haben diesbezüglich sehr gute Erfahrungen mit dem AWS-Support und der Community gemacht. Unser Feedback wird nicht nur zur Kenntnis genommen, sondern hat auch schon direkt zur Implementierung neuer Features geführt: Wir sind so etwas wie ein bevorzugter Pilotkunde für einige Dienste von AWS in Deutschland geworden.

Kannst du AWS mit anderen Cloudanbietern vergleichen?

Ich habe früher bereits mit Microsoft Azure sowie der Google Cloud Platform gearbeitet. Azure eignet sich vor allem für Microsoft-Office-nahe Anwendungen. Ansonsten sind die Zahl und die Leistung der Features bei allen großen Cloud-Anbietern zu 90 Prozent deckungsgleich. Und wenn sich ein bestimmtes Feature bei einem Anbieter durchsetzt, ziehen die anderen in der Regel nach. Es ist also letztlich eine Geschmacksfrage, welchen Anbieter man vorzieht.

Wie bewertest du rückblickend den Wechsel vom eigenen Rechenzentrum zur Cloud? War das die richtige Entscheidung?

Auf jeden Fall! Wir haben jetzt keinen Wartungsaufwand mit der Hardware und dem Netzwerk mehr, und das bei gleichzeitig praktisch unbegrenzter Verfügbarkeit und Skalierbarkeit unserer Lösungen. Wir können uns auf das Eigentliche konzentrieren: das Entwickeln, und müssen nicht die ganze Zeit Sachen warten. Letzteres macht Unternehmen nämlich auch regelmäßig bewegungsunfähig. Irgendwann ist man nur noch damit beschäftigt, seine Systeme am Laufen zu halten. Der Fokus liegt dann nicht mehr auf der Weiterentwicklung, sondern nur noch auf dem Stabilisieren des Status quo.

Wahrscheinlich wird es einzelne Fälle geben, in denen es gute Gründe für einen eigenen Server im Keller gibt. Dort sollte man dann genau hinschauen, ob sich das auszahlt.

Was bedeutet das für unsere Sysadmins?

Den klassischen Sysadmin von früher, der relativ viel mit Hardware, Netzwerk, Back-ups und Aktualisierungen beschäftigt war, gibt es bei uns nicht mehr. Unsere Admins bewegen sich Richtung DevOps – Experten für Infrastruktur, die sich auch bei der Softwareentwicklung einbringen.

Ich sehe das als positive Entwicklung: Wir alle bewegen uns ein Stück weit weg vom Spezialisten mit Scheuklappen hin zum gemeinschaftlichen Blick über den Tellerrand. Dadurch verstehen alle Beteiligten meistens auch besser, warum bestimmte Dinge passieren.

Was ist an Spezialisierung schlecht?

Spezialisierung ist natürlich nicht per se schlecht. Sie kann aber zu Betriebsblindheit führen. Bleiben wir beim Beispiel Systemsicherheit: Ich habe früher mit Admins zusammengearbeitet, die ihre Systeme nach bestem Wissen und Gewissen abgesichert haben. Aber sie taten das, indem sie alle anderen quasi ausgesperrt haben. Man kann Systeme eben auch dermaßen sicher machen, dass sie unbenutzbar werden. Hier hat die Cloud übrigens auch einen Beitrag zum Umdenken geleistet.

Inwiefern?

Na ja, wer sein System in die Cloud verlagert, muss sich von seinen handgeschnitzten Lösungen zwangsläufig verabschieden. Stattdessen werden nun bestimmte Standards sowie die Ideen, Lösungen und Erfahrungen anderer wichtiger. Dieses Umdenken, weg von Dingen wie „Security by obscurity“ oder auch dem Hoheitswissen Einzelner hin zu personenunabhängigen und transparenten Lösungen, sorgt in meinen Augen automatisch für eine deutlich höhere Sicherheit und Stabilität der Lösungen.

Wir entwickeln neue Anwendungen und Features ja inzwischen fast ausschließlich als Microservices und nicht mehr als Monolith. Hatte die Cloud an dieser Entwicklung auch einen Anteil?

Nein, nicht direkt. Wir waren schon vor einigen Jahren an dem Punkt, an dem wir Alternativen zu unserer ursprünglichen Softwarearchitektur brauchten, jedenfalls lange bevor wir uns für die Cloud entschieden hatten. Und der Hype um Microservices als Allheilmittel gegen verkrustete, kaum mehr beherrschbare Code-Monster alter Schule ist natürlich auch an uns nicht spurlos vorübergegangen.

Also haben wir angefangen, einzelne Funktionen herauszulösen, wo dies möglich war, und zusätzliche Features separat zu programmieren. Und das funktioniert bis heute sehr gut. Inzwischen entwickeln wir neue Lösungen zunächst als Mini-Monolith. Später können dann Funktionalitäten als eigener Microservice herausgelöst werden, wenn dies durch die Weiterentwicklung notwendig wird.

Also nein, mit dem Umzug in die Cloud hatte unser Wechsel hin zu Microservices nichts zu tun. Es ist aber durchaus so, dass sich die Idee von Microservices bestens für eine Serverless-Architektur eignet – beispielsweise, weil wir durch die Abkapselung einzelner Dienste und Funktionen eine optimale Skalierbarkeit unserer Lösungen erreichen.

Was glaubst du: Welche Trends werden eure Arbeit in der IT künftig prägen?

Cloud Computing wird sich weiterverbreiten, d.h. immer mehr Anwendungen werden von der Festplatte bzw. vom lokalen Server in die Cloud wandern. Browser-IDEs wie beispielsweise Amazons Cloud9, die wir nutzen, sowie verschiedenste Endgeräte mit immer besserer Usability machen uns unabhängiger vom klassischen Büroarbeitsplatz. Außerdem wird Machine Learning nicht länger nur von hochspezialisierten Technologiefirmen eingesetzt werden, sondern auch von Unternehmen, die sich das heute noch gar nicht vorstellen können.

Auch von Regis24?

Ja. Wir sind da noch in der Phase des Herantastens. Das heißt, wir beschäftigen uns mit dem Potenzial diverser Tools und testen sie auf ihre Handhabbarkeit. Ich bin allerdings fest davon überzeugt, dass Machine Learning in absehbarer Zeit in der einen oder anderen Form in unseren Lösungen zur Anwendung kommen wird.