Paweł Rajba

Podobne dokumenty
Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

OD MONOLITU DO MIKROUSŁUGI MICROSERVICES

Architektura systemów webowych wysokiej przepustowości. na przykładzie Wikia

Asseco dla Zdrowia r.

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

Wybrane działy Informatyki Stosowanej

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Program szkolenia: REST i Microservices w PHP

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Aurea BPM Dokumenty pod kontrolą

Bezpieczeństwo aplikacji internetowych. Rozwój napędzany potrzebą WALLF Web Gateway. Leszek Miś, RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o.

Virtual Grid Resource Management System with Virtualization Technology

Dane bezpieczne w chmurze

Paweł Rajba

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Historia modeli programowania

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Elastyczna sieć dla rozwiązań Cloud Open vswitch

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Elektroniczna Księga Wieczysta

Narzędzia mobilne w służbie IT

PureSystems zautomatyzowane środowisko aplikacyjne. Emilia Smółko Software IT Architect

Funkcje backendu konfiguratora. Warszawa,

Jak stworzyć system oparty o mikroserwisy Karol Buler

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

MONITOROWANIE DOSTĘPNOŚCI USŁUG IT

Uslugi chmurowe dla nauki na podstawie BonFIRE

Cleeng Case Study. Klient Cleeng. Branża. Okres realizacji. Zakres usługi: Consulting. Projekt i wdrożenie Chmury AWS. Zarządzanie chmurą

Architektura i mechanizmy systemu

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

System zarządzania i monitoringu

Przetwarzanie danych w chmurze

OSGi Agata Hejmej

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Galileo - encyklopedia internetowa Plan testów

CI/CD - CO TO? PO CO? JAK?

SOA Web Services in Java

Java Developers Day. Implementacja ESB przy użyciu Mule. ESB Mule Obsługa zamówień DEMO

Tematy prac magisterskich Rok akademicki 2013/2014

REKOMENDACJE DOTYCZĄCE PLATFORMY ZARZĄDZANIA KOMPETENCJAMI

Zarządzanie farmami serwerów Linux

Nowoczesne aplikacje mobilne i ich rola w podnoszeniu jakości danych

Tworzenie i wykorzystanie usług sieciowych

Klucz do wydajności JBoss. Przemysław Kuźnicki RHC{E,VA} JBCAA B2B Sp. z o.o. pk@bel.pl

ZAŁĄCZNIK Nr 2 do CZĘŚCI II SIWZ WYCIĄG ZE STANDARDÓW, ZASAD I WZORCÓW INTEGRACYJNYCH OBOWIĄZUJĄCYCH W PSE S.A.

SANSEC Poland S.A. dla III Konwent Informatyków Warmii i Mazur Bezpieczna administracja w mobilnym świecie

1. Architektura logiczna Platformy Usługowej

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Microsoft Azure Architect Technologies

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

SysLoger. Instrukcja obsługi. maj 2018 dla wersji aplikacji (wersja dokumentu 2.5)

Aktualizacja do Microsoft SQL Server Adam Rynarzewski MCT

Storware KODO. Zaawansowana platforma do zarządzania i zabezpieczenia danych na urządzeniach mobilnych STORWARE.EU

Architektura mikroserwisów na platformie Spring IO

Konieczne inwestycje z obszaru IT w sektorze elektroenergetycznym Integracja Paweł Basaj Architekt systemów informatycznych

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

Koniec problemów z zarządzaniem stacjami roboczymi BigFix. Włodzimierz Dymaczewski, IBM

Rok akademicki: 2014/2015 Kod: EAR IS-s Punkty ECTS: 4. Kierunek: Automatyka i Robotyka Specjalność: Informatyka w sterowaniu i zarządzaniu

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Win Admin Replikator Instrukcja Obsługi

CSA STAR czy można ufać dostawcy

ZAŁACZNIK NR 1D KARTA USŁUGI Utrzymanie Systemu Poczty Elektronicznej (USPE)

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

epuap Opis standardowych elementów epuap

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Aurea BPM. Lepsze procesy, lepsze wyniki Warszawa, 24 lipca 2013

Dobre praktyki w doborze technologii rozwiązań informatycznych realizujących usługi publiczne

Standard określania klasy systemu informatycznego resortu finansów

