diff --git a/src/bib/mybib.bib b/src/bib/mybib.bib index 84493a3..a5551a0 100644 --- a/src/bib/mybib.bib +++ b/src/bib/mybib.bib @@ -358,3 +358,9 @@ title = {Accessing Metrics} } +@manual{knative-crd, + howpublished = {https://github.com/knative/serving/blob/master/docs/spec/overview.md}, + note = {Megtekintve 2019-12-04}, + title = {Resource Types} +} + diff --git a/src/bib/mybib.bib~ b/src/bib/mybib.bib~ new file mode 100644 index 0000000..84493a3 --- /dev/null +++ b/src/bib/mybib.bib~ @@ -0,0 +1,360 @@ +@report{Jeney, + author = {G{\'a}bor Jeney}, + institution = {Budapesti M{\H u}szaki {\'e}s Gazdas{\'a}gtudom{\'a}nyi Egyetem, H{\'\i}rad{\'a}stechnikai Tansz{\'e}k}, + location = {Budapest}, + note = {\url{http://www.mcl.hu/~jeneyg/kinezet.pdf}}, + title = {Hogyan n{\'e}z ki egy ig{\'e}nyes dokumentum? {N}{\'e}h{\'a}ny sz{\'o}ban az alapvet{\H o} tipogr{\'a}fiai szab{\'a}lyokr{\'o}l}, + type = {techreport}, + year = {2014} +} + +@misc{dockervirt, + author = {Nick Janetakis}, + howpublished = {https://nickjanetakis.com/blog/comparing-virtual-machines-vs-docker-containers}, + note = {Megtekintve 2019-12-04}, + title = {Comparing Virtual Machines vs Docker Containers} +} + +@misc{docker-overview, + howpublished = {https://docs.docker.com/engine/docker-overview/}, + note = {Megtekintve 2019-12-04}, + title = {Docker overview} +} + +@manual{linux-namespaces, + howpublished = {http://man7.org/linux/man-pages/man7/namespaces.7.html}, + note = {Megtekintve 2019-12-04}, + title = {namespaces - overview of Linux namespaces} +} + +@misc{cgroups, + howpublished = {https://access.redhat.com/documentation/en-us/red\_hat\_enterprise\_linux/6/html/resource\_management\_guide/ch01}, + note = {Megtekintve 2019-12-04}, + title = {Introduction to Control Groups (Cgroups)} +} + +@misc{mikroszeviz, + author = {Farkas G{\'a}bor}, + howpublished = {https://ithub.hu/blog/post/A\_microservice\_architekturarol\_diohejban/}, + note = {Megtekintve 2019-12-04}, + title = {A microservice architekt{\'u}r{\'a}r{\'o}l di{\'o}h{\'e}jban} +} + +@manual{kubernetes-pods, + howpublished = {https://kubernetes.io/docs/concepts/workloads/pods/pod/}, + note = {Megtekintve 2019-12-04}, + title = {Pods} +} + +@manual{kubernetes-replicaset, + howpublished = {https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/}, + note = {Megtekintve 2019-12-04}, + title = {ReplicaSet} +} + +@manual{kubernetes-deployment, + howpublished = {https://kubernetes.io/docs/concepts/workloads/controllers/deployment/}, + note = {Megtekintve 2019-12-04}, + title = {Deployments} +} + +@manual{kubernetes-crd, + howpublished = {https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/}, + note = {Megtekintve 2019-12-04}, + title = {Extend the Kubernetes API with CustomResourceDefinitions} +} + +@manual{kubernetes-hpa, + howpublished = {https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/}, + note = {Megtekintve 2019-12-04}, + title = {Horizontal Pod Autoscaler} +} + +@manual{kubeless-http, + howpublished = {https://kubeless.io/docs/http-triggers/}, + note = {Megtekintve 2019-12-04}, + title = {Expose and secure Kubeless functions} +} + +@manual{kubeless-pubsub, + howpublished = {https://kubeless.io/docs/pubsub-functions/}, + note = {Megtekintve 2019-12-04}, + title = {PubSub events} +} + +@manual{kubernetes-ingress, + howpublished = {https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/}, + note = {Megtekintve 2019-12-04}, + title = {Ingress Controllers} +} + +@manual{kubernetes-nginx, + howpublished = {https://kubernetes.github.io/ingress-nginx/}, + note = {Megtekintve 2019-12-04}, + title = {NGINX Ingress Controller} +} + +@misc{github-issue-1, + howpublished = {https://github.com/kubernetes-incubator/metrics-server/issues/131}, + note = {Megtekintve 2019-12-04}, + title = {Metrics server issue with hostname resolution of kubelet and apiserver unable to communicate with metric-server clusterIP} +} + +@manual{kubeless-quickstart, + howpublished = {https://kubeless.io/docs/quick-start/}, + note = {Megtekintve 2019-12-04}, + title = {Installation} +} + +@misc{github-hey, + howpublished = {https://github.com/rakyll/hey}, + note = {Megtekintve 2019-12-04}, + title = {HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom} +} + +@misc{github-wrk, + howpublished = {https://github.com/wg/wrk}, + note = {Megtekintve 2019-12-04}, + title = {Modern HTTP benchmarking tool} +} + +@manual{docker-logging, + howpublished = {https://docs.docker.com/config/containers/logging/configure/}, + note = {Megtekintve 2019-12-04}, + title = {Configure logging drivers} +} + +@manual{kubernetes-ephemeral-storage, + howpublished = {https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\#local-ephemeral-storage}, + note = {Megtekintve 2019-12-04}, + title = {Managing Compute Resources for Containers - Local ephemeral storage} +} + +@manual{kubernetes-eviction, + howpublished = {https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/\#eviction-policy}, + note = {Megtekintve 2019-12-04}, + title = {Configure Out of Resource Handling - Eviction Policy} +} + +@manual{kubernetes-nodes, + howpublished = {https://kubernetes.io/docs/concepts/architecture/nodes/}, + note = {Megtekintve 2019-12-04}, + title = {Nodes} +} + +@manual{kubernetes-kubelet, + howpublished = {https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/}, + note = {Megtekintve 2019-12-04}, + title = {kubelet} +} + +@misc{cloud, + howpublished = {https://www.ibm.com/cloud/learn/cloud-computing}, + note = {Megtekintve 2019-12-04}, + title = {Cloud computing: A complete guide} +} + +@misc{faas, + howpublished = {https://www.cloudflare.com/learning/serverless/glossary/function-as-a-service-faas/}, + note = {Megtekintve 2019-12-04}, + title = {What Is Function as a Service (FaaS)?} +} + +@article{saas, + howpublished = {https://www.infoworld.com/article/3226386/what-is-saas-software-as-a-service-defined.html}, + note = {Megtekintve 2019-12-04}, + title = {What is SaaS? Software-as-a-service defined} +} + +@misc{paas, + howpublished = {https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/}, + note = {Megtekintve 2019-12-04}, + title = {SaaS vs PaaS vs IaaS: What{\rq}s The Difference and How To Choose} +} + +@misc{iaas, + howpublished = {https://www.techradar.com/news/what-is-infrastructure-as-a-service}, + note = {Megtekintve 2019-12-04}, + title = {What is Infrastructure-as-a-Service? Everything you need to know} +} + +@misc{os-virt, + howpublished = {https://www.w3schools.in/cloud-virtualization/os-virtualization/}, + note = {Megtekintve 2019-12-04}, + title = {Operating System (OS) Virtualization} +} + +@manual{docker-layers, + howpublished = {https://medium.com/@jessgreb01/digging-into-docker-layers-c22f948ed612}, + note = {Megtekintve 2019-12-04}, + title = {Digging into Docker layers} +} + +@manual{kubernetes-runtimes, + howpublished = {https://kubernetes.io/docs/setup/production-environment/container-runtimes/}, + note = {Megtekintve 2019-12-04}, + title = {Container runtimes} +} + +@manual{kubernetes-concepts, + howpublished = {https://kubernetes.io/docs/concepts/}, + note = {Megtekintve 2019-12-04}, + title = {Concepts} +} + +@manual{kube-apiserver, + howpublished = {https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/}, + note = {Megtekintve 2019-12-04}, + title = {kube-apiserver} +} + +@manual{etcd, + howpublished = {https://etcd.io/docs/v3.4.0/learning/data\_model/}, + note = {Megtekintve 2019-12-04}, + title = {Data model} +} + +@manual{kubernetes-api, + howpublished = {https://kubernetes.io/docs/concepts/overview/kubernetes-api/}, + note = {Megtekintve 2019-12-04}, + title = {The Kubernetes API} +} + +@manual{kuebrnetes-controller, + howpublished = {https://kubernetes.io/docs/concepts/architecture/controller/}, + note = {Megtekintve 2019-12-04}, + title = {Controllers} +} + +@manual{kubernetes-node-controller, + howpublished = {https://unofficial-kubernetes.readthedocs.io/en/latest/concepts/nodes/node/\#node-controller}, + note = {Megtekintve 2019-12-04}, + title = {Node - Node Controller} +} + +@manual{kuebrnetes-components, + howpublished = {https://kubernetes.io/docs/concepts/overview/components/}, + note = {Megtekintve 2019-12-04}, + title = {Kubernetes Components} +} + +@manual{kubernetes-scheduler, + howpublished = {https://kubernetes.io/docs/concepts/scheduling/kube-scheduler/}, + note = {Megtekintve 2019-12-04}, + title = {Kubernetes Scheduler} +} + +@manual{kubernetes-kube-proxy, + howpublished = {https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/}, + note = {Megtekintve 2019-12-04}, + title = {kube-proxy} +} + +@manual{kubernetes-service, + howpublished = {https://kubernetes.io/docs/concepts/services-networking/service/}, + note = {Megtekintve 2019-12-04}, + title = {Service} +} + +@manual{kubernetes-volume, + howpublished = {https://kubernetes.io/docs/concepts/storage/volumes/}, + note = {Megtekintve 2019-12-04}, + title = {Volumes} +} + +@manual{kubernetes-ingress-resource, + howpublished = {https://kubernetes.io/docs/concepts/services-networking/ingress/}, + note = {Megtekintve 2019-12-04}, + title = {Ingress} +} + +@misc{kubeless, + howpublished = {https://itnext.io/kubeless-kubernetes-native-serverless-framework-3d0f96e03add}, + note = {Megtekintve 2019-12-04}, + title = {Kubeless --- Kubernetes Native Serverless Framework} +} + +@manual{kubeless-api-deploy, + howpublished = {https://kubeless.io/docs/advanced-function-deployment/}, + note = {Megtekintve 2019-12-04}, + title = {Deploying Kubeless Functions using Kubernetes API} +} + +@manual{kubeless-build, + howpublished = {https://kubeless.io/docs/building-functions/}, + note = {Megtekintve 2019-12-04}, + title = {Build process for functions} +} + +@manual{istio-service-mesh, + howpublished = {https://istio.io/docs/concepts/what-is-istio/}, + note = {Megtekintve 2019-12-04}, + title = {What is Istio?} +} + +@manual{istio-observer, + howpublished = {https://istio.io/docs/concepts/observability/}, + note = {Megtekintve 2019-12-04}, + title = {Observability} +} + +@manual{istio-mgmt, + howpublished = {https://istio.io/docs/concepts/traffic-management/}, + note = {Megtekintve 2019-12-04}, + title = {Traffic Management} +} + +@misc{knative, + howpublished = {https://containerjournal.com/topics/container-management/what-is-knative-and-what-can-it-do-for-you/}, + note = {Megtekintve 2019-12-04}, + title = {What is Knative, and What Can It Do for You?} +} + +@manual{knative-serving, + howpublished = {https://knative.dev/docs/serving/}, + note = {Megtekintve 2019-12-04}, + title = {Knative Serving} +} + +@manual{knative-eventing, + howpublished = {https://knative.dev/docs/eventing/}, + note = {Megtekintve 2019-12-04}, + title = {Knative Eventing} +} + +@misc{knative-thoughts, + howpublished = {https://searchitoperations.techtarget.com/news/252469607/Knative-serverless-Kubernetes-bypasses-FaaS-to-revive-PaaS}, + note = {Megtekintve 2019-12-04}, + title = {Knative serverless Kubernetes bypasses FaaS to revive PaaS} +} + +@manual{knative-gateweay, + howpublished = {https://knative.dev/v0.9-docs/serving/samples/knative-routing-go/}, + note = {Megtekintve 2019-12-04}, + title = {Routing across multiple Knative services - Go} +} + +@manual{knative-autoscaler, + howpublished = {https://knative.dev/docs/serving/configuring-the-autoscaler/}, + note = {Megtekintve 2019-12-04}, + title = {Configuring the Autoscaler} +} + +@manual{knative-autoscaler-component, + howpublished = {https://github.com/knative/serving/blob/master/docs/scaling/DEVELOPMENT.md}, + note = {Megtekintve 2019-12-04}, + title = {Autoscaling} +} + +@misc{knative-gloo, + howpublished = {https://medium.com/solo-io/gloo-by-solo-io-is-the-first-alternative-to-istio-on-knative-324753586f3a}, + note = {Megtekintve 2019-12-04}, + title = {Gloo, by Solo.io, is the first alternative to Istio on Knative} +} + +@manual{knative-monitoring, + howpublished = {https://github.com/knative/docs/blob/master/docs/serving/accessing-metrics.md}, + note = {Megtekintve 2019-12-04}, + title = {Accessing Metrics} +} + diff --git a/src/content/theory.tex b/src/content/theory.tex index 28ef43c..4c091d8 100644 --- a/src/content/theory.tex +++ b/src/content/theory.tex @@ -166,7 +166,7 @@ A Knative automatikusan elvégzi az Istio service mesh létrehozását minden te Opcionálisan telepíthető monitoring eszközök segítségével megfigyelhetők a rendszer belső folyamatai, állapotai. Például lehetőség van megfigyelni egyebek mellett egyes függvények és Knative rendszer elemek processzor és memóriahasználatát \cite{knative-monitoring} , a skálázást végző komponens állapotát. A Knative Monitoring rendszere a megfigyelésre a Prometheus-t, vizualizációra a Grafana nevű szoftver használja. A naplóállományok feldolgozására Logstash-t és Elasitsearch-öt, az ezekből kinyert metrikák vizualizálására Kibana-t használ a rendszer. Beállítástól függően, de alapértelmezetten másodperces gyakorisággal vesz a Prometheus mintát a Knative állapotáról. Ez, illetve a Logstash folyamatok számottevő Input/Output műveletet generál, amely a klaszter teljesítményére negatív hatással lehet. -A Serving komponens a Kubernetes és az Istio már meglévő szolgáltatásait felhasználva, azokra építve nyújtja többletszolgáltatásait. A Kubernetes API-t kiegészítve bevezet néhány új objektumtípust: +A Serving komponens a Kubernetes és az Istio már meglévő szolgáltatásait felhasználva, azokra építve nyújtja többletszolgáltatásait. A Kubernetes API-t kiegészítve bevezet néhány új objektumtípust \cite{knative-crd} : \subsection{Service} Egy alkalmazás vagy egy alkalmazáskomponens leírására egyetlen absztrakciót biztosít. A Knative-ban a Service egy Route-ra és egy Configurationre képződik le, valamint ezek orkesztrálását végzi. E két objektummal teljesen kiváltható a használata. A belső objektumok állapotait a Service kontrollere továbbítja a Kubernetes API-n keresztül, mintha sajátja lenne.