Cloud & Microservice Blog

Unser Blog hilft Cloud Computing, Machine Learning, Microservices und viele weitere Hypes zu verstehen...

Previous Next

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Im Rahmen eines Kundenprojektes besuchte Tobias vergangene Woche die Scaladays in Kopenhagen. Zusätzlich besuchte er ein Meet-Up von Lightbend zum Thema Fast Data Plattform und die Typelevel Summits, die unmittelbar nach den Scaladays stattgefunden haben. In Zahlen konnte Tobias 25 verschiedene Talks von Speakern aus der ganzen Welt sehen. Insgesamt also sehr viel neuer Input in den Bereichen Scala, akka, play und co. 

Neben vielen Themen in den Bereichen von Streaming Data (akka streaming, fast data plattform) und Microservices (CQRS, Datenvalidation mit Cats) war auch der neue Scala Compiler Dotty ein großes Thema der Konferenz. Die angesprochenen Verbesserungen sind alle sehr vielversprechend. Neben mehr Geschwindigkeit bei der Compilezeit wird die Sprache Scala an sich klarer und in unseren Augen weiter stark verbessert. 

Ein für unser noch eher neues, aber dennoch sehr interessantes Framework ist scala meta. Das scala meta Livecoding in Form einer Erweiterung für REST APIs, war ein tolles Beispiel von Pathikrit Bhowmick. Der beste Talk der Konferenz kam in unseren Augen von Gabriele Petronella („Monad transformers down to earth“). Eine ähnlich gute Erklärung zu Monaden ist uns in Scala bisher nicht bekannt gewesen. 

Für unser Projekt croGoDeal von großem Interesse waren auch die Talks von IBM zu Spark, sowie von Salesforce zu deren Plattform Einstein und der Spark Erweiterung namens Optimus Prime. Wir hoffen, dass diese typsichere Erweiterung von Spark in absehbarer Zeit als Open-Source Projekt veröffentlicht wird, sodass man dieses hervorragende Tool auch außerhalb von Salesforce benutzen kann.

Alle Talks der Konferenz findet man auf dem YouTube Channel der ScalaDays.

 

 

 

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Der technische und digitale Wandel rast und treibt die Globalisierung voran. Regelmäßig werden neue Technologien auf den Markt gebracht und bestehende optimiert. Das lässt uns so effizient arbeiten wie nie. Beide Megatrends stellen sowohl Unternehmen, als auch Arbeitnehmer vor große Herausforderungen. Doch was genau ändert sich? Und wie sehen Studenten - die Arbeitnehmer von Morgen - diesen Wandel? 

Im März 2017 hat Campusjäger im Rahmen des dritten Puls-Checks deutschlandweit 1.000 Studenten online befragt. Es wird deutlich: Die befragten Studenten sind sich ihrer zukünftigen Karriere sicher. Mehr als zwei Drittel der Befragten rechnet sich beruflichen Erfolg in der künftigen Arbeitswelt aus.

Vor allem die angehenden Techniker, Informatiker und Ingenieure sind optimistisch. Mehr als 90 Prozent der Studenten dieser Fachrichtungen glauben künftig gute Karrierechancen zu haben. Weniger rosig sehen Studenten der Geistes- und Sozialwissenschaftler ihre Aussicht auf Erfolg: 30 Prozent der künftigen Geisteswissenschaftler und 23 Prozent der Sozialwissenschaftler glauben keine guten Chancen auf dem künftigen Arbeitsmarkt zu haben.

arbeitswelt 4.0

Vieles wird sich ändern

Die befragten Studenten sind sicher, dass sich künftig viel in der Arbeitswelt verändern wird. Nur ein Prozent der Befragten glauben, dass alles beim Alten bleibt.

Die Teilnehmer der Studie rechnen vor allem mit einer Veränderung des täglichen Arbeitsumfelds und vereinfachten Arbeitsabläufen.

Kritiker beider Megatrends befürchten, dass in der Zukunft viele Menschen durch intelligente Maschinen ersetzt werden. Eine künftig hohe Arbeitslosenquote, ist für die befragten Studenten allerdings wenig wahrscheinlich. 

