{"id":54449,"date":"2019-12-26T00:00:00","date_gmt":"2019-12-25T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po"},"modified":"2020-02-18T14:02:27","modified_gmt":"2020-02-18T11:02:27","slug":"kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po","title":{"rendered":"How I spent a week as an SRE engineer intern. Duty through the eyes of a software engineer.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"How I spent a week as an SRE engineer intern. Duty through the eyes of a software engineer.\" src=\"\/wp-content\/uploads\/2019\/12\/4ec4c4871f3d0d9a01b43035e6180d72.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"sre-inzhener---stazher\">SRE Engineer - Intern<\/h2>\n<p><\/p>\n<p>Let me introduce myself. I am <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/tristan.read\">@tristan.read<\/a><\/noindex>, a frontend engineer in the <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/development\/ops\/monitor\/health\/\">Monitor::Health<\/a><\/noindex> GitLab. Last week I had the honor of being an intern with one of our on-call SRE engineers. The goal was to observe daily how the on-call engineer responds to incidents and gain real work experience. We would like our engineers to better understand user needs. <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/product\/categories\/#health-group\">functions<\/a><\/noindex> Monitor::Health.<\/p>\n<p><\/p>\n<p>I was to follow the SRE engineer everywhere for a week. This meant I attended the handover of duty, observed the same alert channels, and responded to incidents if and when they occurred.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"incidenty\">Incidents<\/h2>\n<p><\/p>\n<p>During the week, two incidents occurred.<\/p>\n<p><\/p>\n<h3 id=\"1-kriptomayner\">1. Crypto Miner<\/h3>\n<p><\/p>\n<p>On Wednesday, a spike in the usage of GitLab.com was recorded, caused by attempts to use runner minutes for cryptocurrency mining. The incident was resolved using our own violation neutralization tool, which stops runner jobs and removes the related project and account. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/runner\/\">GitLab Runner<\/a><\/noindex>caused by attempts to use runner minutes for cryptocurrency mining. The incident was addressed with our own violation neutralization tool that stops runner tasks and removes the associated project and account. <\/p>\n<p><\/p>\n<p>2. Degradation of Performance for Canary and Main Applications<\/p>\n<p><\/p>\n<h3 id=\"2-degradaciya-proizvoditelnosti-prilozheniy-canary-i-main\">The incident was triggered by slowdowns and increased error rates in the canary and main web applications on GitLab.com. Several Apdex values were violated.<\/h3>\n<p><\/p>\n<p>Open incident task:<\/p>\n<p><\/p>\n<p>Key Takeaways <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/production\/issues\/1442\">https:\/\/gitlab.com\/gitlab-com\/gl-infra\/production\/issues\/1442<\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"klyuchevye-vyvody\">Here are a few points I learned during the week on duty.<\/h2>\n<p><\/p>\n<p>1. Alerts are most useful when they detect deviations from normal behavior.<\/p>\n<p><\/p>\n<h3 id=\"1-opovescheniya-naibolee-polezny-kogda-zasekayut-otkloneniya-ot-normy\">Alerts can be divided into several types:<\/h3>\n<p><\/p>\n<p>Alerts based on a specific threshold, such as '10 5xx errors occurred per second.'<\/p>\n<p><\/p>\n<ul>\n<li>Alerts based on a specific threshold, such as '10 5xx errors occurred per second.'<\/li>\n<li>Alerts where the threshold is a percentage, such as '5xx error rate is 10% of the total request volume within a specified time.'<\/li>\n<li>Alerts based on historical average values, such as '5xx errors in the 90th percentile.'<\/li>\n<\/ul>\n<p><\/p>\n<p>2. Many alerts do not escalate to incidents.<\/p>\n<p><\/p>\n<h3 id=\"2-mnogie-opovescheniya-tak-i-ne-eskaliruyutsya-do-incidentov\">SRE engineers deal with a constant stream of alerts, many of which are not actually critical.<\/h3>\n<p><\/p>\n<p>SR engineers are faced with a constant flow of alerts, many of which are not critical.<\/p>\n<p><\/p>\n<p>So, why not limit alerts to only the truly important ones? With this approach, however, one might miss the early signs of something that can snowball into a real problem, threatening significant damage.<\/p>\n<p><\/p>\n<p>The on-call SRE's job is to determine which alerts truly indicate something serious and whether they need to be escalated and investigated. I suspect this is also caused by the inflexibility of alerts: it would be better to introduce several levels or 'smart' ways to configure alerts in line with the situation described above.<\/p>\n<p><\/p>\n<p>Feature suggestion: <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/issues\/42633\">https:\/\/gitlab.com\/gitlab-org\/gitlab\/issues\/42633<\/a><\/noindex><\/p>\n<p><\/p>\n<h3 id=\"3-nashi-dezhurnye-sre-ispolzuyut-mnogo-instrumentov\">3. Our on-call SREs use many tools<\/h3>\n<p><\/p>\n<p><strong>Internal:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>GitLab infra project: this is where the Runbooks, handover of on-call shifts, and incident response tasks live.<\/li>\n<li>GitLab issues: investigations, reviews, and maintenance are also tracked in issues.<\/li>\n<li>GitLab labels: automation tasks are triggered by specific labels that bots monitor for task activity.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>External:<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>PagerDuty: alerts<\/li>\n<li>Slack: this is where the stream of PagerDuty\/AlertManager messages is directed. Integration with slash commands for executing various tasks, such as closing alerts or escalating to an incident.<\/li>\n<li>Grafana: visualization of metrics with a focus on long-term trends.<\/li>\n<li>Kibana: provides visualization\/search in logs, allowing deeper dives into specific events.<\/li>\n<li>Zoom: there is a constantly active 'discussion room' in Zoom. This allows SRE engineers to quickly discuss events without wasting precious time creating a room and sending links to participants.<\/li>\n<\/ul>\n<p><\/p>\n<p>And much, much more.<\/p>\n<p><\/p>\n<h3 id=\"4-monitoring-gitlabcom-pri-pomoschi-gitlab---eto-edinaya-tochka-otkaza\">4. Monitoring GitLab.com with GitLab is a single point of failure<\/h3>\n<p><\/p>\n<p>If there is a major service outage on GitLab.com, we would not want that to affect our ability to resolve the issue. It can be mitigated by launching a second instance of GitLab to manage GitLab.com. In fact, this is already operational for us: <noindex><a rel=\"nofollow\" href=\"https:\/\/ops.gitlab.net\/\">https:\/\/ops.gitlab.net\/<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"5-neskolko-funkciy-kotorye-sleduet-rassmotret-k-dobavleniyu-v-gitlab\">5. Several features to consider adding to GitLab<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/issues\/103531\">Multi-user task editing<\/a><\/noindex>, similar to Google Docs. This would assist in incident tasks during an event, as well as in review tasks. In both cases, multiple participants may need to add something in real-time.<\/li>\n<li>More webhooks for tasks. The ability to trigger different steps of the GitLab workflow internally will help reduce reliance on Slack integrations. For example, the option to enable notifications in PagerDuty through a slash command in a GitLab task.<br \/>\nConclusion<\/li>\n<\/ul>\n<p><\/p>\n<p>SRE engineers face many challenges. It would be great to see more GitLab products addressing these issues. We are already working on some additions to the product that will ease the workflows mentioned above. Details are available in <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/direction\/ops\/\">the Ops Product Vision section<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>In 2020, we are expanding the team to build all these amazing features. If you're interested, please check out <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/jobs\/apply\/\">job openings<\/a><\/noindex>, and feel free to reach out to anyone on our team with any questions.<\/p>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/481912\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>SRE-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u2014 \u0441\u0442\u0430\u0436\u0435\u0440 \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0441\u044f. \u042f \u2014 @tristan.read, \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 Monitor::Health GitLab&#8217;\u0430. \u041d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u043d\u0435\u0434\u0435\u043b\u0435 \u043c\u043d\u0435 \u0432\u044b\u043f\u0430\u043b\u0430 \u0447\u0435\u0441\u0442\u044c \u043f\u043e\u0431\u044b\u0442\u044c \u0441\u0442\u0430\u0436\u0435\u0440\u043e\u043c \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u0434\u0435\u0436\u0443\u0440\u043d\u044b\u0445 SRE-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432. \u0426\u0435\u043b\u044c\u044e \u0431\u044b\u043b\u043e \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0442\u0435\u043c, \u043a\u0430\u043a \u0434\u0435\u0436\u0443\u0440\u043d\u044b\u0439 \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b, \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b. \u041d\u0430\u043c \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":54450,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54449","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\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\/en\/blog\/administrirovanie\/kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\u041a\u0430\u043a \u044f \u043d\u0435\u0434\u0435\u043b\u044e \u0431\u044b\u043b \u0441\u0442\u0430\u0436\u0435\u0440\u043e\u043c SRE-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430. \u0414\u0435\u0436\u0443\u0440\u0441\u0442\u0432\u043e \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u041f\u041e | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po\" \/>\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=\"2019-12-25T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:27+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\udd47How I Spent a Week as an SRE Intern. On Call Through the Eyes of a Software Engineer | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\u041a\u0430\u043a \u044f \u043d\u0435\u0434\u0435\u043b\u044e \u0431\u044b\u043b \u0441\u0442\u0430\u0436\u0435\u0440\u043e\u043c SRE-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430. \u0414\u0435\u0436\u0443\u0440\u0441\u0442\u0432\u043e \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u041f\u041e | ProHoster","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/kak-ya-nedelyu-byl-stazherom-sre-inzhenera-dezhurstvo-glazami-inzhenera-po","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":"2019-12-25T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54449","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":"2026-01-24 11:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:05:07","updated":"2026-01-24 11:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/54449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=54449"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/54449\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/54450"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=54449"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=54449"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=54449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}