ZARZĄDZANIE DOKUMENTACJĄ. Tomasz Jarmuszczak PCC Polska

Nieustanny rozwój. Tomasz Leśniewski

UNIVERSAL TRADING PLATFORM (UTP) NOWOCZESNA PLATFORMA OBROTU GPW

Systemy Rozproszone. Zagadnienia do egzaminu.

Implementowanie zaawansowanej infrastruktury serwerowej Windows Server 2012 R2

Paweł Rajba

Letnia Akademia SUSE. Implementacja nowych rozwiązań open source wszystko, co musisz wiedzieć!

Oprogramowanie dostosowane do potrzeb użytkownika. Skrócenie czasu wejścia na rynek

SYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH. tel: +48 (032)

Przykładowa implementacja

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

B2BCloud simple way to Scale Sale

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Serwery LDAP w środowisku produktów w Oracle

AUMS Digital. aums.asseco.com

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Zapytanie ofertowe na: Zakup wartości niematerialnej i prawnej w postaci nowoczesnego systemu B2B wraz ze szkoleniem z obsługi ww.

Bazy danych - ciągłość działania, spójność danych i disaster recovery. Daniel Polek-Pawlak Jarosław Zdebik

Zintegrowana Platforma SWD

Kluczowe aspekty wdrażania narzędzi do zarządzania projektami

Transkrypt:

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Wprowadzenie Design Principles Technologie Kto tego używa?

Service Oriented Architecture Funkcjonalności udostępnione jako usługi Określony kontrakt wymiany danych Daje możliwość skorzystania z funkcjonalności wielu różnym klientom (web, mobile, desktop) Dobrze napisane umożliwia łatwe skalowanie Cykl życia usługi nie wymusza zmian u klientów (dopóki zachowany jest kontrakt)

Microservices Koncept SOA, ale w bardziej granularnej postaci Małe usługi z pojedynczymi odpowiedzialnościami Aplikacja zwykle bazuje na wielu usługach Dostęp do usług nie powiązany z żadną technologią Lekka komunikacja pomiędzy komponentami Każda usługa ma własne repozytorium danych Każda usługa ma własny cykl życia i publikacji Transakcje najczęściej są rozproszone lub oparte o eventual consistency

Microservices, przykładowy diagram https://programmaticponderings.files.wordpress.com/2015/05/virtual-vehicles-architecture-4.png

Wady monolitycznej architektury Czas publikacji dużego systemu może być długi Publikacja obarczona większym ryzykiem błędów Małe, szybkie zmiany muszą czekać na release Sztywny zbiór technologii (technology stack) Brak możliwości łatwej adaptacji nowych technologii Często silne powiązania pomiędzy komponentami Jeśli kod jest źle napisany, a najczęściej tak jest Skalować musimy cały system, a nie pojedyncze składowe, które potrzebują skalowania

Dlaczego MicroServices? Szybsza reakcja na zmiany w biznesie, częstsze publikacje Uniezależnienie często zmienianych komponentów Łatwiejsza skalowalność Większa odporność i bezpieczeństwo systemu Awaria w jednej usłudze nie musi oznaczać awarii całego systemu Łatwiej odwzorować strukturę funkcjonalną organizacji (DDD) Sporo wsparcia w technologii Lekkie protokoły Usługi w chmurze, wirtualizacja Wsparcie dla komunikacji asynchronicznej

Wysoka spójność SOLID: Single Responsibility Principle tylko jeden powód na zmianę usługi Ten powód może wynikać z obszaru lub funkcji biznesowej Ważne, żeby go jasno ustalić Jeśli trzeba: tworzymy nowe usługi przebudowujemy istniejące

Autonomiczność Luźne powiązania oparte na kontraktach i interfejsach Komunikacja Synchroniczna Asynchroniczna (np. przez publikację i obsługę zdarzeń) Niezależność technologiczna Unikanie publikacji bibliotek klienckich. Wyjątki? Unikamy współdzielenia baz danych i bibliotek Usługa ma własny cykl życia i zmiany w innych komponentach powinny być niezależne Wsteczna kompatybilność (Open-Closed principle) Strategia wersjonowania Utrzymywanie dwóch wersji przez pewien czas Warto przemyśleć odpowiednie endpointy (np. /V2/invoice/) Semantic versioning: Major.Minor.Patch (np. 1.7.12)