Richtig reagieren

Um in der künftigen Arbeitswelt erfolgreich zu sein ist lebenslanges Lernen essentiell. Auch die Mehrheit der Befragten plant, sich innerhalb des eigenen Kompetenzbereichs weiterzubilden, um auf dem Arbeitsmarkt bestehen zu können. Sich umfassend über Industrie 4.0 und Digitalisierung zu informieren halten die befragten Studenten für die zweitwichtigste Reaktion auf beide Megatrends. Die befragten Studenten rechnen sich gute Chancen in der künftigen Arbeitswelt 4.0 aus. Ein künftiger Branchenwechsel kommt für die Minderheit der Studenten in Frage.

Wichtige Kompetenzen

Die Teilnehmer des Puls-Checks sehen einen Mix aus Soft-und Hard-Skills als Rezept für künftigen beruflichen Erfolg. 

Neben technischem und informatischem Verständnis, halten die befragten Studenten vor allem die Soft-Skills Flexibilität, Leistungsbereitschaft und Sozialkompetenz für künftige Kernkompetenzen. Kreativität und logisches Denken rückt für die Befragten in den Hintergrund

Kurz gesagt

Die Ergebnisse des Puls-Checks zeigen: Industrie 4.0 und Digitalisierung wird von einem Großteil der Studenten als Chance empfunden. Die Befragten glauben nicht an eine hohe Arbeitslosenquote in der Zukunft. Auffällig an den Antworten der Studie ist, dass Studenten eine Mischung aus fachlichen Fähigkeiten und Soft-Skills als künftige Kernkompetenzen ansehen. Die Augen zu schließen und sich auf die Zukunft zu freuen, reicht allerdings nicht aus.  Informieren, weiterbilden und fokussieren lautet die Devise der Studenten für künftigen beruflichen Erfolg. 

 

Ab 2018 suchen wir für innFactory Werkstudenten und Absolventen, die unser Team in den Bereichen der Softwareentwicklung und des Vertriebs unserer Plattform croGoDeal unterstützen.

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

 

Hintergrund: Das Backend unserer Produktidee „croGoDeal“ basiert in Teilen auf dem serverless Framework und Amazon Web Services (AWS). Wir nutzen hinter dem API Gateway eine AWS Lambda Funktion, die als GraphQL Schnittstelle dient. Die komplette Nutzerverwaltung wird mit dem AWS Dienst Cognito abgebildet. Damit wir die Schnittstellen in den einzelnen Entwicklungsstufen hinter dem API Gateway testen können, ohne, dass wir die Autorisierung ausbauen müssen, haben wir ein Desktoptool mit Electron entwickelt, dass uns JSON Web Tokens (JWT) generiert. 

  

Funktionsweise 

Der Screenshot zeigt die Funktionen der Applikation. Als Input sind lediglich der Cognito UserPool, die ClientId sowie die Benutzeranmeldedaten nötig. Der Token wird nach der Anmeldung rechts angezeigt und kann in ein anderes Entwicklungswerkzeug kopiert werden. Um nicht bei jedem Start die Daten eingeben zu müssen, werden die Einstellungen im Anwendungskontext persistent gespeichert. 

Technologien 

Die Anwendung wurde komplett mit der JavaScript-Bibliothek React programmiert, mit der man normalerweise Single Page Applikationen entwickelt. Um eine React App auf einem Desktop-PC nutzen zu können, verwenden wir das Framework „Electron“.

Electron liefert unsere React-App mit Hilfe von Chromium und Node.js als Desktopapplikation aus. 

Für die Anbindung zum AWS Cognito Service verwenden wir das offizielle aws-sdk für JavaScript. 

AWS Cognito Token Generator Software Architektur

 

Die Datenhaltung und Zustandsänderungen in der Anwendung werden durch Redux nach der Flux-Architektur umgesetzt.  Damit die Eingabedaten persistent erhalten bleiben, werden sie via Key-Value Paaren in den JSON-Storage geschrieben. Dies übernimmt immer der jeweilige Redux-Reducer bevor er den neuen Zustand zurückgibt: 

