{"id":299995,"date":"2020-03-11T21:00:26","date_gmt":"2020-03-11T21:00:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=299995"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2020-03-11T21:00:26","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=299995","title":{"rendered":"Wrike \u043e\u043d\u043b\u0430\u0439\u043d-\u043c\u0438\u0442\u0430\u043f: Delivery infrastructure: processes and tools (DevOps+QAA)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/wrike\/blog\/491932\/\">\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>  \u041c\u044b \u0432 Wrike \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439 \u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043e\u043d\u043b\u0430\u0439\u043d-\u043c\u0438\u0442\u0430\u043f\u0443 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c. \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u043c\u0438 \u043f\u0440\u043e DevOps \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u0443\u0431\u044b, \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Selenoid \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 TeamCity \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xa\/30\/qw\/xa30qworwdeklqckdhdwz_ge0lc.png\"><br \/>  <a name=\"habracut\"><\/a> <br \/>  \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441\u0430 \u0438 \u0431\u0430\u043d\u044b \u0432\u0441\u0435\u0445 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u043e\u0444\u043b\u0430\u0439\u043d-\u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439 \u043d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0445 \u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432 \u0432\u043d\u0435\u0441\u043b\u0438 \u0441\u0432\u043e\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0432\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f Wrike Prague \u043e\u0444\u0444\u043b\u0430\u0439\u043d \u0432\u0441\u0442\u0440\u0435\u0447\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0438 \u0434\u0435\u0432\u043e\u043f\u043e\u0432 \u043f\u0435\u0440\u0435\u0442\u0435\u043a\u043b\u0430 \u0432 \u044e\u0442\u044c\u044e\u0431-\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e. <\/p>\n<p>  \u041d\u043e \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u0448\u043b\u0438\u0441\u044c \u0438 \u0441\u0432\u043e\u0438 \u043f\u043b\u044e\u0441\u044b \u2013 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0433\u0434\u0435 \u0432\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0435\u0441\u044c, \u0437\u0430\u0432\u0442\u0440\u0430 \u0432\u0435\u0447\u0435\u0440\u043e\u043c \u0432 20:00 \u043f\u043e \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c (\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e) \u0432 \u043f\u0440\u0430\u0436\u0441\u043a\u0438\u0439 \u043e\u0444\u0438\u0441 Wrike, \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0432\u0448\u0438\u0441\u044c \u043a \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u043c\u0438\u0442\u0430\u043f\u0430 \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u044e\u0442\u044c\u044e\u0431-\u043a\u0430\u043d\u0430\u043b\u0435. \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/Qr236C0T_f4?rel=0&amp;showinfo=1&amp;start=0&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\" allow=\"encrypted-media; accelerometer; gyroscope; picture-in-picture\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438:<\/p>\n<p>  <b>1. Mikhail Levin, Wrike \u2013 Selenium \u2014 road to Kubernetes<\/b><\/p>\n<p>  Once upon a time Selenium lived and grew. It was probably the best thing that happened for QA automation in the last two decades, and yeah, that wasn&#8217;t easy in many ways including infrastructure and stability.<\/p>\n<p>  With long experience in selenium grid infrastructure and alternatives, I want to walk you through some issues and limitations of different selenium infrastructures up to our brand new lightweight solution.<\/p>\n<p>  <b>2. Vitaliy Markov, Wrike \u2013 Callisto: how we learned to stop worrying and love Selenium<\/b><\/p>\n<p>  Meet Callisto \u2014 our lightweight and open-source Kubernetes-native solution for building of Selenium infrastructure. We run 10th thousands of selenium tests in one hour and survive hundreds of daily selenium test runs with it. We want to share our reasons, the solution itself and technical details learned on the way. Our experience might come in handy whether you run that much of selenium tests or you just have some session based work to be run in k8s in many threads.<\/p>\n<p>  3. <b>Kirill Maximov, JetBrains (TeamCity team) \u2014 Test automation with TeamCity, out of the box<\/b><\/p>\n<p>  In this talk we will discuss how a CI tool can help with test handling, both from a technical perspective and organizational one.<\/p>\n<p>  If your builds are always green, that&#8217;s perfect. What&#8217;s important is how you can react to a problem, and how quickly it can be analyzed and fixed. And how a CI tool can help with that.<\/p>\n<p>  TeamCity allows handling tests from different frameworks using the same principles and patterns, out of the box. You will also see how to integrate your own very custom tests into the build pipeline, if there is no ready-to-use solution.<\/p>\n<p>  <b>4. Ivan Krutov, Aerokube \u2013 Chrome Developer Tools Protocol: running and scaling in Kubernetes<\/b><\/p>\n<p>  Many years Selenium is the most popular browser automation tool. However, Selenium protocol still lacks a lot of important features: analyzing and mocking HTTP requests, getting memory consumption and performance metrics, subscribing to application events, retrieving browser security warnings and many more. Fortunately, all this stuff is already supported in the so-called Chrome Developer Tools protocol. There are a lot of talks on how to start using this protocol with client libraries like Puppeteer, but almost nobody tells how to scale this solution. During my talk, I would like to explain how to scale Chrome Developer Tools in Kubernetes cluster and to show some real examples of how you could use this protocol in your tests.<\/p>\n<p>  <a href=\"https:\/\/www.youtube.com\/watch?v=Qr236C0T_f4&amp;feature=youtu.be&amp;t=0s\">\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f<\/a><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/wrike\/blog\/491932\/\"> https:\/\/habr.com\/ru\/company\/wrike\/blog\/491932\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/wrike\/blog\/491932\/\">\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>  \u041c\u044b \u0432 Wrike \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439 \u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u043c\u0443 \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043e\u043d\u043b\u0430\u0439\u043d-\u043c\u0438\u0442\u0430\u043f\u0443 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c. \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u043c\u0438 \u043f\u0440\u043e DevOps \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u0443\u0431\u044b, \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b Selenoid \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 TeamCity \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xa\/30\/qw\/xa30qworwdeklqckdhdwz_ge0lc.png\">  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-299995","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/299995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=299995"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/299995\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=299995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=299995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}