Memo zur Studiensitzung: Kansai Java Engineers Association [Osaka] 7/12 --Cloud Native

Einführung

Ich war dort, weil Seki Java eine Ein-Mann-Sitzung von Microsoft Terada abhielt. Eine Sitzung mit demselben Thema wurde bereits bei Java One Tokyo usw. abgehalten und ist zu einem heißen Thema geworden, aber es war sehr hilfreich, da es gut aufgenommen wurde.

Überblick

Kansai Java Engineers Association [Osaka] 7/12 --Cloud Native Datum: 2017/07/12 (Mittwoch) 19: 00-21: 00 Uhr Standort: Microsoft Japan Kansai Branch

Thema

Für die Cloud-native skalierbare App-Entwicklung 12 Factor App on Kubernetes on Azure

Referenz (frühere Geschichte)

⇒ Da wir diesmal Zeit haben, haben wir mit Seki Java Original Ver fortgefahren. Basierend auf diesen.

Ergebnisse des Vorfragebogens

https://yoshio3.com/2017/07/05/2017-java-appserver-usage-questionnaire/

Nutzung des Java-Servers

  1. Platz: Tomcat

Wenn Sie bereits auf den integrierten Container (ausführbare JAR) migriert haben, auf welches Framework haben Sie migriert?

  1. Platz: Spring Boot

Details werden zu einem späteren Zeitpunkt im Blog veröffentlicht

Hauptgeschichte

(* Leute, die bereits Microservices in Entwicklungsprojekten herstellen ... ungefähr 5 Leute)

Über Mikrodienste

⇒ Ich weiß nicht, wo ich anfangen soll ⇒ Es ist tatsächlich schwierig einzuführen, selbst wenn das Thema die neuesten Trends sind Das heutige Thema ⇒ Wie man sich Mikrodiensten nähert

Verschieben Sie das, was auf dem Pres funktioniert hat, so wie es ist in die Cloud ⇒ Ich kann die Vorteile der Cloud nicht nutzen

Bedarf an Mikrodiensten

(* Leute, die geantwortet haben, dass es notwendig ist ... ungefähr die Hälfte?)

Kenntnisse und Know-how sind als Ingenieur erforderlich ⇒ Alles ist kein Mikrodienst ⇒ Es ist keine Wahl zwischen monolithischem oder Mikrodienst

――Wenn Sie fortfahren, ohne über Mikrodienste nachzudenken, schlägt dies fehl. ――Der Mikrodienst macht Sie glücklich, nicht der Mikrodienst macht Sie glücklich ――Der Effekt kann nur erzielt werden, wenn Sie über eine für Ihren Dienst spezifische Methode nachdenken und diese realisieren.

◎ Das schlechteste Muster

◎ Sie können dies ohne MSA tun

◎ MSA effektives Muster

--Fehlertoleranz

Haben Sie Mikrodienste eingeführt? (Übersee)

Besonders in den Vereinigten Staaten gibt es ein Gefühl der Krise, von dem wir nicht wissen, wann unser Geschäft zerstört wird. Rakuten usw. haben in Japan die gleiche Tendenz

The twelve-factor app

https://12factor.net/ja/

(* Kubernetes Personen, die ⇒ 2 oder 3 Personen berührt haben)

DEIS… Workflow-Engine http://deis.io/ http://qiita.com/wataru420/items/4bc7c52313d5d06a847c

Hands on https://github.com/yoshioterada/DEIS-k8s-ACS

Quellcodeverwaltung

[Konventionell] Verwalten Sie mehrere Dienste mit einem Repository [MSA] Separate Repositorys für jeden Dienst ⇒ Leicht verständliche Änderungshistorie

Irgendwie Implementierung (Prozess)

Sitzungsverwaltung

[Konventionell] Realisiert mit der Funktion des Anwendungsservers [MSA] Beenden Sie die Abhängigkeit vom Anwendungsserver ⇒ Sitzungsinformationen löschen

Inmemory Grid