// user reducer 

export default function user(state: any = {}, action: actionType) { 
  switch (action.type) { 
    case SET_USER: 

      if (!action.data.rememberPassword) { 
        delete action.data["password"]; 
      } 

      // save user state persistently 
      storage.set("user", action.data, (err) => { if (err) { console.log(err) } }) 
      return action.data 

    default: 
      return state; 
  } 

Bei diesem Vorgehen muss man bedenken, dass jede State-Änderung auch einen Schreibzugriff auf die Festplatte mit sich zieht. Sobald man eine App mit sehr vielen State-Änderungen und evtl. großen Objekten entwickelt, sollte man besser auf eine periodische Datenspeicherung zurückgreifen, so wie es auch das Framework redux-persist macht. 

Der Sourcecode des Projekts ist OpenSource und auf unserer GitHub Seite verfügbar. 

 

https://github.com/innFactory/aws-session-token-gui  

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Am 01.04.2017 konnte wir in die Übergangslösung des Stellwerk18 in der Bahnhofstraße in Rosenheim einziehen. Damit sind wir neben 8sense, PaGe-IT, FutureTec Systems, CyanCore und Ecolodges eines der ersten Startups des Rosenheimer "Inkubators". Das eigentliche Stellwerk18 Gebäude (Abbildung) soll im September 2018 fertiggestellt werden, sodass die Gründer dort ihre innovativen Ideen verwirklichen können.

Weitere Informationen zur Startup Szene in Rosenheim findet man bei startups-rosenheim.de und auf der offiziellen Webseite des Stellwerk18.

Wie die Gruppe Startups Rosenheim möchten auch wir in naher Zukunft eine Meet-up Reihe starten. Allerdings wird bei uns der Fokus weitaus mehr auf der Technik und den Innovationen liegen. 

 

Stellwerk18 Rosenheim
Entwurf des zukünftigen Stellwerk18 in Rosenheim

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Für unser Produkt innCart benötigten wir eine mobile App für Android und iOS. Aufgrund der guten Erfahrungen mit React-Native haben wir uns für dieses Framework entschieden. Da unser Backendservice in Scala programmiert wird, galt es zu evaluieren, ob wir bei der Programmierung auf Scala mit ScalaJS setzen. Dieser Artikel soll das Ergebnis darstellen.

React-Native

Das JavaScript-Framework "React" von Facebook ist neben Angular eines der beliebtesten und spannendsten Frameworks für Webapplikationen, die es derzeit in der JavaScript-Welt gibt.

React bietet mit der Ausprägung "React-Native" auch die Möglichkeit Mobile Apps in JavaScript zu schreiben - und zwar plattformübergreifend! Dies funktioniert in der Praxis so gut, dass zahlreiche Hersteller Ihre Apps mit dieser Technologie umsetzen. Facebook, Instragram, Airbnb oder auch MieterCast sind nur einige der bekannteren Beispiele. Auch die Community rund um React-Native wächst derzeit stark an. Es gibt mittlerweile für fast alle Bedürfnisse Bibliotheken und Beispiele. Und wenn es doch mal zu einem Problem kommt, hilft die React-Native Usergroup in München weiter.

Eigentlich alles super - wäre da nur nicht JavaScript! Mit ES6 hat sich JavaScript zwar wieder ein großes Stück in die richtige Richtung bewegt, aber für größere Projekte wünscht man sich die Vorteile einer typisierten Sprache, auf die nachfolgend noch näher eingegangen wird.

Scala

Als Alternative zu TypeScript haben wir Scala genauer unter die Lupe genommen. Beide Sprachen ermöglichen eine typisierte Entwicklung. Der TypeScript bzw. Scala Sourcecode wird nach JavaScript transcompiliert und ist somit von jedem Browser interpretierbar und in Kombination mit React-Native auch als Smartphone App nutzbar. Wie eingangs erwähnt lassen wir TypeScirpt außen vor und beschäftigen uns nur mit der Frage, ob es für uns Sinn macht, bei der App-Entwicklung in React-Native auf Scala zu setzen oder stattdessen lieber direkt in JavaScript zu entwickeln.

Um Scala-Code nach JavaScript zu übersetzen ist der Transcompiler Scala.js notwendig. Damit man in Scala auch React-Native verwenden kann, haben wir das Framework SRI (Scala React Interface) verwendet. In folgender Grafik wird der Technologie-Stack mit Scala (links) und ohne Scala (rechts) dargestellt:

ScalaJS vs JavaScript React-Native Stack 

Nach einer ausgiebigen Versuchsreihe mit der Verwendung von Scala in Kombination mit React-Native haben sich folgende Vor- und Nachteile herauskristallisiert:

 

Vorteile

Starke Typisierung

Die Unterstützung von Typen, Klassen und Interfaces (bzw. Traits) wirkt sich besonders bei großen Projekten in Form von robusterer und besser wartbarer Software aus. Des Weiteren ist durch die Typisierung eine bessere IDE-Integration möglich, was erheblich zum Komfort bei der Entwicklung beiträgt und ein nicht zu unterschätzender Faktor ist.

Optimierter JavaScript-Code

Der Scala.js-Compiler optimiert den bei der Übersetzung den JavaScript-Output. Dies ergibt in der Regel eine bessere Performance.

Scala als Sprache für Back- und Frontend

Speziell bei innFactory setzen wir für Cloud- und Serveranwendung zunehmend auf Scala. Mit Scala und React-Native könnten wir ein Teil dieses Know-Hows auch in der Frontendentwicklung der mobilen Clients nutzen.

 

Nachteile

Viele Abhängigkeiten

Wie die obige Grafik zeigt, ergeben sich neben React-Native noch zwei zusätzliche Abhängigkeiten, Scala und SRI. Zudem kommen noch externe Bibliotheken hinzu, die für Scala angepasst werden müssen. Bei einer neuen Version von nur einer einzelnen Komponente im Stack kann es zu Konflikten bei den anderen Abhängigkeiten kommen. Das Auffinden von Fehlerquellen ist nur dann leicht gegeben, wenn es sich um eine schlanke Architektur mit nur wenigen externen Bibliotheken handelt. 

Kleine Community

Da die Technologien bisher nur wenige Unterstützer auf github haben, wäre eine Einstellung des Supports ein weitaus größeres Risiko. Abgesehen von Scala.js steckt hinter dem Stack kein professioneller Support, sondern lediglich sehr gute Freizeitprojekte. Vor allem bei SRI besteht hier eine sehr große Unsicherheit, da es nur wenige Entwickler gibt. 

Benötigtes Wissen in beiden Technologien (Scala und React-Native)

Gute Scala-Entwickler sind schwer zu finden. Für React gibt es inzwischen etwas mehr. Aber Programmierer aufzuspüren, die beide Technologien beherrschen ist fast ein Ding der Unmöglichkeit.

Während die Einarbeitungszeit für einen JavaScript-Entwickler in React-Native nur wenige Tage bis Wochen beträgt, erhöht sie sich in Kombination mit Scala auf einige Monate. Für Scala-Programmierer beträgt die Zeit zum Aufbau des Know-Hows nicht ganz so lange, aber auch hier müssen die Konzepte von React, wie z.B. die Redux-Architektur, erstmal verinnerlicht werden.

 

Fazit

Für uns hat Scala einen festen Platz, wenn es um Backend- und Cloudentwicklungen geht. Die Idee mit Scala auch JavaScript zu erzeugen ist sehr spannend. Aber für das anstehende Projekt überwiegen in unserem Fall die Nachteile eindeutig. Der Technologie-Stack ist leider noch zu wackelig. Auch die Aufstockung des Entwicklerteams könnte sich als extrem schwierig erweisen. Allein letzterer Punkt würde für uns als K.O.-Kriterium ausreichen.

Wir finden, dass sich das Scala.js-Projekt in die richtige Richtung bewegt und werden es sehr genau im Auge behalten. Für unsere Produktentwicklung aber, werden wir auf reines React-Native für die App setzen und Scala als primäre Technologie im Backend verwenden.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

In der heutigen vernetzten und immer komplexer werdenden Welt gestaltet es sich zunehmend schwierig für Unternehmen, Schritt zu halten und gegenüber der Konkurrenz am Ball zu bleiben.

Während die Technik ungebremst voranschreitet, steigen die Ansprüche der Nutzer und der Innovationsdruck kontinuierlich. In vielen Branchen ist der Druck bereits so groß, dass Innovationen hier nicht mehr als „Game Changer“, sondern als überlebensnotwendig betrachtet werden. Dabei heißt es gerade in der digitalen Ära 4.0 für Unternehmen immer stärker auf strategische Partnerschaften zu setzen und so branchenübergreifend Innovationsvorteile für sich zu verbuchen.

Innovation fordert Unternehmen zum Umdenken auf

Innovation zu gestalten und voranzutreiben ist nämlich alles andere als einfach im Zeitalter des Internet der Dinge, der damit einhergehenden umfassenden Vernetzung und der daraus entstehenden immensen Datenmengen, die es zu bewältigen gilt. Die Vielzahl an Anwendungsmöglichkeiten und die technologische Komplexität verlangen nach breiter Expertise. Ein einzelnes Unternehmen kann das allein praktisch nicht leisten. Genau bei dieser Problematik greifen neue Ansätze wie Co-Innovation und Open Innovation. Doch diese fordern gleichzeitig ein Umdenken seitens der Unternehmen.

Gemeinsam Ideen entwickeln 

Frei nach dem Motto „Gemeinsam sind wir stark!“ werden beim Konzept der Co-Innovation mit Geschäftspartnern, FHs und Universitäten Ideen generiert und evaluiert. Kunden, Branchenpartner, Lieferanten, aber auch Mitbewerber werden projektbezogen und flexibel eingebunden. Alle Teilnehmer entwickeln, planen und prüfen gemeinsam neue Funktionen und Applikationen für entsprechende Angebote und Produkte. Durch Co-Innovation wird darüber hinaus Wissen einbezogen, um den Innovationsprozess zusätzlich zu beschleunigen und zu optimieren. In der Praxis wickeln die Partner dies über langfristige Allianzen, Joint Ventures oder auch gemeinsame Entwicklungszentren ab.

Herausforderung Co-Innovation: Neue Wege, nachhaltige Erfolge

 

ascendo sorgt in diesem Themenkomplex dafür, dass die Früchte der Co-Innovation in der Geschäftswelt ankommen. Der fortschreitende Trend der Digitalisierung ist das Mittel zum Zweck um nachhaltigen Wert zu generieren. Der Schlüssel zum Erfolg lautet dabei wie so oft: Projektmanagement von Profis! Dies gilt sowohl für die ersten Kunden wie auch für das Start-Up Unternehmen selbst. Daher unterstützt ascendo insbesondere auch die jungen Start-Ups mit Know-How und viel Erfahrung.

ascendo bringt dabei verschiedenartige Fähigkeiten, Ideen und Markterfahrungen zusammen und minimiert das Investitionsrisiko. ascendo etabliert von Anfang an Beziehungen zu beiderseitigem Vorteil und sorgt dafür dass am Ende des Weges auch kommerzieller Nutzen entsteht.

Gastbeitrag des Geschäftsführers Manuel Kathofer - ascendo Professionals Consulting GmbH

Kategorien

  • Neuigkeiten
  • Gastbeiträge
  • Data Science & Engineering
  • Softwareentwicklung
  • Innovationen aus aller Welt
  • Microservices & Cloud Computing

Blogbeiträge

Microservice Blog

Die Buzzwords Digitalisierung und Industrie 4.0 sind in aller Munde, aber was bedeutet das für die Unternehmer? Unser Blog hilft dabei, die Cloud, Machine Learning, die Blockchain und viele weitere Hypes und Trends zu verstehen. Unser Schwerpunkt liegt dabei klar auf dem Cloud Computing und der Programmierung von verteilten Softwarelösungen, da unsere Expertise dort am Größten ist.