Business Domain Centric Granice funkcjonalności powinny być wyznaczone przez funkcję biznesową Związek z Bounded Context z DDD Wsparcie dla Domain lub Sub Domain Granice powinny się dostosowywać wraz z rozwojem domain lub subdomain Jasny interfejs i kontrakt na zewnątrz Aspekt techniczny Niepożądany, ale czasami pragramatyczny Problem z wydajnością Osobna usługa do archiwizacji danych

Odporność na awarie Przygotować system na spodziewane problemy Np. wynikające z interakcji z usługami zależnymi Przykładowe strategie to Wyłączyć ten rodzaj funkcjonalności np. pokazywanie promocji Udostępnić podstawową lub ograniczoną funkcjonalność (np. ceny domyślne bez rabatów) Fail fast Jeśli coś idzie nie tak, szybki feedback do użytkownika Nie przeciągać transakcji Sterowanie przez timeouty (globalne, per transakcja, itp.) Problemy mogą być na wielu poziomach: wyjątki, opóźnienia, niedostępność, problemy z siecią Monitorować timeouty do późniejszej analizy

Monitoring i logging Status systemu (health check) Zcentralizowany monitoring Monitorowanie na różnych poziomach Infrastruktury, transakcji biznesowych Monitorowanie różnych aspektów Timeouty, czasy odpowiedzi, dostępy do danych, procesy biznesowe (np. czas od zatwierdzenia koszyka do złożenia płatności) Określenie SLA i generowanie powiadomień w przypadku jej niedotrzymania Narzędzia do wizualizacji danych Rozwiązywanie problemów i planowanie skalowania Zcentralizowany logging Rejestracja istotnych zdarzeń, aby sprawnie rozwiązywać problemy Rejestracja odpowiednich danych: czasu, hosta, komunikatu, itd. Rejestracja CorrelationID do śledzenia rozproszonych transakcji

Automatyzacje Continues Integration Wykonanie unit i integration tests Continues Deployment, DevOps Daje bardzo szybką publikację zmian Współpracuje zwykle z CI Użytkownik bardziej zadowolony

Komunikacja Synchroniczna Asynchroniczna Zdarzenia i kolejki, platforma integracyjna Oparta o RPC, HTTP, REST Hosting Wirtualizacja Containers Wirtualizacja w bardziej granularnym wymiarze np. Docker Własne maszyny lub IaaS

Rejestracja i katalog Pożądanym jest posiadanie repozytorium dostępnych usług Usługa może rejestrować się sama, rejestracja może być też zapewniona przez infrastrukturę Infrastruktura może monitorować usługi i wyrejestrowywać te, które nie odpowiadają Monitoring Na poziomie sieci: Nagios, PRTG Na poziomie aplikacji: New Relic, BMC APM Logging Rozwiązania: Splunk, Kibana, ważne automatyczne analizy Śledzenie transakcji poprzez CorrelationID Kwestia formatu logów Dla MicroServices: koniecznie zcentralizowany

Skalowanie Więcej instancji usługi vs. więcej zasobów dla usługi Automatyczne vs. na żądanie Load balancers Kiedy: problemy z wydajnością (bieżące lub spodziewane) Caching Są dużym wsparciem dla poprawy wydajności Implementowane na różnych poziomach (proxy, client)

API Gateway Główny punkt wejścia dla infrastruktury MicroS. Może implementować Load balancing, Caching, Security Pozwala na Jeden punkt dostępowy do wszystkich MicroServices Bardziej dynamiczne zarządzenia infrastrukturą MS Lepszy routing, np. klientów z Europy kierować do odpowiednich serwerów

the UK Government Digital Service Real Estate Property & Homes For Sale Forward Twitter PayPal Bluemix The Guardian

http://martinfowler.com/articles/microservices.html http://martinfowler.com/microservices/ https://smartbear.com/learn/api-design/what-are-microservices/ https://en.wikipedia.org/wiki/microservices https://blog.karmawifi.com/how-we-build-microservices-at-karma- 71497a89bfb4#.nz66s9wxk http://www.slideshare.net/infoq/from-a-monolith-to-microservices-rest-the-evolution-oflinkedins-service-architecture http://www.pwc.com/us/en/technology-forecast/2014/cloudcomputing/features/microservices.html