Die Cloud gibt es nicht. Es gibt nur den Computer von jemand anderem. Und doch kann man mit diesem Computer meist so viel mehr anfangen, als mit dem eigenen. Kleine und mittelständische Unternehmen setzen auf Cloud Dienste um die Qualität ihres Services hochzuhalten. Wir beleuchten die verschiedenen Modelle und Vorteile des Cloud Computings.

Image for post
Image for post

Everything as a Service: IaaS, PaaS und SaaS

Wir machen nichts mehr selbst. Alles wird an externe Dienstleister ausgelagert und “as a Service” betrieben. Nicht einmal die Kaffeemaschine gehört dem Unternehmen, sondern wird geleased und von einem Externen Lieferanten befüllt und gewartet. Kommt dir das bekannt vor? In allen Geschäftsbereichen werden Aufgaben, die sich nicht effizient intern lösen lassen, ausgelagert. Das kann eine Kaffeemaschine sein, oder die gesamte IT-Infrastruktur.Das Firmenwiki, das Newsportal, die Build-Server, die Homepage — Warum sollte man sie noch selbst hosten? Der externe Dienstleister macht das schon. Am Ende entsteht eine “Alles ist ein Service Kultur”. …


Unternehmen vernetzen sich zunehmend untereinander. Die IT-Infrastrukur deines Unternehmens wächst dabei mindestens genau so schnell wie das Unternehmen selbst. Damit dein Unternehmen am Ball bleiben kann muss die IT funktionieren. Colocation ist eine schnelle und beliebte Möglichkeit und Flexibilität, Preiseffizienz und Sicherheit zu vereinen.

Image for post
Image for post

Der Betrieb von Rechenzentrumsinfrastruktur ist eine beträchtliche Herausforderung. Jedes kleine oder mittelständige Unternehmen kommt an den Punkt, eine Make Or Buy Entscheidung zu treffen: Bauen wir uns unser eigenes kleines Rechenzentrum, oder greifen wir auf externe Ressourcen in Form von Colocation und Housing zurück?

Dabei spielen neben der Kostenfrage auch andere Bedenken im Vordergrund: Ist unsere Örtlichkeit überhaupt dafür geeignet, ein Rechenzentrum zu betreiben? Können wir die Sicherheitsanforderungen unserer Stakeholder erfüllen? …


Image for post
Image for post

Manuelles Deployment ist ein Antipattern. Was plakativ klingt ist ein fester Grundsatz in jeder CI/CD Strategie. Wir sehen uns zusammen ein paar Gedanken zum Thema Automatisierte Auslieferung an und finden heraus, warum manuelles Deployment an sich schon einen Fehler darstellt.

Manuelles Deployment

Software wird immer komplexer. Mit der Entwicklung weg von Monolithen und hin zu Verteilten Systemen (Distributed Systems) wie Microservices haben Architekturen immer mehr bewegliche Teile, die dadurch zwar flexibel, aber auf gleichzeitig eine Fehlerquelle sind. Ein gutes Beispiel dafür ist OpenStack. Mit großer Macht kommt hier große Verantwortung: Das Deployment ist kompliziert und manuell. Auf Dauer ist so ein manuelles Deployment untragbar. …


Bei Softwareentwicklung spricht jeder von Automatisierung und von Qualität. Ein CI/CD Konzept hilft dir, diese Ziele zu erreichen. Durch kontinuierliche Integration (“CI” = “Continuous Integration”) kannst du früh Inkompatibilitäten und Fehler in deinen Änderungen erkennen und verhindern, dass Fehler es überhaupt nur ansatzweise bis in die Produktionsumgebung schaffen. Zum Setup jedes Projektes gehört also eine geeignete Continuous Integration Strategie.

Continuous Integration

Softwareprojekte werden immer größer und komplexer. Viele Schnittstellen sind angebunden und viele Entwickler sind beteiligt. Es wird modular gearbeitet und alle Teile eines Projektes sollen sich nahtlos ineinander fügen. Was immer erst romantisch klingt kann am Ende sehr aufwendig werden. Es kommt vor, dass Entwickler ein paar Tage ihre Änderungen nicht synchronisieren, oder Einstellungen ändern, an denen gerade auch andere Entwickler arbeiten. Das Ergebnis sind Konflikte, die immer erst aufgelöst werden müssen. …


Image for post
Image for post

Das Bereitstellen von Infrastrukturen braucht teilweise eine gesamte eigene Abteilung, die sich nur damit beschäftigt. Viele manuelle Prozesse sind von Nöten, um neue Umgebungen bereitzustellen. Auf Dauer geht viel Zeit dabei drauf, immer wieder die gleiche Umgebung aufzubauen. Infrastructure as Code möchte dieses Problem angehen.

Infrastructure as Code

