EGY NAGYBÓL HÚSZ KISEBB



Hasonló dokumentumok
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

JAVA webes alkalmazások

A Java EE 5 plattform

Junior Java Képzés. Tematika

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül

S04-2 Elosztott alkalmazások készítése

SUSE Linux Enterprise High Availability. Kovács Lajos Vezető konzultáns

Gyors, kényelmes, típusbiztos

A DevOps-kultúra eszközei

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,

Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

Érettségi tétel az IT vizsgán: Felhő

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Budapest Sysadmin Meetup Failover Cluster 1x1. Gál Tamás. Cloud Infrastructure TSP Microsoft Magyarország

SUSE Container as a Service Platform Nagyvállalati Kubernetes. Papp Zsolt Konzultáns

Smart Campus. BME-Ericsson project

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

Composable Infrastruktúra

Oracle Enterprise Manager 12c Cloud Control és 11g Grid Control összehasonlítás

MVC. Model View Controller

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Az IBM megközelítése a végpont védelemhez

Osztott rendszerek, Java EE. Általános bevezető

Enterprise JavaBeans 1.4 platform (EJB 2.0)

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Üzleti szabálykezelés

Osztott alkalmazások fejlesztési technológiái Áttekintés

A cloud szolgáltatási modell a közigazgatásban

COMPANY PROFILE SZOFI ALGORITHMIC RESEARCH KFT

ARM Cortex magú mikrovezérlők. mbed

Szerver-üzemeltetés - Tudásközpont, Pécs

vezeték nélküli Turi János Mérnök tanácsadó Cisco Systems Magyarország Kft.

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

IT Factory. Kiss László

Hogyan legyél DevOps

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Alkalmazás és megjelenítés virtualizáció

Fekete Csaba Csongor Üzleti intelligencia vezető Citibank ZRt.

Mobil Informatikai Rendszerek

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Mobil Informatikai Rendszerek

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

API tervezése mobil környezetbe. gyakorlat

webalkalmazások fejlesztése elosztott alapon

Komponens modellek. 3. Előadás (első fele)

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Félreértések elkerülése érdekében kérdezze meg rendszergazdáját, üzemeltetőjét!

Fejlesztés és üzemeltetés WebLogic platformon

Allied Telesis. Szakmai nap 2017 Pásztor András

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Hegyi Béla, technikai tanácsadó. Cisco MARS Bemutatása

Szolgáltatási szint és performancia menedzsment a PerformanceVisor alkalmazással. HOUG konferencia, 2007 április 19.

SCHNETv6 IPv6 a Schönherzben. 5/7/12 Tóth Ferenc - IPv6 a Schönherzben 1

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

CSEMPE GENERÁLÓ ALKALMAZÁS FÖLDHIVATALI ADATBÁZISHOZ Pálfi Antal PAGEOS

Mobil eszközökön tárolt adatok biztonsága

(Teszt)automatizálás. Bevezető

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Webes alkalmazások fejlesztése

Hibrid Cloud az új Oracle Enterprise Manager Cloud Control 13c-vel

Elosztott rendszer architektúrák

Advancé technologies bemutatja

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Párhuzamos és Grid rendszerek

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

IBM Moduláris Üzemeltetési Szolgáltatások nem csak nagy vállalatok részére

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Előadók: Angyal Gergely (Raiffeisen), tesztelési csoportvezető Kováts Márton (KFKI), szenior rendszermérnök

IPv6 bevezetés a Műegyetem hálózatán. Jákó András

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

IBM Tivoli Endpoint Manager

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Hiperkonvergens infrastruktúra. Brenner Zoltán rendszermérnök

NoSQL technológiák. NoSQL Fórum Budapest, március 23. Diasablon: - a fotók sajátok :)


Az alkalmazás minőségbiztosítás folyamata Fókuszban a teszt-automatizálás

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

TOGAF elemei a gyakorlatban

Az automatizált, kontrollált és ITIL alapú munkafolyamat kezelés

Információs Rendszerek Szakirány

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

GeneSyS: Generikus rendszerfelügyeleti middleware

Termék életciklus és a verziókezelés

Mobil szolgáltatások és alkalmazások fejlesztése

Működő ITSM Ne ágyúval verébre

HP Networking. Hálózat-menedzsment vegyes gyártói környezetben. Légrádi Attila HP Networking TC

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

Eduroam változások - fejlesztések, fejlődések. Mohácsi János KIFÜ NIIF Program HBONE Workshop 2015

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Együttműködésben a külvilággal, együttműködésben a piaccal

Újdonságok Nexus Platformon

E-CENTRAL SALES AUTOMATION. Tudj mindent ügyfeleidről!

Átírás:

EGY NAGYBÓL HÚSZ KISEBB JAVA EE ALKALMAZÁSÉPÍTÉS 2015-BEN - ESETTANULMÁNY KÁLMÁN ANDRÁS, KÁSA KÁROLY PRECOGNOX INFORMATIKAI KFT, 2015. WWW.PRECOGNOX.COM

