An Architecture for Resource Analysis, Prediction and Visualization in Microservice Deployments

Xavier Geerinck
Persbericht

Hoe men Complexe IT systemen automatisch kan doen schalen en een meer efficientere infrastructuur kan bekomen

Meer en meer Informatica bedrijven zien de vraag voor meer Complexe Informatica systemen stijgen in een wereld vol verandering. Waar vroeger een kleine applicatie voldoende was om de noden van de klant te beantwoorden. Zijn nu grotere applicaties nodig om steeds aan de behoeften van de klant te kunnen voldoen. De complexiteit van vragen gesteld door een klant, veranderd immers naarmate een systeem meer kan aanbieden. Illustrerende dit met een voorbeeld, zien we dat het vroeger genoeg was om een brief te kunnen schrijven op een computer. Maar waar men nu suggesties wilt voorgesteld krijgen over hoe deze brief er moet uitzien, waar de content kan verbeterd worden en noem maar op.

 

Deze beweging heeft zich vertaald in de opmars van Cloud Systemen en Kunstmatige Intelligentie (AI). Waarin we zien dat meer en meer bedrijven zich hierin gaan specialiseren en investeringen gaan maken die alle verwachtingen overtreft. Dit om zo het beste talent aan te trekken die hun kan helpen steeds voor de concurrentie te blijven. Kijkende naar de informatica giganten in de wereld, zien we dat dit verhaal bevestigd wordt. Zie maar naar Microsoft, Google en Amazon die miljarden investeren in de groei van hun Clouddiensten zoals Azure, Google Cloud en AWS om steeds voor de concurrentie te blijven.

 

Om deze beweging te verwezenlijken, zijn gigantische systemen nodig die met elkaar kunnen samenwerken. Wat de nood in het leven gebracht heeft voor een nieuw type applicatie. De "Microservice". Deze soort services stellen bedrijven in staat om grote applicaties aan te passen zodat deze makkelijker met elkaar kunnen gaan werken. Waar bijvoorbeeld vroeger een applicatie gebruikt werd voor een dashboard platform met statistieken waar men ook op kon inloggen. Zijn nu twee applicaties in de plaats gekomen die elk onafhankelijk hun eigen probleem gaan oplossen, zo gaat de aanmeldingspagina in een specifieke microservice zitten die voor het hele bedrijf werkt, en zullen de statistieken getoond worden door nog een andere microservice. Door het loskoppelen van deze twee applicaties, vermindert men de tijd die nodig is om deze delen telkens te herschrijven, en kan men een grotere groei verwezenlijken.

 

Deze grotere groei wordt echter geplaagd door nieuwe problemen. Doordat elke microservice afzonderlijk werkt, gaat deze ook een ander schaal gedrag tentoonstellen. Wanneer gaat men nieuwe resources moeten toewijzen aan deze microservices, om zo de vraag te blijven beantwoorden? Hoe kan men dit voorspellen vermits dit anders is voor elk type microservice? Dit zijn vragen die proberen beantwoord worden in deze thesis. Met deze thesis wordt een systeemarchitectuur voorgesteld die dit opschalen kan automatiseren, met een kijk op de toekomst.

 

Door deze vraag te beantwoorden, kunnen bedrijven reageren op foutmeldingen vooraleer deze zich stellen. Wat zal resulteren in een meer positievere impact op de klant. Deze zal namelijk een stabieler platform te zien krijgen, en een hogere tevredenheidsfactor. Wat zich uit in een grotere inkomst voor het bedrijf.

Bibliografie