Die Sitzungsverwaltung von Anwendungsservern kann nicht skaliert werden, wenn die Sitzungsinformationen zunehmen

Parallelverarbeitung / asynchron / nicht blockierend

Asynchron ← Wer von nun an MSA lernt, muss lernen

Ist es synchron? Ist es asynchron? ⇒ Denken Sie an synchron oder asynchron statt an Alternativen

Das Blockieren / Nichtblockieren ist ebenfalls wichtig ⇒ Beim Blockieren fallen aufgrund der Parallelverarbeitung bestimmte Dienste an

Leistungsschalter

Trennen und Wiederherstellen von Diensten im Falle einer Verzögerung oder eines Ausfalls eines bestimmten Dienstes

Gemeinsame Bibliothek (Abhängigkeit)

(* Personen, die mit gemeinsam genutzten Bibliotheken umgehen ... 60%?)

Erstellen ⇒ Richten Sie ein privates Repository ein

Flexible Ressourceneinstellungen (Einstellungen, Backend-Dienste)

Umgebungsvariable oder Einstellungsserver ⇒ Lesen Sie die Einstellungen aus den Umgebungsvariablen

Erstellen / Freigeben / Ausführen

Erstellen / Freigeben mit DEIS Ermöglicht ein schnelles Rollback

Einfache Entsorgung

  1. Skalierung der Azure Container Service-VM
  2. Skalieren Sie auf Pod-Ebene von k8n
  3. Auf DEIS bereitgestellte Anwendungsskala

Werden Sie eine eigenständige und leichte App Veröffentlichen Sie Dienste durch Portbindung

Entwicklungs- / Produktionsmatch

Realisierungsmethode

Java Feature Flag… toggz

Betriebs- / Überwachungsprotokoll

Es ist schwer, das Rohprotokoll zu sehen Versuchen Sie, alle Zavis-Protokolle auszuspucken Überprüfen Sie mit elastischer Suche usw.

Datenbankverknüpfung

1.1 Service 1-Datenbank (RDMBS auf 1VM) 2.1 Service 1-Datenbank (RDMBS auf MultiVM) 3. Datenbankverknüpfung (Nachrichtenverknüpfung) --Verwenden Sie ein Nachrichtensystem 4. CQRS (Lese-Schreib-Trennung)

Wenn eine vollständige Transaktionsverwaltung erforderlich ist, muss keine Nachrichtenverknüpfung vorhanden sein ⇒ Überlegen Sie sich die geeignete Methode

schließlich

Hindernisse treten auf ↓ [Konventionell] Ich werde mein Bestes tun, um nicht aufzustehen [MSA] Machen Sie es sicher aufzuwachen

Wo tritt der Fehler auf? ⇒ In allen aufwachen

Jetzt ist es wieder ein empfohlenes Buch

Release It! Zum Entwerfen und Bereitstellen von Produktionssoftwareprodukten

Impressionen

Wenn Sie direkt auf die Realität schauen, dass Microservices nicht gut oder schlecht sind, können Sie sie nur realisieren, indem Sie sorgfältig überlegen, wie sie zu ihnen passen, und Hinweise geben, wie Sie über eine bessere Form des Service nachdenken können. Ich denke, es war der Inhalt, der präsentiert wurde. Sie haben am Anfang erwähnt, dass viele neue Technologien herauskommen und es viele Dinge zu studieren gibt, aber ich denke, das ist wahr. Benkyo! Benkyo!

Recommended Posts

Memo zur Studiensitzung: Kansai Java Engineers Association [Osaka] 7/12 --Cloud Native
Memo zur Studiensitzung: Kansai Java Engineers Association 8/5 - Selenium
[Memo zur Studiensitzung] Java Day Tokyo 2017
Java Silver Lernmethode Memo
Java Study Memo 2 mit Progate
[Inhouse-Studiensitzung] Behandlung von Java-Ausnahmen (26.04.2017)
[Java ~ Informationen zur Variablendefinition und Typkonvertierung ~] Studiennotiz