TARTALOM Monolit és több applikációra bontott alkalmazások előnyei és hátrányai Monolit alkalmazásunknál használt technológiák Több alkalmazásra elosztott megvalósításnál használt technológiák Eszközök amiket a megnövekedő összetettség miatt kell használni Egy JAX-RS implementáció példa

MONOLIT ALKALMAZÁS Kisebb alkalmazásnál - Monolit előnyök: könnyebb deployment Egyszerűbb architektúra Jól átlátható fejlesztési időben a team-nek Nagyobb funkcióhalmaznál - Monolit hátrány Vertikálisan kell skálázni a fejlesztői, teszt és éles gépek erőforrásait (elsősorban RAM) Megnövekedő deployment idő -> belassuló fejlesztés Egy funkció hibája a teljes alkalmazást és a többi team tagot is visszafogja Apró módosítás miatt (pl. szöveg resource változás) is teljes újratelepítés

TÖBB ALKALMAZÁS ([MICRO]SERVICE) EGYÜTTMŰKÖDÉSE Előnyök: Könnyebb fejlesztés, mert átlátható és gyorsan módosítható, kisebb modulokon dolgozunk Tiszta, jól definiált funkcionális határvonalakat könnyebb betartatni Általános szolgáltatás többször felhasználható Gyorsabb deployment ami nem akadályozza feltétlenül a teljes működést Hátrányok: Összetettséget visz át az architektúrára Bonyolult release folyamat és verziózás Figyelni kell az API-k verzió kompatibilitására Nehezebb tesztkörnyezetet felállítani (lokálisan és szerveren is) Sok adminisztráció a Git-ben és JIRA-ban Bonyolultabb konfiguráció menedzsment és service discovery szükséges

MONOLIT VÁLTOZATUNK FŐ MEGOLDÁSAI 1. Egy nagy ANT build script 2. Jenkins készített EAR-t és ezt tettük Jboss 6-ba 3. Homogén fejlesztőkörnyezet Vagrant segítségével 4. Infrastruktúra automatizálás és deployment Chef alkalmazásával 5. Teljes kiesés a frissítés idejére. Hosszú lefutású folyamatok miatt előtte fél óráig is blokkoltunk bizonyos funkciókat 6. Heterogén fejlesztői tudásszint miatt a funkcionális határvonalakat gyakran megsértették. Nagy refaktorálásokat kellett beiktatni, amit nehéz elfogadtatni a megrendelővel

TÖBB ALKALMAZÁSRA ELOSZTOTT MEGOLDÁSUNK 1. Gradle build (convention over configuration előnye ANT-hoz képest) 2. Jenkins Docker image-eket készít 3. A neki legmegfelelőbb ( legvékonyabb ) alkalmazásszerver minden app-nak (Dropwizard, Jetty, Tomcat, Wildfly) 4. Chef szerepe visszaszorult a Docker alkalmazásával 5. Ritka a fő funkció elérhetetlenné válása, mert a háttér szolgáltatások gyorsan cserélhetők, szinte kiesés nélkül 6. Kis fejlesztői csapatok felelnek az egyes alkalmazásokért, amik méretük miatt így konzisztensebb minőségben fejlődnek

ÚJ ÉS RÉGI VERZIÓ TECHNOLÓGIAI ÖSSZEHASONLÍTÁS Monolit MVC - JSF + J2EE Control és Service rétegek + JPA perzisztencia 4 nagyobb alkalmazás (SSO, custom File server, custom CRM és a fő alkalmazás) Külső alkalmazásoknak WS alapú API ElasticSearch log tárolás saját Logback appender-rel és Kibana lekérdezőfelület Nagios monitoring (dőlt betűvel azokat jelöltem amiket nem alkalmazunk az új változatban)

ÚJ ÉS RÉGI VERZIÓ TECHNOLÓGIAI ÖSSZEHASONLÍTÁS Több alkalmazásra elosztott AngularJS + TypeScript frontend, RESTful backends 20 alkalmazás, amiből csak 2 stateful Message alapú alkalmazásközi kommunikáció RabbitMQ-val 7 alkalmazás publikus a többi API csak belső használatra Fluentd? alapú log centralizálás DataDog monitoring as a Service

ÖSSZETETTSÉG NÖVEKEDÉS AZ ÚJ ARCHITEKTÚRÁN JWT alapú autentikáció és autorizáció a stateless alkalmazásoknál Minden alkalmazáshoz saját Docker container-ek tartalmazzák az alkalmazás szervert és benne az app-ot Consul és Registrator alapú service discovery NGINX proxy Correlation id továbbadása szükséges a hívásláncon (debug-hoz) Fault tolerance megvalósítás és traffic monitoring kell - Hystrix

HYSTRIX Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

JAX-RS INTERFACE

REST SERVICE IMPLEMENTATION

HYSTRIX WRAPPED CLIENT COMMAND

CLIENT

KÁSA KÁROLY Precognox fejlesztési vezető karoly.kasa@precognox.com Kereső világ http://kereses.blog.hu - A blog about big data, search and text mining Hungarian Natural Language Processing Meetup http://www.meetup.com/hungarian-nlp/