[1] Microservices. http://microservices.io/patterns/microservices.html. [Online; ac cessed 13-December-2016].
[2] John Day. The (un)revised OSI reference model. Computer Communication Review, 25(5):39–55, 1995.
[3] Wes Felter, Alexandre Ferreira, Ram Rajamony, and Juan Rubio. An updated performance comparison of virtual machines and linux containers. technology, 28:32, 2014.
[4] Fortune 500. Cisco systems. http://beta.fortune.com/fortune500/cisco-systems-54, 2016. [Online; accessed 14-September-2016].
[5] Cisco Systems. About us - cisco. http://weare.cisco.com/c/r/weare/about-us.html, 2016. [Online; accessed 14-September-2016].
[6] Matthias Wiesmann, Fernando Pedone, Andr´e Schiper, Bettina Kemme, and Gustavo Alonso. Understanding replication in databases and distributed systems. In Distributed Computing Systems, 2000. Proceedings. 20th International Conference on, pages 464–474. IEEE, 2000.
[7] Esxi. http://www.vmware.com/products/vsphere-hypervisor.html. [Online; accessed 14-October-2016].
[8] Docker. https://mesos.apache.org. [Online; accessed 27-September-2016].
[9] Vagrant. https://www.vagrantup.com/. [Online; accessed 29-November-2016].
[10] Docker swarm. https://docs.docker.com/swarm/overview. [Online; accessed 11 October-2016].
[11] Docker swarm key concepts. https://docs.docker.com/engine/swarm/key-concepts/. [Online; accessed 29-November-2016].
[12] Vagrant docker swarm code repository. https://github.com/thebillkidy/ vagrant-swarm-cluster. [Online; accessed 13-October-2016].
[13] Apache kafka. https://kafka.apache.org/. [Online; accessed 12-October-2016].
[14] Apache flink. https://flink.apache.org/. [Online; accessed 17-October-2016].
[15] cadvisor. https://github.com/google/cadvisor. [Online; accessed 01-December-2016].
[16] Nathan Marz. Lambda architecture, 2015.
[17] Apache kafka delivery guarantee. https://kafka.apache.org/08/documentation.html# semantics. [Online; accessed 29-November-2016].
[18] Apache zookeeper. https://zookeeper.apache.org/. [Online; accessed 26-December 2016].
[19] How twitter uses apache kafka. https://blog.twitter.com/2015/handling-five-billion-sessions-a-day-in-r…. [Online; accessed 29 November-2016].
[20] Apache simple regression. http://commons.apache.org/proper/commons-math/userguide/stat.html#a1.4_…. [Online; accessed 26-October-2016].
[21] Apache flink clustering. https://ci.apache.org/projects/flink/flink-docs-release-0.8/cluster_set…. [Online; accessed 01-December-2016].
[22] David Silver, Aja Huang, Christopher J. Maddison, Arthur Guez, Laurent Sifre, George van den Driessche, Julian Schrittwieser, Ioannis Antonoglou, Veda Panneershelvam, Marc Lanctot, Sander Dieleman, Dominik Grewe, John Nham, Nal Kalchbrenner, Ilya Sutskever, Timothy Lillicrap, Madeleine Leach, Koray Kavukcuoglu, Thore Graepel, and Demis Has sabis. Mastering the game of go with deep neural networks and tree search. Nature, 529:484–503, 2016.
[23] Linear regression and modeling. https://www.coursera.org/learn/linear-regression-model. [Online; accessed 02-December-2016].
[24] Azure machine learning cheat sheet. http://aka.ms/MLCheatSheet. [Online; accessed 02-December-2016].
[25] Azure machine learning. https://msdn.microsoft.com/en-us/library/azure/dn906022.aspx. [Online; accessed 02-December-2016].
[26] Tony F Chan, Gene H Golub, and Randall J LeVeque. Algorithms for computing the sample variance: Analysis and recommendations. The American Statistician, 37(3):242–247, 1983.
[27] Tong Zhang. Solving large scale linear prediction problems using stochastic gradient de scent algorithms. In Proceedings of the Twenty-first International Conference on Machine Learning, ICML ’04, pages 116–, New York, NY, USA, 2004. ACM.
[28] Feature scaling. https://www.coursera.org/learn/machine-learning/lecture/xx3Da/gradient-…. [Online; accessed 04 December-2016].
[29] React. https://facebook.github.io/react/. [Online; accessed 15-November-2016].
[30] Redux cartoon introduction. https://code-cartoons.com/a-cartoon-intro-to-redux-3afb775501a6#.6pllsc…. [Online; accessed 15
November-2016].
[31] Inc. A. Melnikov Isode Ltd. I.Fette, Google. The websocket protocol, 12 2011.
[32] Socket.io. http://socket.io/. [Online; accessed 15-November-2016].
[33] Docker deadlock fix. https://github.com/docker/docker/issues/25432. [Online; accessed 16-November-2016].
[34] Apache samoa. https://samoa.incubator.apache.org/. [Online; accessed 05-December 2016].

Universiteit of Hogeschool
Master of Science in de industriële wetenschappen: informatica
Publicatiejaar
2017
Promotor(en)
Wim Van Den Breen; Pieter Leys (Cisco Systems); Stefaan Vander Rasieren (Cisco Systems)
Kernwoorden
https://twitter.com/XavierGeerinck
Share this on: