diff --git a/app/blog/2019/09/24/.gitattributes b/app/blog/2019/09/24/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..b851ce540b28d239850493b793b49724a739a955
--- /dev/null
+++ b/app/blog/2019/09/24/.gitattributes
@@ -0,0 +1 @@
+*.{jpg,JPG,png,PNG,JPEG,jpeg,gif,GIF,webp,pdf,svg,SVG,mp4,pdf} filter=lfs diff=lfs merge=lfs -text
\ No newline at end of file
diff --git a/app/blog/2019/09/24/adminschversions.png b/app/blog/2019/09/24/adminschversions.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c7375971b750ef31887240350bff0041f8a665c
--- /dev/null
+++ b/app/blog/2019/09/24/adminschversions.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a1593eb728c7b72a4034081cab92bf7b5ee437e62ff1223e01ccd8fec3cd67b2
+size 75743
diff --git a/app/blog/2019/09/24/mi-az-a-microservice-ujrairtuk-az-admin-sch-t.md b/app/blog/2019/09/24/mi-az-a-microservice-ujrairtuk-az-admin-sch-t.md
new file mode 100644
index 0000000000000000000000000000000000000000..9ff584796cd747944cd557822757a431cb7a70bf
--- /dev/null
+++ b/app/blog/2019/09/24/mi-az-a-microservice-ujrairtuk-az-admin-sch-t.md
@@ -0,0 +1,38 @@
+---
+slug: mi-az-a-microservice-ujrairtuk-az-admin-sch-t
+title: Mi az a microservice? Újraírtuk az Admin.SCH-t
+authors: schulczf
+tags: []
+---
+
+Az [Admin.SCH](https://admin.sch.bme.hu) az az oldal, ahol a kollégisták kezelhetnek mindent, ami a Házon belüli internetezésükkel kapcsolatos: IP címet regisztrálhatnak, újabb eszközöket adhatnak hozzá, vagy bejelenthetik a szobai access point-jukat. Ez egy olyan weboldal, amit minden kollégista használt már, és életbevágó szolgáltatásokat tudnak itt beállítani – mondhatjuk tehát, hogy kritikus rendszerről van szó.
+
+<!--truncate-->
+
+Az oldalt kiszolgáló backend a közelmúltban elkezdett elavulni, ráadásul a dokumentáció problémái és architekturális sajátosságai miatt nem tudtuk ésszerűen továbbfejleszteni. Nem volt hát más választásunk, mint hogy újraírjuk.
+
+A korábbi Admin.SCH egy monolit webalkalmazás volt, ami azt jelenti, hogy a szoftver összes funkciója (IP cím regisztráció, Active Directory integráció, stb.) egyetlen “csomag” részét képezi. Ez a hagyományos megközelítés, egy programozás házinál is ezt használjuk: hiába bontjuk a megoldásunkat ezernyi .c és .h fájlra vagy osztályra, a végén mégis egyetlen bináris, azaz egy monolit készül belőle. Egy ilyen alkalmazást könnyebb fejleszteni, könnyebb tesztelni, hiszen csak egyetlen programot kell elindítani és ellenőrizni, és könnyebb deploy-olni, hiszen csak egyetlen dolgot kell felmásolni egy szerverre, és máris éles lehet a szolgáltatás.
+
+Ennek viszont ára is van: a projekt növekvő kódbázisával az egyre átláthatatlanabb lehet, minden frissítéskor az egészet kell újratelepíteni, és egy hiba akár az egész szolgáltatást is térdre kényszerítheti.
+
+![](monolitmicroservice.png)
+
+<div style={{textAlign: "center"}}>
+<em>Monolit rendszer vs. microservice architektúra</em>
+</div>
+
+Úgy döntöttünk, hogy az új rendszert már microservice-ek segítségével építjük fel: nem egy nagy szolgáltatást készítünk, hanem több kicsit. Ezeknek a kicsi szoftvereknek aztán kicsi, meghatározott felelőssége is lehet – van például, ami az IP-k regisztrációját teszi lehetővé, van, amivel a saját AP-kat lehet bejelenteni, és így tovább. Ezzel nagyrészt megoldottuk az átláthatatlan kód problémáját, mert apró, önálló programokkal dolgozunk, amik mindig könnyen áttekinthetők maradnak. Lehetővé vált az is, hogy a komponensek külön fejlődjenek, ami különösen előnyös egy olyan projektnél, amin sok egyetemista dolgozik, mert mindenki a saját ütemében haladhat. A későbbi bővítés is egyszerű, hiszen az új szolgáltatások hozzáadásához nem kell belenyúlni az eddigi kódba. További előny, hogy a KSZK egyéb, a hálózat üzemeltetéséhez kapcsolódó, már létező szolgáltatásait is bele lehet vonni az Admin.SCH-ba.
+
+A microservice architektúra viszont több hátránnyal is jár. Egyrészt a szolgáltatások közötti kommunikáció miatt előfordul, hogy ha az egyik szolgáltatás interfésze megváltozik, akkor több másik szolgáltatásba is át kell vezetni a változtatásokat. Ezen a problémán segít az API verziózás és az API dokumentációs eszközök használata (mint például az OpenAPI/Swagger). Az alkalmazás futtatását jelentősen bonyolíthatja, hogy sok kisebb szolgáltatásból áll, szóval szükségünk volt valamilyen rendszerre, ami a microservice-eket menedzseli.
+
+A microservice-eket konténerekbe szerveztük, és a KSZK Kubernetes klaszterébe telepítettük. Az ebben futó Docker konténerek könnyedén példányosítható, leállítható és mozgatható process-ek, amikben egy-egy microservice fut. Megtalálható bennük minden, a futtatáshoz kellő dependencia, könnyen futtathatók, és a microservice-ek szeparációja is megoldott. A Kubernetes pedig a konténerek menedzselését, és a közöttük lévő kommunikációt biztosítja, azaz orkesztrálja őket. A konténerek Docker image-ekből készülnek, amiket [git.sch.bme.hu](https://git.sch.bme.hu/) szolgáltatásba épített Continuous Integration automatikusan előállít.
+
+Az újraírás első ütemének célja az volt, hogy a kollégisták által használt funkciók kerüljenek át az új rendszerbe. Ez a cél meg is valósult, így jelenleg a két rendszer párhuzamosan fut. A legtöbb kollégista csak az új rendszerrel fog találkozni, ami teljesen különálló a régitől, viszont a felület át lett emelve, ezért csak kisebb átalakításokra volt most rajta lehetőség. A következő félévekben át szeretnénk alakítani a felületet és új funkciókkal bővíteni az új rendszert.
+
+![](adminschversions.png)
+
+<div style={{textAlign: "center"}}>
+<em>A régi és az új rendszer együttélése</em>
+</div>
+
+Ha valamilyen hibát vagy szokatlan működést tapasztaltok az oldal használata közben, akkor adjatok fel ticketet a [support.sch.bme.hu](https://support.sch.bme.hu/) weboldalon!
diff --git a/app/blog/2019/09/24/monolitmicroservice.png b/app/blog/2019/09/24/monolitmicroservice.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b40a88621ac5c24e784e90ad17ae9d55aa1dbb5
--- /dev/null
+++ b/app/blog/2019/09/24/monolitmicroservice.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:39567876d76d72e4518443f1bfc92afa52275868e36b51b41734411cfe4a52c6
+size 69445