{"id":77783,"date":"2020-04-14T01:42:28","date_gmt":"2020-04-13T23:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack"},"modified":"2020-04-14T01:42:28","modified_gmt":"2020-04-13T23:42:28","slug":"metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","title":{"rendered":"Das Deployment-Verfahren, das in Slack verwendet wird","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Die Einf\u00fchrung einer neuen Projektversion in die Produktion erfordert eine sorgf\u00e4ltige Balance zwischen der Geschwindigkeit des Deployments und der Zuverl\u00e4ssigkeit der L\u00f6sung. Bei Slack wird Wert auf schnelle Iterationen, kurze Feedbackzyklen und eine z\u00fcgige Reaktion auf Benutzeranfragen gelegt. Dar\u00fcber hinaus stehen Hunderten von Programmierern zur Verf\u00fcgung, die nach maximaler Produktivit\u00e4t streben.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\"><img decoding=\"async\" alt=\"Das Deployment-Verfahren, das in Slack verwendet wird\" src=\"\/wp-content\/uploads\/2020\/04\/a3d3cec330e9b9bd402035c22bda48ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Die Autoren des Materials, dessen \u00dcbersetzung wir heute ver\u00f6ffentlichen, betonen, dass ein Unternehmen, das solche Werte verfolgt und gleichzeitig w\u00e4chst, st\u00e4ndig sein Deployment-System verbessern sollte. Es ist wichtig, in die Transparenz und Zuverl\u00e4ssigkeit der Arbeitsprozesse zu investieren, damit diese den Anforderungen des Projekts gerecht werden. Hier wird \u00fcber die Arbeitsprozesse gesprochen, die in Slack entstanden sind, sowie \u00fcber einige L\u00f6sungen, die das Unternehmen zur aktuellen Deployment-Systematik gef\u00fchrt haben.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Wie die Deployment-Prozesse heute funktionieren<\/h2>\n<p>\nJede PR (Pull Request) in Slack muss unbedingt einer Code-\u00dcberpr\u00fcfung unterzogen werden und alle Tests erfolgreich bestehen. Erst nachdem diese Bedingungen erf\u00fcllt sind, kann der Entwickler seinen Code mit dem Master-Branch des Projekts zusammenf\u00fchren. Die Bereitstellung des Codes erfolgt jedoch nur w\u00e4hrend der Arbeitszeiten in Nordamerikanischer Zeitzone. Dadurch sind wir dank unserer Mitarbeiter vor Ort vollst\u00e4ndig bereit, unerwartete Probleme zu l\u00f6sen.<\/p>\n<p>Jeden Tag f\u00fchren wir etwa 12 geplante Bereitstellungen durch. W\u00e4hrend jeder Bereitstellung ist der f\u00fcr die Bereitstellung verantwortliche Entwickler f\u00fcr die Einf\u00fchrung des neuen Builds in die Produktion zust\u00e4ndig. Dies ist ein mehrstufiger Prozess, der eine reibungslose Einf\u00fchrung des Builds in den Live-Betrieb gew\u00e4hrleistet. Mit diesem Ansatz k\u00f6nnen wir Fehler erkennen, bevor sie alle unsere Nutzer beeintr\u00e4chtigen. Sollte es zu vielen Fehlern kommen, kann die Bereitstellung des Builds zur\u00fcckgesetzt werden. Wird hingegen ein spezifisches Problem nach der Ver\u00f6ffentlichung entdeckt, l\u00e4sst sich daf\u00fcr leicht ein Hotfix ausbringen.<\/p>\n<p><img decoding=\"async\" alt=\"Das Deployment-Verfahren, das in Slack verwendet wird\" src=\"\/wp-content\/uploads\/2020\/04\/e05d8ecf210832734a7bb691621a1f96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Die Schnittstelle des Checkpoint-Systems, die in Slack zur Bereitstellung von Projekten verwendet wird<\/i><\/p>\n<p>Der Prozess der Bereitstellung eines neuen Releases in der Produktion kann als bestehend aus vier Schritten dargestellt werden.<\/p>\n<h3>\u258d1. Erstellung eines Release-Branches<\/h3>\n<p>\nJedes Release beginnt mit einem neuen Release-Branch zu einem bestimmten Zeitpunkt in unserer Git-Historie. Dies erm\u00f6glicht es, dem Release Tags zuzuweisen und schafft einen Bereich, in den schnelle Korrekturen f\u00fcr Fehler eingef\u00fcgt werden k\u00f6nnen, die w\u00e4hrend der Vorbereitung des Releases f\u00fcr die Produktion entdeckt wurden.<\/p>\n<h3>\u258d2. Bereitstellung in der Zwischenumgebung<\/h3>\n<p>\nDer n\u00e4chste Schritt besteht darin, das Build auf den Staging-Servern bereitzustellen und einen automatischen Test auf die allgemeine Funktionsf\u00e4higkeit des Projekts (Smoke-Test) durchzuf\u00fchren. Die Zwischenumgebung ist eine Produktionsumgebung, in die kein externer Traffic eindringt. In dieser Umgebung f\u00fchren wir zus\u00e4tzliche manuelle Tests durch. Dies gibt uns zus\u00e4tzliche Sicherheit, dass das angepasste Projekt korrekt funktioniert. Automatisierte Tests allein reichen nicht aus, um ein solches Vertrauen zu gewinnen.<\/p>\n<h3>\u258d3. Bereitstellung in Dogfood- und Canary-Umgebungen<\/h3>\n<p>\nDie Bereitstellung in der Produktion beginnt mit der dogfood-Umgebung, die aus einer Reihe von Hosts besteht, die unsere internen Arbeitsbereiche in Slack unterst\u00fctzen. Da wir starke Slack-Nutzer sind, hat dieser Ansatz geholfen, viele Fehler in den fr\u00fchen Phasen der Bereitstellung zu erkennen. Sobald wir unsergestellt haben, dass die grundlegenden Funktionalit\u00e4ten des Systems nicht beeintr\u00e4chtigt sind, erfolgt die Bereitstellung des Builds in der Canary-Umgebung. Diese besteht aus Systemen, die etwa 2% des Produktionsverkehrs erhalten.<\/p>\n<h3>\u258d4. Schrittweise Einf\u00fchrung in der Produktion<\/h3>\n<p>\nWenn die \u00dcberwachungskennzahlen der neuen Version stabil sind und wir nach der Bereitstellung des Projekts in der Canary-Umgebung keine Beschwerden erhalten haben, setzen wir die schrittweise Umstellung der Produktionsserver auf die neue Version fort. Der Bereitstellungsprozess ist in die folgenden Phasen unterteilt: 10%, 25%, 50%, 75% und 100%. So k\u00f6nnen wir den Produktionsverkehr schrittweise auf die neue Version des Systems \u00fcbertragen. Dies gibt uns Zeit, die Situation zu beobachten, falls Anomalien auftreten.<\/p>\n<h3>\u258dWas tun, wenn w\u00e4hrend der Bereitstellung etwas schiefgeht?<\/h3>\n<p>\n\u00c4nderungen im Code sind immer mit Risiken verbunden. Doch wir meistern dies dank unserer gut geschulten Deployment-Leiter, die den Prozess der Bereitstellung neuer Releases in die Produktion leiten, die \u00dcberwachungskennzahlen im Blick behalten und die Arbeit der Entwickler koordinieren, die den Code erstellen.<\/p>\n<p>Falls etwas tats\u00e4chlich schiefgeht, versuchen wir, das Problem so fr\u00fch wie m\u00f6glich zu erkennen. Wir analysieren das Problem, identifizieren den PR, der die Fehler verursacht, setzen ihn zur\u00fcck, untersuchen ihn gr\u00fcndlich und erstellen ein neues Build. Manchmal bleibt das Problem jedoch bis zur Produktion unentdeckt. In einem solchen Fall ist es am wichtigsten, den Dienst wiederherzustellen. Daher setzen wir, bevor wir mit der Problemuntersuchung beginnen, sofort zur letzten funktionierenden Version zur\u00fcck.<\/p>\n<h2>Die Grundbausteine des Deployment-Systems<\/h2>\n<p>\nBetrachten wir die Technologien, die unserer Projektbereitstellung zugrunde liegen.<\/p>\n<h3>\u258dSchnelle Deployments<\/h3>\n<p>\nDer oben beschriebene Arbeitsprozess mag im R\u00fcckblick als vollkommen offensichtlich erscheinen. Aber unser Deployment-System hat sich nicht von Anfang an so entwickelt.<\/p>\n<p>Als das Unternehmen noch viel kleiner war, konnte unsere gesamte Anwendung auf 10 Amazon EC2-Instanzen laufen. Die Bereitstellung eines Projekts in einer solchen Situation bedeutete, rsync f\u00fcr eine schnelle Synchronisation aller Server zu verwenden. Fr\u00fcher trennte nur ein Schritt den neuen Code von der Produktion, der durch eine Zwischenumgebung dargestellt wurde. Builds wurden in dieser Umgebung erstellt und getestet, bevor sie direkt in die Produktion gingen. Es war sehr einfach, sich in einem solchen System zurechtzufinden, da es jedem Programmierer zu jedem Zeitpunkt erm\u00f6glichte, seinen geschriebenen Code bereitzustellen.<\/p>\n<p>Doch mit wachsenden Kundenzahlen stieg auch der Umfang der Infrastruktur, die f\u00fcr den Betrieb des Projekts erforderlich war. Bald, angesichts des st\u00e4ndigen Systemwachstums, konnte unser Bereitstellungsmodell, das auf dem Senden neuen Codes an die Server basierte, nicht mehr seinen Zweck erf\u00fcllen. Jedes Hinzuf\u00fcgen eines neuen Servers bedeutete eine Erh\u00f6hung der Zeit, die f\u00fcr die Bereitstellung ben\u00f6tigt wurde. Selbst Strategien, die auf der parallelen Anwendung von rsync basierten, haben gewisse Einschr\u00e4nkungen.<\/p>\n<p>Schlie\u00dflich haben wir das Problem gel\u00f6st, indem wir auf ein vollst\u00e4ndig paralleles Bereitstellungssystem umgestiegen sind, das anders strukturiert ist als das alte System. Statt den Code \u00fcber ein Synchronisationsskript auf Server zu senden, laden nun die Server selbstst\u00e4ndig die neue Version herunter, nachdem sie durch das Monitoring der \u00c4nderung des Consul-Schl\u00fcssels dar\u00fcber informiert wurden. Die Server laden den Code parallel herunter. Dies erm\u00f6glichte es uns, eine hohe Bereitstellungsgeschwindigkeit auch in Zeiten des st\u00e4ndigen Systemwachstums aufrechtzuerhalten.<\/p>\n<p><img decoding=\"async\" alt=\"Das Deployment-Verfahren, das in Slack verwendet wird\" src=\"\/wp-content\/uploads\/2020\/04\/baf52b60024eb9881e8a31fbf0da08bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Produktionsserver \u00fcberwachen den Consul-Schl\u00fcssel. 2. Der Schl\u00fcssel \u00e4ndert sich, was den Servern signalisiert, dass sie mit dem Herunterladen des neuen Codes beginnen m\u00fcssen. 3. Die Server laden die Tarball-Dateien mit dem Anwendungscode herunter.<\/i><\/p>\n<h3>\u258dAtomare Bereitstellungen<\/h3>\n<p>\nEine weitere L\u00f6sung, die uns geholfen hat, zu einem mehrstufigen Bereitstellungssystem zu gelangen, war die atomare Bereitstellung.<\/p>\n<p>Vor der Einf\u00fchrung atomarer Bereitstellungen konnte jede Bereitstellung eine Vielzahl von Fehlermeldungen verursachen. Der Grund daf\u00fcr war, dass der Prozess des Kopierens neuer Dateien auf Produktionsserver nicht atomar war. Dies f\u00fchrte zu einer kurzen Zeitspanne, in der der Code, der neue Funktionen aufrief, zug\u00e4nglich war, bevor die Funktionen selbst verf\u00fcgbar waren. Wenn solcher Code ausgef\u00fchrt wurde, kam es zu internen Fehlern. Dies \u00e4u\u00dferte sich in fehlgeschlagenen API-Anfragen und \u201ekaputten\u201c Webseiten.<\/p>\n<p>Das Team, das sich mit diesem Problem besch\u00e4ftigte, l\u00f6ste es durch die Einf\u00fchrung des Konzepts von \u201ehei\u00dfen\u201c (hot) und \u201ekalten\u201c (cold) Verzeichnissen. Der Code im \u201ehei\u00dfen\u201c Verzeichnis ist f\u00fcr die Verarbeitung des Produktionsverkehrs verantwortlich. In den \u201ekalten\u201c Verzeichnissen wird der Code w\u00e4hrend des Systembetriebs lediglich f\u00fcr die Nutzung vorbereitet. Bei der Bereitstellung wird der neue Code in ein ungenutztes \u201ekaltes\u201c Verzeichnis kopiert. Dann, wenn auf dem Server keine aktiven Prozesse mehr laufen, erfolgt ein sofortiger Verzeichniswechsel.<\/p>\n<p><img decoding=\"async\" alt=\"Das Deployment-Verfahren, das in Slack verwendet wird\" src=\"\/wp-content\/uploads\/2020\/04\/05ab374f047e53e408f3e75ad3a73d68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Entpacken des Anwendungscodes in ein 'kaltes' Verzeichnis. 2. Umschalten des Systems auf das 'kalte' Verzeichnis, das zu einem 'hei\u00dfen' wird (atomare Operation)<\/i><\/p>\n<h2>Zusammenfassung: Verschiebung des Fokus auf Zuverl\u00e4ssigkeit<\/h2>\n<p>\nIm Jahr 2018 erreichte das Projekt ein solches Ausma\u00df, dass eine sehr schnelle Bereitstellung der Stabilit\u00e4t des Produkts schadete. Wir hatten ein \u00e4u\u00dferst fortschrittliches Bereitstellungssystem, in das wir viel M\u00fche und Zeit investiert hatten. Wir mussten nur die Prozesse der Bereitstellungsorganisation neu strukturieren und verbessern. Wir sind zu einem ausreichend gro\u00dfen Unternehmen geworden, dessen Entwicklungen weltweit f\u00fcr die Organisation einer unterbrechungsfreien Kommunikation und zur L\u00f6sung wichtiger Aufgaben verwendet wurden. Daher stand die Zuverl\u00e4ssigkeit im Mittelpunkt unserer Aufmerksamkeit.<\/p>\n<p>Wir mussten den Prozess f\u00fcr die Bereitstellung neuer Slack-Versionen sicherer gestalten. Diese Notwendigkeit f\u00fchrte uns zur Verbesserung unseres Bereitstellungssystems. Wie bereits oben erw\u00e4hnt, haben wir dieses verbesserte System diskutiert. Innerhalb des Systems setzen wir weiterhin auf Technologien f\u00fcr schnelle und atomare Bereitstellungen. Was sich ver\u00e4ndert hat, ist, wie die Bereitstellung selbst erfolgt. Unser neues System ist darauf ausgelegt, die Bereitstellung neuer Codes schrittweise auf verschiedenen Ebenen und in unterschiedlichen Umgebungen durchzuf\u00fchren. Jetzt verwenden wir fortschrittlichere Tools und Monitoring-Mittel als zuvor. Dies erm\u00f6glicht es uns, Fehler fr\u00fchzeitig zu erkennen und zu beheben, bevor sie die Endnutzer erreichen.<\/p>\n<p>Doch wir haben nicht vor, uns auf unseren Erfolgen auszuruhen. Wir verbessern dieses System st\u00e4ndig, indem wir fortschrittlichere Support-Tools und Automatisierungstechniken einsetzen.<\/p>\n<p><b>Sehr geehrte Leser!<\/b> Wie funktioniert der Prozess der Bereitstellung neuer Projekt-Versionen in Ihrem Arbeitsumfeld?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Das Deployment-Verfahren, das in Slack verwendet wird\" src=\"\/wp-content\/uploads\/2020\/04\/1aeb4af5770ce139b651be62e955f130.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77784,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-13T23:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-13T23:42:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Die Projektbereitstellungsmethodik, die bei Slack angewendet wird | ProHoster","description":"Die Einf\u00fchrung einer neuen Version eines Projekts in die Produktion erfordert ein sorgf\u00e4ltiges Gleichgewicht zwischen Bereitstellungsgeschwindigkeit und L\u00f6sungszuverl\u00e4ssigkeit. Bei Slack werden schnelle Iterationen, kurze Feedbackzyklen und eine rasche Reaktion auf Benutzeranfragen gesch\u00e4tzt. Zudem gibt es im Unternehmen Hunderte von Programmierern, die bestrebt sind, die maximale Produktivit\u00e4t zu erreichen. Die Autoren des Materials, dessen \u00dcbersetzung wir heute ver\u00f6ffentlichen, betonen, dass das Unternehmen, das","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster","og:description":"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-13T23:42:28+00:00","article:modified_time":"2020-04-13T23:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77783","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:11:30","updated":"2022-09-28 09:37:25"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/77783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=77783"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/77783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/77784"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=77783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=77783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=77783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}