{"id":89579,"date":"2016-03-10T12:41:51","date_gmt":"2016-03-10T11:41:51","guid":{"rendered":"http:\/\/www.ifun.de\/?p=89579"},"modified":"2016-03-10T12:44:17","modified_gmt":"2016-03-10T11:44:17","slug":"cocoapods-ios-paketverwaltung-bringt-github-an-kapazitaetsgrenzen","status":"publish","type":"post","link":"https:\/\/www.ifun.de\/cocoapods-ios-paketverwaltung-bringt-github-an-kapazitaetsgrenzen-89579\/","title":{"rendered":"CocoaPods: iOS-Paketverwaltung bringt GitHub an Kapazit\u00e4tsgrenzen"},"content":{"rendered":"<p>Die freie Paketverwaltung <a href=\"https:\/\/cocoapods.org\/\">CocoaPods<\/a> bietet Entwicklern von iOS und OS X-Applikationen eine einfache M\u00f6glichkeit zur Verwaltung von Code-Abh\u00e4ngigkeiten an. Mit Hilfe des Kommandozeilen-Werkzeuges k\u00f6nnen Entwickler ihre Projekte um h\u00e4ufig ben\u00f6tigte Programm-Bibliotheken erg\u00e4nzen, diese auf dem aktuellen Stand halten und sicherstellen, dass alle Abh\u00e4ngigkeiten in aktiven Projekten bedient werden. <\/p>\n<p><a href=\"http:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/ios.jpg\" rel=\"attachment wp-att-89581\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/ios.jpg\" alt=\"ios\" width=\"500\" height=\"301\" class=\"aligncenter size-full wp-image-89581\" srcset=\"https:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/ios.jpg 500w, https:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/ios-300x181.jpg 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Ein ganz einfaches Beispiel: Entwickler Bob hat eine App f\u00fcr seinen Sportverein erstellt, in der auch ein einfacher Browser-Zugriff angeboten werden soll. Anstatt die Browser-Komponente komplett selbst zu programmieren, nutzt Bob das Open-Source-Projekt &#8222;<a href=\"https:\/\/github.com\/dfmuir\/KINWebBrowser\">KINWebBrowser<\/a>&#8222;. Um dieses nicht h\u00e4ndisch aus dem Netz zu laden, sondern automatisiert in das eigene Projekt einzuf\u00fcgen, kann Bob eine Info-Datei anlegen und auf die <a href=\"http:\/\/cocoapods.org\/pods\/SS-KINWebBrowser\">CocoaPods-Infrastruktur<\/a> zugreifen um den &#8222;KINWebBrowser&#8220; zu laden, zu aktualisieren und in seinen Xcode-Dateien zu sichern. <\/p>\n<p>Kurzum: CocoaPods vereinfacht den Entwickler-Alltag. <\/p>\n<p>In den vergangenen Wochen hatte die Paket-Verwaltung jedoch mit massiven Performance-Problemen zu k\u00e4mpfen. Die Abfrage der Datenbank dauerte unglaublich lange, stellenweise liefen die Synchronisationen sogar ins Leere. <\/p>\n<p>Auf dem Code-Portal GitHub, das die CocoaPods-Entwickler als Backend f\u00fcr ihren Dienst einsetzen, <a href=\"https:\/\/github.com\/CocoaPods\/CocoaPods\/issues\/4989#issuecomment-193772935\">erkl\u00e4ren zwei Ingenieure<\/a> jetzt die Ursachen der schlechten Erreichbarkeit. <\/p>\n<p>Das CocoaPods-Projekt kratzt an den Kapazit\u00e4tsgrenzen des GitHub-Portals. So befindet sich die CocoaPods-Datenbank in den Top-5 der zugriffsst\u00e4rksten GitHub-Projekte und besch\u00e4ftigt f\u00fcnf Server-CPUs, die kontinuierlich unter Dauerlast fahren. Allein der in der letzten Woche z\u00e4hlte GitHub 1,1 Millionen CocoaPods-Zugriffe. <\/p>\n<p>In ihrem spannenden Foren-Beitrag besprechen die GitHub-Mitarbeiter nun die Hintergr\u00fcnde, informieren warum man sich dazu entschieden habe, die zur Verf\u00fcgung stehenden Kapazit\u00e4ten zu begrenzen und geben den Verantwortlichen CocoaPods-Machern Tipps f\u00fcr eine zuk\u00fcnftige Verbesserung ihres Angebotes: <\/p>\n<blockquote><p>All of these factors combine to make CocoaPods\/Specs one of the top five most resource-costly repositories that we host on all of GitHub.com. And that is why it is rate-limited; otherwise it would consume even more resources and cause service interruptions for other GitHub users. The symptoms of the rate limiting for you and your users are that your repository accesses (clones, fetches, pushes) have to wait in a queue on our end, sometimes for a long time, before being processed. This causes fetches\/clones to take much longer than they would otherwise, and might cause timeouts at your end.\n<\/p><\/blockquote>\n<p>Sehr nerdig, aber auch <a href=\"https:\/\/github.com\/CocoaPods\/CocoaPods\/issues\/4989#issuecomment-193772935\">sehr lesenswert<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<a href=\"https:\/\/www.ifun.de\/cocoapods-ios-paketverwaltung-bringt-github-an-kapazitaetsgrenzen-89579\/\"><img width=\"150\" height=\"150\" src=\"https:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/ios-150x150.jpg\" class=\"alignright tfe wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/a><p>Die freie Paketverwaltung CocoaPods bietet Entwicklern von iOS und OS X-Applikationen eine einfache M\u00f6glichkeit zur Verwaltung von Code-Abh\u00e4ngigkeiten an. Mit Hilfe des Kommandozeilen-Werkzeuges k\u00f6nnen Entwickler ihre Projekte um h\u00e4ufig ben\u00f6tigte Programm-Bibliotheken erg\u00e4nzen, diese auf dem aktuellen Stand halten und sicherstellen, dass alle Abh\u00e4ngigkeiten in aktiven Projekten bedient werden. Ein ganz einfaches Beispiel: Entwickler Bob hat [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":89581,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6],"tags":[4738,4739,293,986],"class_list":["post-89579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-entwickler","tag-entwickler","tag-ios","tag-os-x","tag-xcode"],"acf":[],"aioseo_notices":[],"featured_image":["http:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/repo.jpg"],"rest_api_enabler":{"featured_image":"http:\/\/images.ifun.de\/wp-content\/uploads\/2016\/03\/repo.jpg"},"_links":{"self":[{"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/posts\/89579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/comments?post=89579"}],"version-history":[{"count":3,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/posts\/89579\/revisions"}],"predecessor-version":[{"id":89585,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/posts\/89579\/revisions\/89585"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/media\/89581"}],"wp:attachment":[{"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/media?parent=89579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/categories?post=89579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ifun.de\/apiv2\/wp\/v2\/tags?post=89579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}