{"id":20745,"date":"2021-02-09T08:40:51","date_gmt":"2021-02-09T07:40:51","guid":{"rendered":"https:\/\/www.inovex.de\/blog\/?p=20745"},"modified":"2022-12-01T12:24:41","modified_gmt":"2022-12-01T11:24:41","slug":"go-meetup-qa-eure-fragen-beantwortet","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/","title":{"rendered":"Go Meetup Q&#038;A: Eure Fragen beantwortet!"},"content":{"rendered":"<p>Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.<!--more--><\/p>\n<p><strong>Wo\/wie haltet ihr den State f\u00fcr Terraform oder wie die Schnittpunkte zwischen Infrastruktur und den Microservices?<\/strong><\/p>\n<p>Den Terraform-State f\u00fcr alle Services haben wir in einen <a href=\"https:\/\/www.terraform.io\/docs\/language\/settings\/backends\/s3.html\">S3 Bucket<\/a> gelegt.\u00a0Den Bucket und die Dynamo Tables selbst haben wir in einem eigenen <a href=\"https:\/\/github.com\/cloudposse\/terraform-aws-tfstate-backend\">Terraform Repo angelegt.<\/a>\u00a0Die Schnittstellen zwischen den Services und Terraform beruhen haupts\u00e4chlich auf Naming Conventions und Umgebungsvariablen in der GitlabCI Pipeline<\/p>\n<p><strong>Was habt ihr als Authentifizierungsmechanismus verwendet?<\/strong><\/p>\n<p>Bevor das Projekt von einem kundeninternen Team \u00fcbernommen wurde, haben wir verschiedene User nur anhand ihrer Device ID identifiziert \u2013 ein eigenes Nutzerkonto gab es in dem Sinne nicht, dementsprechend auch nicht die Anforderung, User zu authentifizieren.<\/p>\n<p>Prinzipiell eignet sich wie bei klassischen Microservices sehr gut alles, was stateless ist (oauth 2, OIDC). Da bietet einerseits AWS verschiedene M\u00f6glichkeiten, andererseits kann man, wenn man will, eigene L\u00f6sungen deployen (etwa Keycloak) oder sogar etwas spezialisiertes entwickeln. Damit haben wir aber keine Erfahrung gemacht.<\/p>\n<p><strong>Habt ihr bereut, DynamoDB genommen zu haben?<\/strong><\/p>\n<p>Das ist wohl ein wenig zufriedenstellendes <em>it depends<\/em>. DynamoDB ist nicht das Allheilmittel \u2013 f\u00fcr einige UseCases w\u00e4ren wir wohl mit einer relationalen DB schneller am Ziel gewesen \u2013 f\u00fcr andere Anforderungen (gerade Lacher und Views) hat es super gepasst und skaliert super einfach mit. In Summe bereue ich es nicht, Datenmodelle entwickeln sich weiter und je nach Anforderung kann es in jeder DB zur Herausforderung werden.<\/p>\n<p>Als Key\/Value-Store mit extra-Features ist es eine sch\u00f6ne L\u00f6sung, wenn man noch nicht so genau wei\u00df, wo die Reise hingeht und noch sehr viel hin- und herschiebt. Dadurch, dass es DBaaS ist, nimmt es einem auch sehr viel Setup- und Wartungsaufwand ab. Fr\u00fcher oder sp\u00e4ter sind wir dann in das eine oder andere Problem gelaufen, was uns zum Um-die-Ecke-Denken zwang, teilweise weil es nunmal ein anderes Paradigma ist und teilweise wegen Dynamo-spezifischer Eigenarten.<\/p>\n<p>F\u00fcr den Start eines MVPs ist das Gesamtbild eher positiv, dar\u00fcber hinaus gibt es unserer Einsch\u00e4tzung nach sehr harte Grenzen, an die man je nach Projekt recht schnell st\u00f6\u00dft. Skalierungsprobleme hatten wir nicht.<\/p>\n<p><strong>Warum ist Go auf Lambda denn nun besonders geeignet f\u00fcr schnelle MVPs? Ist man nicht viel schneller, wenn man ein funktionierendes System mit vielen Built-ins gibt, bei denen man z.B. das Logging nicht selbst bauen muss, sondern es schon da ist?<\/strong><\/p>\n<p>Hier kommt es auf das Ziel an, und die Unterscheidung zwischen (Wegwerf-)Prototypen und einem MVP. Prototypen haben nicht den Anspruch, irgendwann ein Produkt zu werden, sondern beweisen erstmal die Machbarkeit oder liefern neue Erkenntnisse \u00fcber noch unbekanntes Terrain. Ein <em>Minimal Viable Product<\/em> will und soll ein Produkt sein, das die Abstriche nicht in der Qualit\u00e4t sondern im Funktionsumfang macht.<\/p>\n<p>Prototypen k\u00f6nnen in einem kleinen Team, das gut eingespielt ist, bestimmt schneller gebaut werden, tragen auch zur Entscheidungsfindung bei, werden dann aber \u00fcblicherweise nicht weiter verfolgt.<\/p>\n<p>Go hat vom Funktionsumfang her eine der komplettesten Standard Libraries. Noch mehr w\u00fcrde man nur von Frameworks abgenommen bekommen, die wiederum andere Nachteile und Einschr\u00e4nkungen mit sich bringen.<\/p>\n<p>Die Chance, dass ein MVP nach erfolgreicher Evaluierung einfach \u00fcbergeben bzw., das Team skaliert werden kann steigt mit Go durch die Einfachheit und das Idiomatische \u2013 in unserem Falle konnten selbst nicht-Go-Entwickler:innen sich in kurzer Zeit zurechtfinden und produktiv mit entwickeln. Es ist also nur die erste Iteration einer richtigen Produktentwicklung.<\/p>\n<p><strong>Wenn JSON bei Go so schwierig ist, macht es das dann nicht zu einem schlechtem API Server? Oder gibt es bessere\/andere Module f\u00fcr JSON bei Go?<\/strong><\/p>\n<p>So weit w\u00fcrde ich nicht gehen. Grunds\u00e4tzlich gibt es auch andere Module als das der Standard Library. Die haben wir nicht ausprobiert, stattdessen haben wir stellenweise Workarounds eingebaut.<\/p>\n<p>Eines der angesprochenen Probleme war, dass nicht erkennbar ist, ob f\u00fcr einen Wert 0 \u00fcbergeben wurde oder ob der Wert gar nicht \u00fcbergeben wurde. Da kann z.B. das Feld im Struct als Pointer definiert werden, der Standardwert daf\u00fcr ist <em>nil<\/em>. Wenn aber tats\u00e4chlich 0 \u00fcbergeben wird, steht im Struct ein Pointer auf 0, der beim Aufruf dann automatisch de-referenziert wird.<\/p>\n<p>Dennoch k\u00f6nnte man so etwas komfortabel auch beim Parsen abfangen. Und das w\u00e4re eine Option, die wir an einigen Stellen im Projekt vermisst haben. Im Kontrast dazu sorgt <span class=\"lang:go decode:true crayon-inline \">DisallowUnknownFields()<\/span>\u00a0 daf\u00fcr, dass JSON-Objekte, die zu viele Werte enthalten, beim Parsen einen Error erzeugen. Das war f\u00fcr uns aber nutzlos, weil es uns keinen Mehrwert gebracht hat, die API strikt zu machen.<\/p>\n<p><strong>Habt ihr schlechte Erfahrungen mit Cold Starts von Lambdas gemacht? Falls ja, wie seid ihr damit umgegangen?<\/strong><\/p>\n<p>Urspr\u00fcnglich haben wir uns auch aus diesem Grund f\u00fcr Go entschieden, aber AWS scheint da viel zu verbessern und die einzelnen Laufzeitumgebungen geben sich nicht mehr viel.\u00a0Die Startup-Zeit der Runtime selbst ist in Go sehr kurz im Vergleich zu z.B. Spring, was man in Java oder Kotlin verwenden w\u00fcrde. Daran wird nat\u00fcrlich von allen Ecken flei\u00dfig gearbeitet.<\/p>\n<p>Auch damals (Ende 2019) gab es die Alternative, Micronaut und GraalVM zu verwenden, das wirkte aber einerseits wenig <em>production ready<\/em> und andererseits umst\u00e4ndlich im Vergleich zu Go.<\/p>\n<p>Bei Smyle haben wir in der Regel 24\/7 Traffic, was Cold Starts nur direkt nach einem Deployment merkbar macht. Es wurde auch \u00fcber Lambda Warming diskutiert, wir haben uns dann allerdings dagegen entschieden. Wenn die Latenzanforderungen so strikt sind, dass ein gelegentlicher Cold Start f\u00fcr vereinzelte User (trotz Optimierung) nicht verkraftet werden kann, sind Lambdas schlicht die falsche Wahl.<\/p>\n<p><strong>K\u00f6nnen Metriken bereitgestellt werden bei Lambdas? Habt ihr auch Metriken erfasst \u00fcber etwa Request Durations? Logs erscheinen an der Stelle umst\u00e4ndlich!<\/strong><\/p>\n<p>Wenn aktiviert, ist das alles bereits in Cloudwatch vorhanden.<\/p>\n<p>Logs haben wir dann f\u00fcr Metriken verwendet, die fachlicher oder feingranularer als die Pro-Lambda-Metriken waren. Das klingt nach mehr Aufwand als es wirklich war, nachdem wir wussten, dass ein ELK Stack f\u00fcr den Betrieb der Anwendung bereit gestellt wurde.<\/p>\n<p><strong>Welches API Gateway wurde genutzt? AWS API Gateway? Oder ein eigenes? (Kong, Apigee, etc?) Warum gerade dieses?<\/strong><\/p>\n<p>Wir waren komplett in der AWS Welt-unterwegs, haben also auf das AWS API Gateway gesetzt. Das war wohl keine 100% bewusste Entscheidung, sondern aufgrund des MVP-Charakters und des Quickstarts eine pragmatische und stabile L\u00f6sung die einfach funktioniert hat.<\/p>\n<p>Wollt ihr beim n\u00e4chsten Meetup live dabei sein? Dann schaut euch <a href=\"https:\/\/www.inovex.de\/de\/ueber-uns\/communities\/inovex-meetups\/\">hier unsere Meetup-Gruppen<\/a> an!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.<\/p>\n","protected":false},"author":147,"featured_media":20746,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[356,335],"service":[425,444,928],"level":[],"coauthors":[{"id":147,"display_name":"Redaktion","user_nicename":"inovex"}],"class_list":["post-20745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-go","tag-serverless","service-backend","service-frontend","service-inovex-life"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Go Meetup Q&amp;A: Eure Fragen beantwortet! - inovex GmbH<\/title>\n<meta name=\"description\" content=\"Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Go Meetup Q&amp;A: Eure Fragen beantwortet! - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-09T07:40:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-01T11:24:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1281\" \/>\n\t<meta property=\"og:image:height\" content=\"721\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Redaktion\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo-1024x576.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Redaktion\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Redaktion\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/\"},\"author\":{\"name\":\"Redaktion\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/4e3a0a923495d77e7f9b485e00893cb5\"},\"headline\":\"Go Meetup Q&#038;A: Eure Fragen beantwortet!\",\"datePublished\":\"2021-02-09T07:40:51+00:00\",\"dateModified\":\"2022-12-01T11:24:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/\"},\"wordCount\":1081,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/go-golang-meetup-inovex-logo.png\",\"keywords\":[\"go\",\"Serverless\"],\"articleSection\":[\"Applications\",\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/\",\"name\":\"Go Meetup Q&A: Eure Fragen beantwortet! - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/go-golang-meetup-inovex-logo.png\",\"datePublished\":\"2021-02-09T07:40:51+00:00\",\"dateModified\":\"2022-12-01T11:24:41+00:00\",\"description\":\"Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/go-golang-meetup-inovex-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/go-golang-meetup-inovex-logo.png\",\"width\":1281,\"height\":721,\"caption\":\"4 Go Gopher turnen \u00fcber das inovex-Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/go-meetup-qa-eure-fragen-beantwortet\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Go Meetup Q&#038;A: Eure Fragen beantwortet!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/4e3a0a923495d77e7f9b485e00893cb5\",\"name\":\"Redaktion\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/inovex-logo-profile-96x96.png25c3c96966f9fb1dd97ace67fbcbc2c2\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/inovex-logo-profile-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/inovex-logo-profile-96x96.png\",\"caption\":\"Redaktion\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/inovex\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Go Meetup Q&A: Eure Fragen beantwortet! - inovex GmbH","description":"Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/","og_locale":"de_DE","og_type":"article","og_title":"Go Meetup Q&A: Eure Fragen beantwortet! - inovex GmbH","og_description":"Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.","og_url":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2021-02-09T07:40:51+00:00","article_modified_time":"2022-12-01T11:24:41+00:00","og_image":[{"width":1281,"height":721,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo.png","type":"image\/png"}],"author":"Redaktion","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo-1024x576.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Redaktion","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten","Written by":"Redaktion"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/"},"author":{"name":"Redaktion","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/4e3a0a923495d77e7f9b485e00893cb5"},"headline":"Go Meetup Q&#038;A: Eure Fragen beantwortet!","datePublished":"2021-02-09T07:40:51+00:00","dateModified":"2022-12-01T11:24:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/"},"wordCount":1081,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo.png","keywords":["go","Serverless"],"articleSection":["Applications","General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/","url":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/","name":"Go Meetup Q&A: Eure Fragen beantwortet! - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo.png","datePublished":"2021-02-09T07:40:51+00:00","dateModified":"2022-12-01T11:24:41+00:00","description":"Bei unserem Meetup zur Programmiersprache Go blieben aus Zeitgr\u00fcnden einige Fragen unbeantwortet. Wir haben sie hier gesammelt und von unseren Expert:innen beantworten lassen.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/02\/go-golang-meetup-inovex-logo.png","width":1281,"height":721,"caption":"4 Go Gopher turnen \u00fcber das inovex-Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/go-meetup-qa-eure-fragen-beantwortet\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Go Meetup Q&#038;A: Eure Fragen beantwortet!"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/4e3a0a923495d77e7f9b485e00893cb5","name":"Redaktion","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/wp-content\/uploads\/inovex-logo-profile-96x96.png25c3c96966f9fb1dd97ace67fbcbc2c2","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/inovex-logo-profile-96x96.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/inovex-logo-profile-96x96.png","caption":"Redaktion"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/inovex\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/147"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=20745"}],"version-history":[{"count":1,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20745\/revisions"}],"predecessor-version":[{"id":39763,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20745\/revisions\/39763"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/20746"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=20745"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=20745"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=20745"},{"taxonomy":"level","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/level?post=20745"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=20745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}