Durch das Abbilden deiner Infrastruktur als Code (IaC, Infrastructure as Code) wird deine Infrastruktur nach und nach selbst nur noch zu Code. Eine Beschreibung, wie jede andere. Dadurch muss die Infrastruktur nicht mehr in komplexen, manuellen Prozessen aufgebaut werden, sondern es liegt bereits eine vollständige und anwendbare Abbildung vor, die du automatisiert umsetzen kannst. …


Image for post
Image for post

Indem du Software kontinuierlich auslieferst ebnest du den Weg für höhere Softwarequalität. Die Prozessautomatisierung spart Zeit, Geld und Ressourcen. Wenn du dir die folgenden Punkte ins Gedächtnis rufst bist du in der Lage, abzuschätzen, welche konkreten Vorteile Continuous Delivery für deine Prozesse liefert.

Time To Market

Wie lange brauchen deine Änderung bis in die Produktionsumgebung? Continuous Delivery verringert diese Zeit. Du kannst also schneller auf Änderung am Markt reagieren. Du kannst dadurch mit wenig Aufwand deine Produkte am Markt positionieren. …


Image for post
Image for post

Es kann eigentlich nicht schnell genug gehen. Du sitzt in der Bahn, scrollst durch die aktuellen News und was ist? Die Seite lädt nicht, langsames Netz. Laut Google verlassen 53% der Nutzer eine Seite sofort wieder, wenn sie länger als drei Sekunden lädt. Das ist besonders auf Mobilgeräten kritisch, denn der wachsende Anteil aller Nutzer ist am Smartphone unterwegs und die Bandbreite ist begrenzt.

Bessere Ladezeiten mit Google AMP

Verschiedenste Studien belegen, wie wichtig Ladezeit von Webseiten ist. Besonders schwierig ist die Optimierung für Smartphones, die oft drahtlos und mit langsamer 3G Verbindung auf der Suche nach Webinhalten sind. …


Image for post
Image for post

Ein Projekt ist erst dann richtig erfolgreich, wenn du so viele Stakeholder wie möglich zufriedenstellen konntest. Aber um sie zufrieden zu stellen musst du sie erst einmal finden. Wir fragen uns deshalb, welche Arten von Stakeholdern es gibt und wie wir sie identifizieren.

Interne und Externe Stakeholder

Der Stakeholder-Ansatz beschreibt eine Aufteilung von Stakeholdern in interne und externe Stakeholder. Sie vertreten unterschiedliche Perspektiven und Interessen gegenüber deines Projekts.

Interne Stakeholder

Die internen Stakeholder sind größtenteils deine engen Vertrauten und die Projekt-Teammitglieder. Im Allgemeinen bilden die Mitarbeiter deiner Firma, die Eigentümer deiner Firma und das Management die internen Stakeholder.

Externe Stakeholder

Die externen Stakeholder sind weniger leicht zu fassen und haben größtenteils wirtschaftliche Interessen. Deine Lieferanten und Gläubiger wollen nicht, dass du scheiterst, der Staat würde es gerne sehen, wenn du dich an die Gesetze hältst und die Kunden möchten meistens ein funktionierendes Produkt. …


Image for post
Image for post

Jeder angehende Entwickler kommt früher oder später an den Punkt, an denen er sich mit Entwurfsmustern auseinandersetzt. Entweder, weil ein anderer Entwickler ihm dazu rät, oder weil er ein Buch liest. Doch nicht alle Entwurfsmuster sind ohne Vorbehalte zu genießen. Wir klären, was ein Singleton ist, was seine Vorteile und Nachteile sind und fragen uns nach Sinnhaftigkeit und möglichen Alternativen.

Der Charakter eines Singletons

Das Singleton-Muster an sich ist sehr simpel und gehört als “creational pattern” zur Gang of four. Es soll sicherstellen, dass es nur eine Instanz einer Klasse gibt. Das kann zum Beispiel so aussehen:

public final class Singleton {
private static Singleton instance;

private Singleton() {
}

public static Singleton instance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}…

Jedes Projekt hat seine Stakeholder. Die Stakeholder sind alle, die ein Interesse an unserem (Software-) Produkt haben, sowie dessen spätere Benutzer.
Im Rahmen der Stakeholderanalyse bekommen wir von den Stakeholdern die Anforderungen an unser Produkt, sowie dessen Kontext in Form von Rahmenbedingungen und mögliche Risiken.

Missachtung von Stakeholdern

Es besteht immer die Gefahr, dass Stakeholder zu spät entdeckt oder nur ungenügend in unsere Prozesse eingebunden werden. Um das zu verhindern müssen wir versuchen, die wichtigen Stakeholder sowie deren Interessen frühzeitig zu identifizieren. Geschieht dies nicht führt das oft zu verlängerter Projektlaufzeit und großen, teuren Anforderungsänderungen. …

About

Felix Klauke

20, working @itemis, loving infrastructure and backend services and networking, devops by night, privatizing the world peace, only doing the extravagant jobs

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store