Free YouTube Transcribe

Video transcript

Пришёл на МОК собес, а получил РЕАЛЬНОЕ ПРЕДЛОЖЕНИЕ / Интервью на позицию Middle DevOps / 4

Александр Донской | DevOps фабрика · 17,554 words · 80 min read

WhatsAppTelegramX

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

Вступление

0:00But for DevOps , it wasn't clear to me what that actually includes . I moved to another company because my boss went there . And they also ask us about it , like ... Like , yeah , I was just supporting someone there . Well , I wish it would start already . Not a problem , but it's just like ,

0:16you're not good enough , we're not hiring you . If you want to participate in a mock interview for a DevOps engineer position , at any grade , starting from intern , junior , middle , to senior — it doesn't matter — then write to our Telegram channel . All links will be in the description under this video and also in the channel

0:33description . Every one of our mock interviews includes , of course , the classic part of any interview , such as the introduction , the technical part , and questions on topics related to a specific discipline or technology , be it Linux , Ansible , CI / CD , and so on . But the most main and important part is

0:50the last one — the feedback . That is the feedback we give to the candidate after they have shown their best during the interview . Feedback allows you to see your strengths , your weaknesses , areas for growth , to notice some mistakes , or perhaps , conversely , to have those details pointed out that you hadn't noticed , but which are positive

1:09features . If you are interested in mock interviews , resume reviews , DevOps best practices , and the specifics of passing interviews in the DevOps field , then be sure to subscribe to the channel , like the video , and join the Telegram group . Well , I also started my journey in IT a

Introduction

1:30long time ago , starting with telecom , then I decided that I knew enough about networks . I needed to level up a little bit with computers . Back then , there wasn't really any kind of plan . I got a job at a company as an admin . Yeah . And then , somehow , through word of mouth ,

1:52some clients appeared . I realized I could try my hand at any-key IT support and combined it by finding a job with a 24 / 7 - on-call shift , but not as a security guard , also in IT . So I combined it with IT support , but then I realized that support wasn't my path ,

2:14because the clients are all different , everyone has their own thing , and there's no way I could develop a single solution and install it for everyone , so to speak . Yeah . And so , at one of my support jobs , in the corporate chat — or rather , a mailing list — I saw an

2:35opening for an on-duty Linux administrator and realized that this was a way to get away from general support , to smoothly transition out of it , and start moving along the path of Linux . And then it turned out that there was less on-duty work there than I had expected . Yeah . I eventually

2:58switched to a five-day week and realized that Linux was the right path . I’d worked with Linux in IT support , but only at a basic level ; this was full-blown enterprise . I realized I’d only seen the tip of the iceberg and finally saw the whole thing . I started

3:22developing in that direction , and then I moved toward DevOps , also somewhat by accident , because projects came up that required Kubernetes knowledge . I thought , " That's interesting , I should learn it . " And you know , once you know Kubernetes , you start getting pulled

3:44into DevOps tasks , like application deployment . I’ve been moving in that direction bit by bit , and it feels like I’ve found a path that’s comfortable , allows me to grow , earn money , and keeps my brain sharp . So , something like that . That was a bit

4:06long . Sorry . No , it was actually good . Yeah , yeah , it was great . Yeah . Okay . And regarding various introductions . Many people , well , some people talk about their marital status or what they’ve been up to . Right .

4:31Basically , everyone positions themselves however they want . Okay . Are you working from the office or remotely ? Currently fully remote . Actually , that format is a bit uncomfortable because ... Seriously ? Full remote can be a bit depressing

4:51because you're at home , and home is your workplace . Right . And a full-time office is also depressing because , unfortunately , I live quite a way from Moscow , so I have to commute for about 2 – 3 hours . Round trip . That’s a lot

5:14of time , and it’s a shame to waste it . That’s why at my previous job we had a hybrid model . Meaning you could come in whenever you wanted ; you could work from home or show up at the office . And it was perfect , because if you woke up with a headache , you’d just

5:29work from home . Or if you missed your colleagues , you’d say , " I'm going to the office today , let's grab coffee or something . " And chat about the news . Then you go to the office . Right . Switching back and forth depending on things — sometimes you have chores to do right after work , and if you have to

5:51commute , the time is already gone . So , I’m a fan of the hybrid model . Uh-huh . Cool . I think the last time I worked from an office was back in the fall of 2015 . And I haven't been there once since then . I was in the office

6:12once the year before last in the fall . I even had a kind of culture shock . I was honestly horrified , to be fair .

Опиши идеально место работы

6:20Yeah . Uh , well , okay , fine . So what does a workplace that is , like , truly ideal look like in general ? What is even in it , in that workplace ? What are its main parameters ? Well , it's hard to say , I'm a fairly undemanding person ,

6:40so I can work in any conditions . Yeah . I don't know , is it okay to name companies here or not ? Yeah , however you like , okay ? You can name companies if you want , or talk about , well , some tasks maybe that you performed there or something else . Well , I mean ,

6:54well , I'm only talking about the office and the workplace . Well , if I can't name the company , I'll just say that if you want , go ahead , name them , no problem , it's your call . It's CROC . Yeah . Uh , in terms of the office and the whole organization there , I really

7:14liked it . Like , it was the best thing that ever happened to me , not that I've worked in many places , but it's definitely number one . Yeah . Uh-huh . And why ? Yeah . Ah , well , the office itself is beautiful , the location is convenient , plus the cafeteria is in the building ,

7:34well , right there . In general , well , I was really comfortable there . Uh-huh . And yes , perhaps that's what influenced me to start liking hybrid work . I see . Ah , good . Uh , so , I'll try to change it up a bit , uh , maybe you'd

7:56like to talk about this future job from the perspective of what role you would perform as a specialist or what kind of tasks you would solve ? So , from that point of view , how would this job look perfectly in general ? I can't say . I

8:19don't have that vision yet . Uh-huh . Well , it's not like I want a job with such and such parameters . So far , the jobs I've had , everything was basically fine there . I'm like , " Well , it's natural that there's a water cooler and cookies here , for example . " Yeah .

8:38Uh-huh . That's how it is everywhere , right ? If there's no coconut milk coffee in the office , I feel like it's not even an office at all . It's just terrible . Yeah . Okay . Well , basically , as for the format , yeah , it's just like a regular interview where we talk , but

8:56at the end we'll have a feedback session , and during the process I'll be typing away mercilessly on my keyboard . And , well , that will probably be audible , but it's not because I'm chatting with friends , it's just that I need to , you know , jot down some notes . So there . Okay . Alright then . Let's go .

9:16There are a lot of different technologies written in your resume . I'll probably start our technical part with the things that are written right in the resume . Right . You mentioned

Администрирование репозитория Harbor

9:28Harbor repository administration . Tell me , why was it chosen , what did you do there , and in what capacity was it selected ? It wasn't me , it was chosen by my predecessor , and I inherited the task of maintaining it . And , actually , like , now another environment is being

9:52set up , for which I decided not to reinvent the wheel , but to use that same Harbor . Basically , just because the environment is isolated from the internet , everything necessary needs to be uploaded there in advance , so we need some kind of local repository . I took a look , and , well , in principle ,

10:12it deploys quite easily , but , well , I poked around the repositories , the repositories . Uh-huh . Okay . And where does it store the data ? Unfortunately , for now , it's in a mounted directory on a separate disk . Uh-huh . Right . So , there's no talk of fault

10:32tolerance there . Uh-huh . And how could that be improved ? Well , set up another Harbor and synchronize the disk somehow via well , if you use some network storage , then we'll run into the fact that the network storage itself can fail . So ,

10:53it's easier to just set up another one . So , and one Harbor . Well , then you'd need to organize a full-fledged cluster with Pacemaker , I guess , or maybe proxy it somehow . Through all of that . Well , because I don't know if Pacemaker can

11:13even manage Harbor , probably not . Right . Well , overall , I'd probably set up something behind , you know , a Virtual IP , and two Harbors with shared storage ; if one host dies , the Virtual IP comes up on the other , and DRBD

11:33switches to the second node . Well , something like that . Uh-huh . But that's only possible in networks where you can directly assign your own IP addresses and have , well , the entire L2 domain . And if you can't manage , well , the network subsystem , maybe Harbor has other data storage

11:54options , not just on disk ? It's not specified , but I’d guess it might be a hint about S3 . Uh-huh . Right . But then S3 would need to be made fault-tolerant somehow . Well , or use a cloud one , but in an isolated environment , everything is local here . Just getting a bit ahead of things . Our

12:17project also plans to have its own S3 . Yeah . And it's organized using MinIO there . I haven't studied how it's set up yet . So , well , I looked at MinIO , yes , looked at S3 , how to deploy and scale it . Right . But I haven't had practical experience with it . Actually ,

12:38that's why I took this job , because there are many interesting things to get hands-on experience with . Yeah . And I put it on my resume because I've already tinkered with them . Well , it depends on the questions and how deeply you need to know it . Uh-huh . And generally , does Harbor have any other , well , maybe additional

12:57capabilities for image storage , or can it do anything else with them ? Well , as I understand it , it can store everything , charts , some artifacts that are created by other systems . But

13:18I didn't go into those details . The specific task was to store images . Can it perform any security scanning on those artifacts ? I saw something like that in the settings , but I didn't look into how it works . Uh-huh . I think they even , uh , yes , they

13:39suggest installing something , but it's disabled by default . I didn't turn it on to avoid any surprises for now . Uh-huh . Okay , good . All right , then . Mm . So , you also have a description of

Вопросы по Мониторингу

14:01Prometheus , Grafana , and Alertmanager . A monitoring stack like that . Why exactly this monitoring stack ? Historically , it’s the most popular one in all projects . I actually started with Zabbix and , like , I even used Zabbix for my own

14:26projects . Uh , because I knew it better back then . Right . But practice shows that new projects come along , and it's Prometheus and Grafana everywhere . Well , you can attach Grafana to Zabbix . Right . But it's mostly Prometheus , Grafana , and Alertmanager . Uh-huh . Right . So I had to learn it . And , well ,

14:45some points I know well , some not — well , what I've encountered , I know well , and what I haven't , I know it exists . I don't even know , it depends on the situation . Okay . So , what are the advantages of Prometheus compared to Zabbix , or , you know , the other way

15:02around , Zabbix versus Prometheus ? Well , honestly , I think if you want to , you can set up either one exactly how you need it . Yeah . And , in my opinion , at Zabbix I didn't get to use Zabbix Agent 2 . But , I think it basically acts as a universal exporter that can pull out

15:22anything you need . What do you mean ? So , well , how what do you mean ? What does " pull out anything you need " mean ? What do you mean by that ? Well , for instance , what an exporter provides for metrics from a host , the Zabbix agent probably can too . I had to

15:46set up monitoring for Postgres databases , but it basically boiled down to just configuring a template and entering the credentials to connect to the database . Yeah . And it returned the same things that , say , some Postgres exporter would . So that’s why , wait ,

16:07let me think , Docker also needed monitoring , and Zabbix Agent 2 handled that with a template too . It pulled some information about the containers there . Yeah . Well , I set it up , and then I handed it off to my colleagues for ongoing support and monitoring .

16:28Yeah . But , there is some data , and they never came back saying that something was missing or stopped collecting . So that’s why Uh-huh . So does that mean there’s no point in using Prometheus for new projects at all ? Should we just install Zabbix for everything ? No , no , not having to install a bunch of these

16:50exporters for different applications . Just Zabbix . Makes sense . And he can't answer that . Yeah . Okay . Alright then . Probably , probably just whoever knows Prometheus well , they’re the ones who install it .

17:10Yeah . Uh , well , from my experience , it feels like Zabbix is better suited for , uh , hardware monitoring , or something non-standard like that . Yeah . And Prometheus is more geared toward cloud technologies . Something like that . But ,

17:32uh-huh . There's such a fine line , I don’t know , I can't really draw it . Uh-huh . Yeah . Because I've had to set it up in different ways . Uh , let me finish quickly . Uh , at my previous job , there was a Zabbix system that was provided

17:53as a service . Yeah . So we offered customers , uh , to install a Zabbix proxy on their end . And then we’d set up , roughly speaking , Zabbix and monitor the base state of their hosts , and if needed , there were a couple of cases with Postgres and Docker . Yeah .

18:15And , actually , even if it turned out that Prometheus would be better at collecting something , there was no option to install it , so we had to ... monitor all of that with Zabbix , even if it turned out that Prometheus would collect something else better .

18:35Cool . And how does automatic discovery of new resources for monitoring actually work in Prometheus or Zabbix ? Well , in Zabbix , it's pretty simple .

18:55You need some kind of script . There are standard scripts for monitoring and discovering file systems , network interfaces , and other things . Yeah . Basically , you write a script yourself that finds ... Yes , you write it yourself , it finds the resources you need and , I think , it returns them as JSON . Uh-huh .

19:17It returns them to you in JSON format . Yeah . And then you do whatever you need to with them . Yeah . In Prometheus , there are lots of different types of discovery , but honestly , I haven't configured a single one . I’m planning to look into Consul and its discovery a bit better today . Yeah . But you just

19:39know that they exist in Prometheus and can be configured if necessary . Uh-huh . Got it . All right , then . So , there’s Grafana , and there’s Alertmanager . Uh ... what is better for sending alerts , for example , and why ? Well , I know you

20:00can send alerts from Grafana too , but it seems that Alertmanager ... can handle that more flexibly . Yeah . But I haven't had such cases , usually it’s just one or two channels , at most email and some chat , I don't know . It used to be Slack , now it’s

20:20Mattermost . Yeah . Well , sort of ... why that happened , right ? Yes . What happened . So , our project isn't large enough to need complex setups , like sending some alerts to one team and others to another . Like

20:40depending on severity , or time of day , or day of the week ; we just send everything to different chats based on the environment , but there’s no sorting by severity or anything ... like that . Are you doing that with Alertmanager or Grafana ? Yes , that’s Alertmanager . And how do you do it in Alertmanager ?

21:01Well , you set it up so that some alerts go to one channel , and others to another . By using labels . By labels . Okay . Super-duper . Nice . And how is fault tolerance handled ? With Prometheus , Grafana , and Alertmanager . How , well , do you ensure that the

21:23monitoring stays up ? Well , Alertmanager supports fault tolerance right out of the box . You specify the neighbor nodes at startup , and it connects to them on its own . There you go . And for Prometheus , well , for Grafana , you just spin up two separate Grafana instances and connect them to Prometheus . It

21:44doesn't store any data itself . All right . What about all those dashboards ? Fine . That’s possible . I've connected Postgres to Grafana for dashboard storage . Uh-huh . Yeah . And you can even connect some directory for Grafana , I think , so that dashboards get provisioned there , for

22:06example , and datasources get provisioned too . Yeah . Let's say like that . And as for Prometheus , well , actually , they recommend using VictoriaMetrics instead of Prometheus for that , right ? I was just thinking , when you were comparing what's out there besides Prometheus and mentioned Zabbix , I was wondering why you didn't mention

22:28VictoriaMetrics , but okay . Well , that's because I've only worked with it a couple of times as a user just to check something . Yeah . I've never set it up once . I know it exists and I know that , oh , gosh , basically , you can set up fault tolerance . Yeah .

22:50But that's just at the level of knowing it exists , and I don't know how to do it . Yeah . But with Prometheus , if we're talking about pure Prometheus , you either have two Prometheus instances scraping the same thing , and each has its own Grafana , and you get roughly identical results . Yeah . Or one

23:09Prometheus scrapes the other . But then , of course , you won't get fault tolerance . Well , to be more precise , if the main Prometheus goes down , the one collecting the metrics directly stays alive , and you can later restore the main Prometheus and retrieve those metrics after all . Well , I suppose

23:31it’s probably better to just spin up two Prometheus instances , and each stores roughly the same data . They scrape at the same time . Yeah .

Внедрял ли что нибудь с нуля?

23:41Okay . All right . Tell me , have you ever set it up ? I mean , I understand that Prometheus , Grafana , Alertmanager were things that already existed , and you were just maintaining them . We talked about Harbor , too . You said someone else set it up , you were maintaining it , and now you're trying to reproduce it

24:02in a new environment . Uh-huh . Can you give any examples where you had a task that required choosing a technology , coming up with how to implement it , deciding on the implementation , and then actually executing it ? Are there

24:23any examples like that ? Could you throw some of those out ? Just thinking . Uh-huh . Well , probably not in a big , global sense , because my entire career path has been tech support , and tech support is about maintaining what others have already built . That’s why

24:45projects where I’m the one making the decisions , I’ve only really reached that at this current job . And even then , when trying to ask , " Why do we need to do this ? " Well , how should I put it , yeah ? Why something was done a certain way , or why we’re using this specific

25:04database or something else . I’m often told now that it’s an architectural decision . I mean , there are architects who say , " We’ll do it this way , set us up a Postgres database . " So. And I don’t think about whether to choose Postgres , MySQL , or some other exotic

25:25option anymore . I just go and do it . Oh , that makes sense . But still , there must be tasks where you had to deploy a service from scratch , configure it , and figure things out . Can you give any

25:46examples of that ? I suppose there might be some . I can't recall right now . If it comes up later on , then I’ll let you know immediately . Okay . Okay . Uh , yeah . Uh , okay . Alright then . So , we talked about deploying new

26:09services . Let’s talk about horizontal

Вопросы о горизонтальном масштабировании

26:14scaling . How do you perform horizontal scaling ? Any examples of horizontal scaling ? In general , or in relation to something specific ? Basically , right now we’re doing this thing where I read your resume and ask questions about it . You have " horizontal scaling " written there . I

26:34see , it's definitely listed as a separate point . It’s in parentheses under your current job . I mean , you have " infrastructure modernization " written down , with " deploying new services " in parentheses . I tried asking you about that . Right , everything is clear . I'll have to do something about that later . And is this

26:58all within a Kubernetes cluster ? Well , horizontal scaling here , I just meant adding new worker nodes . Aha . Okay . Okay . Alright then . Uh , good

Вопрос по БД

27:15. So , let’s talk about databases . You mentioned choosing between Postgres , MySQL , or something more exotic . Which databases have you actually worked with ? Uh , well , MySQL , I worked with that a long time ago and barely remember anything now . So. But at my current job

27:36, we use Postgres extensively . Uh-huh . Yeah , mostly that , and ClickHouse . I have to work quite closely with those two databases . not in terms of tuning , but in terms of deployment . And developers often like to ask for a dump before they roll out changes , just in case they need to revert everything .

28:00Something like that . I see . And how does PostgreSQL differ from ClickHouse ? Or rather , in what situations is it better to use ClickHouse , and when is it better to use PostgreSQL ? I can't say for sure . ClickHouse stores data as files and

28:24groups them somehow , so some operations are performed much faster there . That's actually why we seem to use both ClickHouse and Postgres on our project , so ClickHouse does its part of the work quickly , and Postgres does everything else . Yeah . But , uh , I can't answer that

28:47question . Uh-huh . Okay . Let's talk about Postgres then . In Postgres , there are schemas . What is the difference between a database and a schema ? Yeah , I understood it as just a way to logically separate tables within a single database . Our developers it's a schema .

29:07Uh-huh . Our developers love using schemas . That's why I even had to memorize the dump flags , that you don't need to dump the whole database , but just one schema is enough , because , well , there are

29:28different teams working on microservices . And one team really loves it ; they have several microservices they're working on , and they create a separate schema for each microservice within the same database . They've really taken a liking to that . But honestly , if there are no stored

29:53procedures or anything like that , I guess a database and a schema would work the same way . It's just that , well , can a table exist in a database without being tied to any schema ? No , they are all in the public schema . Yes , exactly . Well , if you just create a table

30:15without specifying a schema , it will be in the ... public public . And if you specify a schema , it will be in that schema , right ? Yeah . You mentioned that you've done these Postgres schema dumps , and learned to dump just one schema . What is the custom format in dumps ?

30:35I think , well , there is the plain format , and there is the custom format , I think it's just for compressing it right away , like archiving , basically . But from what I remember from the documentation , it definitely compresses . What other perks it has , I can't recall .

30:56Yeah . And right now I prefer the directory format , because then you can run it in multiple threads and from what I've observed , it's like it dumps each table into its own file in a separate thread , and accordingly , if

31:17you have many tables , it goes faster . There . Uh-huh . Awesome . That's awesome . Okay . Ah , alright . So you need , you have PostgreSQL , right ? You need to add a new user . How would you do it ?

31:37Well , it depends on the task . Let's discuss it . Since our Postgres is installed and configured using Ansible , everything is kept in GitLab . So , to add a user , I go in , find the host vars for the

32:00necessary host , add the user there , run the role , and check that the user was created . That's beauty . But since the role is written for Postgres , and we also have a government client using Postgres Pro ,

32:21unfortunately , we have to do it manually for now because Postgres Pro stores things in slightly non-standard locations . Well , more precisely , not non-standard , but in different locations . And so , if you just run the Postgres role , it will do something completely different from what is needed . I've set a goal for myself in

32:43my spare time to try and configure the Postgres role's host vars so that it works for Postgres Pro as well , without creating directories where they aren't needed , but configuring the correct files . Well , like Uh-huh , the pg_hba.conf is stored in a

33:04different place , postgresql.conf is stored in a different place . The data directory is in a different place there . In general , Uh-huh . Many , many settings that specifically , yes , are set by default in the Postgres role , they are not the same in Postgres

33:24Pro . And , well , you need to find them all and set them . Yeah , that's cool . Listen , let's talk about the databases ; when you want to add a user to Postgres , you run a role , and it adds the user . What is it actually doing ? Well , really , what's

33:47happening there ? Judging by the fact that it was written in Python , some script just executes a query in the database . Yes , I'll put a query . Well , CREATE ROLE or CREATE USER . And how is access granted to them ?

34:08Ah , I don't know exactly , but I know Postgres has some sort of socket . A socket . There . And users connect to it to gain access to the database . There . How it works in detail , I probably

34:28can't say . There . But I know that you need to specify it in the Postgres role for such cases if Unix sockets are used . Uh-huh . What to specify ? Sorry , I didn't quite hear that . Specify the become user . Ah , the user . Uh-huh . Well , yeah , to

34:51like ... dash-e . All right then . Let's

Вопросы по Ansible

34:55move on to Ansible . We haven't really started talking about it yet . So , what is the difference in Ansible , or when do you use playbooks , when do you use roles , and when do you use collections ? Actually , I don't like using other

35:16people's roles because roles are usually written by people over a long time , they end up being bulky , and when you run them , a bunch of tasks get executed that you might know nothing about . That's why I try to use third-party roles with caution . Yeah .

35:37But , essentially , a role , as I see it , is just a well-structured playbook . Yeah . A role is just a well-structured playbook , right ? I mean , you have templates in a specific directory , files in a specific

36:00directory , variables declared in a specific directory , tasks in a specific directory . That's all . If it were all in the form of one long script , it would probably be hard to find things and read through it all . Yeah . Other than that , I think it's more or less

36:20the same thing , yeah . And , as for collections , well , I only know how to install them via the AUR a little bit . So , the main advantage of roles over playbooks is that things are neatly organized into folders , which is

36:41why people write roles . Well , let's say so , yeah . In practice , I've encountered otherwise . Uh-huh . Okay . Let's leave it at that , yeah . Well , about collections then .

37:03Well , about collections , I only know that you install them . But , how they work inside Ansible . Well , they're probably just some Python scripts that do something , and you reference them somehow , but I don't know , I'm just fantasizing . Or are they Python scripts at all ?

37:26Well , probably . And what language are these playbooks written in ? Or ? No , well , they are written in YAML format . In YAML . Where are the Python scripts there ? No , but YAML is clearly not enough to

37:47do anything on the server . So. So. How does it work under the hood ? It's some kind of Python magic . Pythonic Python magic . And when you write your own playbook , do you do any Python magic ? No. The magic happens when I run it for

38:08execution . Uh-huh . Okay . All right , good . So , collections we just sort of install . There’s something inside them . Playbook . And roles are like , a more structured playbook . But why ? Can you try to reason why they came up with

38:30three different entities ? Oh , oh , that’s a tough question . Just try to , well , obviously I’m asking a question you don’t know the

38:51answer to . Or maybe it just slipped your mind because I sprung it on you unexpectedly . In general , well , nobody knows , but it’s 10:00 PM right now . I mean , at 10:00 PM , people aren't usually at their most productive . So , the exercise here is just to try and show your line of reasoning , to show

39:12yourself from that side . Uh , well , maybe , maybe this will help you . Why do they write roles instead of playbooks ? Or , well , why were playbooks invented , why were roles invented , why were collections invented ? When is it

39:32better to use playbooks or when is it better to use roles for some reason ? Why did people , well , they weren't using them , why did they go and create new entities ? Uh , for some reason . Well , I think a role is just a logical continuation of a playbook . My , my , my

39:55thesis is still the same , that a role is a well-structured playbook . It's just that they kept writing playbooks , they became huge , and they decided , well , something has to be done about this . So they took and invented roles , like yeah . And you said something

40:15interesting , I also noted it for feedback . I use other people's roles with caution because God knows what they stuffed in there . I'm relaying it in my own literary words , you said something really elegant . And , uh so it

40:38turns out , when , what would it actually be cool to use someone else's roles for ? Well , what are the advantages of that ? The advantage is , why reinvent the wheel if it’s already been invented ? It’s just that in this case , you need to spend some

40:59time to , say , read the manual for the bike , where to sit , where the handlebars are , where the pedals are . So , well , and how should I say , a well-written role is very flexibly , in my opinion , customizable . That's it . And , accordingly , you want to get the

41:20result that I need , and not the one that you get when running it with default values . Uh-huh . Accordingly , you have to go and see what the values are , what tasks are being executed , and so on . Well , um , from my recent experience , I had a

41:40couple of cases where I really had to dive deep into all of this , for instance , a project with a government client using Astra Linux , where I couldn't install the ClickHouse role right away . Uh-huh . So I started reading the errors , and it turned out

42:03the role checks for the OS Family . It’s either RedHat or Debian . Right . And Astra Linux turns out to have a different OS Family . What Astra Linux ? Hm . I’ve never worked with it . Damn ,

42:23tough one . Right . Even though it’s basically Debian in disguise . Right . But you see , they have their own OS Family . And , well , once I realized what the issue was and found the task that checks this , I figured I’d just pass the required OS Family when running the

42:44playbook . Right . Only then did it work . Right . And the second case was also with ClickHouse , also with that role ; it turned out that the variable was simply missing in the playbook . It was some user property , I can’t recall exactly which one , I think . Oh , I won't guess . Well , let’s say it was a list

43:05of databases the user is allowed to connect to . Something like that . And there was simply no variable to control that . And there was no block in the template to set it either . Ah , yes . And I needed that to be configured for this

43:26user . So I had to — since all our Ansible roles were localized — I had to edit the role , add this variable to the custom vars , so not to the role directly but to custom vars , and then in the role’s template , add logic : if

43:48it exists , then take it and run it through a loop to add those databases . Right . And if not , then don't do anything . That’s why , well , that’s why I don't like using third-party roles ; because you have to sit down and figure out if the role can actually do the specific thing you need .

44:09Figure it out , right ? Great example . Cool example . Nice . Alright then . And what are handlers in Ansible ? Handlers are certain tasks that need to be executed . If a certain condition is met . So , I mean , if if another task , I

44:30don't know , not to lie , but finished successfully , for example . Uh-huh . And what are they needed for anyway , these handlers ? I mean , what is their function ? Ah , well , they are most often used for reloading or restarting services . Right . They are needed so that at once , well

44:49, if we change config in ten places , there's no point in reloading the service every time . You can do it just once . That's why we specify which handler to use if this one completes successfully . And then , in a separate list , the handlers that follow . Uh-huh . Beautiful . That's beautiful .

45:12Okay . Alright then . And we have a great interview today because , uh , in short , I can just read the technologies written in the resume and ask something about them . This is , actually , a big gift . So , tell me something about

Вопросы по Terraform

45:29Terraform . Why is Terraform needed ? What is the general benefit of it ? Well , if we look at it globally , it's roughly like Ansible . Uh-huh . You store some configuration of something somewhere , and you can easily restore

45:50it if it's lost . And at the same time , if nothing has changed , then nothing will change during deployment . Meaning idempotency , that's the smart word . Right . And Terraform is needed for managing infrastructure . Right . Uh-huh . Ah , well , I guess it's

46:11something like that . Why are Terraform modules needed ? Oh , I've only encountered Terraform modules in one place . And even then , uh , I was just stepping in to help a colleague . In general , I haven't had much practice with Terraform modules . Right . But my

46:31colleague and I concluded that they are evil . Again , just like with roles , if you didn't write them yourself , because we also inherited a Terraform module that was clear to the person who wrote it . And what does it do ? What does it do ? Uh it somehow lets you not write a

46:54bunch of code , probably , but somehow write one module that will work in different ways . Honestly , I might be lying here . Right . But the thing is that , again , a situation arose where I needed to deploy a VM with a non-standard template , but it wasn't

47:14obvious where to specify this template . And I had to open all those files of this module , look at how variables are passed there , to understand , yes , where to stick this new variable that wasn't originally intended , so as not to break the whole infrastructure during deployment .

47:36Again . That's why I just don't have much practice . My first impression is like , well , it's questionable , but okay . And , and , and , and , what are workspaces ? I have no idea what they are at all .

47:57Okay . What is state ? Ah , the state that Terraform remembers , what the structure should be there . Uh , damn , I tried to wrap my head around it , but I never really got it . We have three states . What we described in the

48:19manifest , in the Terraform manifests , the Terraform state , and the infrastructure state . And I forgot what is compared with what and in what sequence when we apply it . So , Terraform state is , apparently , the state that the last Terraform applied . Uh-huh . Yes . Uh-huh . Okey-dokey .

48:41Alrighty . Super-duper . So , need to ask something about phone . And what are , uh , locks or lock files , or how is the

49:04lock mechanism actually implemented in Terraform ? So that two people don't apply their changes at the same time . Uh , I probably can't say , but , uh , well

49:24, it's probably necessary that they indeed don't start making changes at the same time . I know that Terraform can store something in GitLab and on S3 . I think , or Git , but to be honest , I've never looked into that question . Yeah . Well , it's not like we often have

49:47to use it in our project ; I mean , it's needed periodically , but not every day . That's why collisions don't occur . In larger projects , we probably would have had to deal with this issue . Yeah , exactly . Okay . And let's talk

Вопросы по Linux

50:12about Linux troubleshooting . Let's talk about problems with Linux . In general , what utilities are used for troubleshooting Linux ? Well , I would start answering this question from another angle .

50:33Uh-huh . Ah , in general , uh , eh , so , let me think . But the main troubleshooting method is , if the host is accessible ,

50:54to log in and look at the logs , for example , look at the latest logs , either logs of a specific service or kernel logs . Yeah . Uh-huh . And that's probably the first thing I do . Problems often arise from running

51:17out of space , so I check with df , whether there is any space left . Aha . And that classic question , when they say , look , you check with df , there is space , but for some reason you can't write a file . And I'll tell you another case , besides

51:37the one that everyone has probably already learned . I encountered this with SoE , and the same thing happened with Postgres , by the way . Postgres says it can't create a file in the directory . So , I check , I check the

51:59space , everything is fine , the inodes are fine . Yeah . But the file really can't be created . Yeah . Here's another case for you : it turns out there's also a limit on the number of files . In the directory , four . Beautiful . Yeah , beautiful . Yes . Perfect . Perfect . It

52:18turned out to be some god-forsaken forgotten replication that was creating files . And , actually , when we connected a proper replication , the two of them quickly filled up that space — well , actually , the normal replication wasn't creating them , or rather it created them and then immediately picked them up , the replica took them . Yeah . But

52:40that replication that wasn't working , it started to prevent the normal replication from creating files . Actually , that's how we figured it out — that the space didn't run out because it was full , but because you just can't create that many files in a directory . Uh-huh . Yeah . Also , another case from my

52:59practice , uh , when you mount something into a non-empty directory , and du shows you the space of the mounted disk , but df will show it taking into account the

53:22populated , unmounted one . Yeah . Yeah . I mean , it's from that same series of " space ran out , " we went to check , and du shows one thing , while df shows another . We scratched our heads until , well , in the end , we were given carte blanche to mess with the server however

53:44we wanted . And it turned out that the directory where something was mounted — I don't remember how , I think at some point the mounting failed , and some data managed to be written into the directory that was , relatively speaking , on the SDA disk . And then , when the mounting was restored , and

54:05data started being written to the other disk , that data hadn't gone anywhere . Yeah . And , actually , later , when it filled up somewhere else and we started cleaning , we looked and saw that everything was already cleaned , but the space wasn't being freed up . Uh-huh . We had to scratch our heads there too .

54:24Uh-huh . Totally . Listen , do you have any experience with arrays ? I set up MDADM a long time ago , but I haven't done anything like that for a long time . Yeah . Well , I mean , uh , since moving to Linux

54:46, I've practically not worked with physical servers . Yeah . And if I did have to work with them , it was usually a hardware RAID , which is already seen as a single block device . Yeah . Uh , for fault tolerance , well , it makes no sense to keep it on one host , so the main solution in those projects

55:07was DRBD . Uh , okay . Okay . Mm . Alright then . Let's ask something else about Linux to solidify this part . Uh , m - maybe what

55:29kinds of exit codes do processes have ? Well , zero and non-zero . Uh-huh . And how do you check it ? In a variable , I think , a question mark . It’s stored in ` echo $ ? ` . Uh-huh . Well , more precisely , if you

55:50ran a command and it did something , then you can check its exit code . Right , and if some arbitrary process started and then finished , I can't say how to check it . Alright then . So , there are some server

Вопросы по CI/CD

56:09names here that we won't mention in this recording . Yeah . And let’s move on to GitLab CI / CD . Writing GitLab CI pipelines . Let's ask something about that , I guess . What are the most common

56:30main stages of a pipeline ? Well , some tests , some build , packing into Docker images . Uh , deploy . Well , probably those .

56:50Uh-huh . Ah , okay . And what mechanisms or practices are used to make a pipeline run faster ? Mm , I can't say . This is one of the areas I’ve encountered at my new job .

57:14And I don't have much practice or knowledge yet , so ... Maybe , maybe you could try to reason it out ? Well , maybe parallelize something . Yeah . Yes . But hmm , out of everything I listed , I don't know what could be parallelized .

57:34Uh-huh . Anything else , perhaps ? Speed it up . How to speed it up ? No , probably no ideas right now . Uh-huh . Okey-dokey . Mm , and how ,

57:59generally , do you choose so that , for example , build or deploy happen on different machines , like , well , how is it done in GitLab ? There’s a pool of

58:20runners . Yeah . And oh , you can somehow , damn , I think they have labels too , and you can somehow specify which runner to run them on . Something like that , probably . Uh-huh . Okay . And what are GitLab CI

58:42What ? Triggers . What are triggers ? I don't know , I haven't encountered them , or maybe I did but didn't know they were triggers . Uh-huh . Well , it’s logical that it’s some action , probably , that executes under a certain condition , but I don't know .

59:02Uh-huh . Okey-dokey . All right , fine . So

Bash

59:09, there are also Bash scripts here . I can't help but ask , why do people write " set - e " in Bash scripts ? " Sed - e " ? No , not " sed " , it's " set - e " . It writes . Something like that existed , I don't remember what it's for .

59:29Uh-huh . And how do double square brackets differ from single square brackets ? Uh . In double square brackets , I think conditions are structured a bit differently . And I think you can do more and have more flexibility there . Uh , I can't say . I've used both

59:54depending on the situation , but I don't remember the differences by heart . Uh-huh . All right then . So , Vlad , go ahead and take some initiative , ask something too .

Вопросы по контейнеризации

1:00:06How is containerization implemented in Linux ? By what means ? Any specific features , well , by using namespaces and control groups , and sometimes overlayfs is also added here . Uh-huh . There . And how , well , you just gave

1:00:29such a cool example about how mounting one filesystem over a populated one caused the data to be hidden . What caused this process to happen ? How does it occur ? If we go down to a slightly lower level , I probably can't explain it .

1:00:50Uh-huh . Well , I just know that there's a virtual file system that basically takes all the write and read requests and then somehow , using a driver , translates them to the actual file system on the device . So , it seems that

1:01:10when we mount , all requests are directed to the file system that's on the other device , and not not to the one we mounted it onto . Something like that , probably . And it's also interesting that you

Вопросы по lvm

1:01:25mentioned RAIDs , what about LVM ? Surely you've worked with it . What kind of so-called parts or entities exist in this context ? Well , there are physical volumes , volume groups , and logical volumes . Uh-huh . But , well , there's a physical volume and there's , like , just a device

1:01:47, how are they ... I mean , well , there is just a block device , we can mount it directly to a directory . But if we specifically want to use LVM , we need to create these entities . But why do we need to create them ? Like , what does a physical volume actually do ? Well ,

1:02:02based on what it was created for , to somehow get around the limitations of physical disks , well , there must be some sort of entity , to , well , uh ,

1:02:23roughly speaking , some kind of tag , to understand that this device is used for LVM . Uh-huh . That's why , well , Physical Volume , its essence is probably just that it creates this tag somewhere on a block device , I guess . Uh-huh . Uh , and in principle , how are

Вопросы по kubernetes

1:02:46these concepts related , Docker and Kuber ? How close are they to each other ? Kubernetes simply brought container management to a higher level than Docker . Because in Docker , well , how does a container start , well , in the

1:03:07simplest case , on one host , but if you want to start it on another , you have to connect to the other host and somehow move the image there , or , well , okay , via a registry , let's say , well , uh ... you need to know if the host is unavailable and the container needs to

1:03:28be started somewhere else . Also , well , in general , well , uh-huh . Docker doesn't have such tools , which is probably why Kubernetes I agree , was probably invented . And what is used in Kubernetes for working with containers ? Docker ?

1:03:51Ah , well , some container runtime is used there , I remembered that word . Yeah . And , well , I think now Docker is probably not used anymore . Now containerd is replacing it , and some other words I've heard , cri-o ,

1:04:12something like that . But in fact , I probably haven't worked with anything other than containerd . Uh-huh . Well , more precisely , like I just see that it is being used . Yeah . And how do you evaluate your experience , do you have more experience working with Kubernetes as a containerization

1:04:34and orchestration tool , or do you also have a lot of experience purely with Docker ? Probably less experience with Docker because it's a kind of thing where , well , in some of my , say , pet projects , I needed to build something , so I started Docker quite quickly , saw how it works ,

1:04:56but if something is more complex , well , from what from what I've dabbled with , helping a friend , it's Mailcow , a custom mail server . It's on Docker Compose , well , a little bit better than Docker . You can specify dependencies

1:05:17there , and , um , I think , some liveness / readiness probes , to use Kubernetes terminology , can also be configured there . Yeah . Well , and then , like manage it all with one command , rather than starting each container individually . Yeah .

1:05:38And I haven't really had to work with pure Docker at work everywhere . Well , more accurately , at my current job it's all Kubernetes . Uh-huh . Yeah . Well then , uh , tell me , how can one limit , well , and generally regulate resources in , say , a pod ? How

1:05:58is that done ? What can be set ? Limits and requests can be set . Uh-huh . And you know , when you specify limits and requests , for example , specifying CPU , and it's not just one , you can specify that ... Yeah , milliCPUs . Uh-huh .

1:06:19Yeah , that was cool when I found out about it . And why is it done like that ? What , how is that ? What is that ? Well , uh , to flexibly manage CPU time . Basically , we need , like , all processes require some time to process their

1:06:44work . Yeah . And to differentiate all that , you can divide the core time , conditionally , even more finely . Uh-huh . Uh-huh . And what if a situation occurs where limits weren't set anywhere , but a service was launched ,

1:07:05and it just started devouring memory , and it totally ran out on the node , and everything around it stopped . What happens if we don't specify limits ? Well , like , all the memory will just be eaten up by some process . We actually

1:07:29had a case where a node disappeared from monitoring . Yeah , and we found out that some process , some pod , was running on it Uh-huh . I don't recall what exactly . But it didn't have any restrictions set in the

1:07:52deployment . Yeah . And it , basically , ate all the memory . Yeah . And the node stopped responding . Yeah . And I had to , well , I figured it out from the logs later , because then I had to restart it , because I couldn't even connect to it . And how did you fix this problem

1:08:14eventually ? Oh , yeah , yeah . Well , we just set the limits . Uh-huh . Uh-huh . And how , generally , well , let's list the entities in Kubernetes , the main pillars ? What does the cluster actually rest on in principle ?

1:08:35Do you mean pods or deployments ? Like that . Yeah . Well , not just pods and deployments , but ... yes . What is the cluster composed of , in principle , those basic components ? So , in the cluster , the main thing is the API

1:08:55server , which actually receives requests and responds to requests from other components . It has the standard ETCD storage . I honestly didn't know , and I don't know , maybe there could be something else , but I've only encountered ETCD . Uh-huh . And there's a controller that is trying

1:09:18to bring the cluster to the state that is described and stored in the API . There's a scheduler that assigns pods . And then on the worker nodes , the kubelet is responsible for starting the pods .

1:09:38There are also network plugins , but networking is kind of my weak spot . Yeah . Uh-huh . Okay , good , got it . And here's a question in connection with that . What will happen ? To the pods ? In case ETCD

1:09:59fails , they will continue to run . But if we try to deploy something at that moment , nothing will happen ; we probably won't even be able to connect to the cluster .

1:10:20Uh-huh . But the pods and so on , everything will stay alive , right ? Well , they are , how should I say , managed by the kubelet , which gets commands — from whom does it get commands ? From the scheduler , probably . Yeah . And since the scheduler won't be able to access the API server to check

1:10:40if a pod needs to be deployed somewhere , and the controller won't give it a command to deploy a certain number of pods , it won't do anything . I had a situation just like that . No. Some time after I had just started and began to

1:11:02get hands-on with everything in the project , I was given an environment where my predecessor had somehow deployed ETCD on two nodes . Uh-huh . Yeah . And I didn't know that . And it so happened that on one of the nodes where ETCD was , it was also doubled up — it

1:11:23was simultaneously a worker node . And it suddenly ran out of space . So ETCD stopped . Yeah . And it's a good thing it was a test environment , so nobody died or ran around in a panic , but I had to rack my brain on how to restore everything and deploy another node so

1:11:45that ETCD could form a quorum . Yeah . And , well , I don't know , I got a lot of gray hair back then , because nothing was working , and although it was a test environment with no critical impact , the developers were like : " Is it not ready yet ? " " Still not ready ? When will

1:12:06it be ? " Yeah . Uh-huh . So , yeah , well , I mean , something works , but nothing new will appear . And again , if something happens to a node , no one will know the pod is no longer available , but it needs to be restarted elsewhere . Right , well , it's good ,

1:12:28I’d certainly like to end the technical questions on this happy note , but I still want to ask : is there any way to secure it , maybe do something , for example , with ETCD ? I mean , it's critical if it gets lost , dies — and that's it . What are the options ? ETCD has snapshots , you can take

1:12:48snapshots . There you go . Plus , what actually saved me was that our cluster was deployed using Rancher . Right . And some smart people there set it up so snapshots are taken every 6 hours . Yeah . And so , not much was lost in the end .

1:13:11Uh-huh . Exactly . Right . It turned out you can actually point Rancher to that snapshot . Well , it had to be copied to the nodes that were supposed to be launched , where it would be running . Yeah . And tell it to restore from that snapshot . I just

1:13:32checked which one was the latest , because it takes snapshots on different nodes at different times , it’s configured somehow like that . So , the snapshot is taken every 6 hours , but not on every node , just on one of the nodes that has ETCD . Right . And I had to copy it to all three nodes and

1:13:54tell it to restore from it , and it just recovered . That’s a good ending to the story , a positive one . Well , I think I'll wrap it up on the technical side here . Sasha , the floor is yours , I suppose . What’s next , are we moving on to another part , right ?

1:14:14Yes , another part . Yes , yes , yes , in principle , yeah , we'll probably start moving toward

Feedback

1:14:20feedback . You know what I'm curious about ? And you , um , uh if we're talking about the level , I keep trying to talk to you about the ideal way

1:14:41of working and about that . So , uh the level you're aiming for , what is it , for example , junior , middle , senior , principal , something like that . How do you evaluate yourself , anyway ? Well , I think I don’t quite reach

1:15:03senior level yet . Uh-huh . Right . But maybe something like middle plus . Uh-huh . Okay . Yeah . Yes , that’s about right . Excellent . Sounds good . Alright then , let’s go ahead . Oh , I clicked something by accident . Yes , I was opening the feedback window and

1:15:26missed . So , let's move on to the feedback , I guess . And we’ll talk about that . Right , I'll start here then . Well , look , first of all , I always mention this , the basic requirements were met : good internet , video and

1:15:46audio connected right away , no issues with cameras or anything like that . Nobody is running around in the back , no one is rushing in . You even have a cool board with sticky notes behind you . And it looks like it's , well , not a fake background . I mean , it’s a real

1:16:07working atmosphere , honestly . That was an attempt at Kanban , but , anyway , I decided that electronic is better after all , so these are just some leftover tasks . Uh-huh . Yes . Yes . So , the basic requirements are definitely met . That’s super cool , that’s super

1:16:28good . Yeah . You lead the discussion well , no questions there . You know how to make a good impression . Often , when people do interviews or when someone is being interviewed , they keep in mind

1:16:49that the interviewer is trying to hire people they would personally want to work with . I mean , you’re not just choosing people who match your technical needs , but also those who are more or less compatible with you . So in

1:17:10that regard , you’re doing great , you know how to be likable and you answer questions quite honestly . If you don't know something , you just say , " I don't know . " Here , perhaps there is some room for improvement in that , well , sometimes I had to , if not pull words

1:17:30with pliers , at least really insist that you try to reason through it . Yeah . I mean , it’s an important part of the process during an interview or any kind of technical talk . It’s important to show that , even if I don’t know , I’m going to try to

1:17:52figure it out , because , well , that's important . Well , I don't know , at work there’s always something that you don’t know , it doesn’t matter how many years of experience you have in a specific project or in general and so on . So , like , well , you need to work on this a little bit . And if you are asked

1:18:13a question and you don't know the answer , but you think that , well , you could roughly do something with it , well , you can say something like : " Guys , I don't know , but I can reason a bit , make a guess , " — well , like , if they say : " You don't know — okay , let's move

1:18:27on . " That's , well , like , okay , you don't know , but they might give you a chance to think it through , and that way you can also position yourself a bit better . So that’s , ah , well , probably a small recommendation

1:18:49like that . Ah , a good resume , I mean , there were many different technologies listed there . It was a gift for me , because , like , I didn't need to moderate anything , just read from the sheet what was written and ask about it . That's it . Mmm , eh , it would probably

1:19:07be good to write in the first line what people or the employer is most interested in , or what you could really talk about well . Because , well , it's highly likely that people read from top to bottom and

1:19:27their eyes will catch on that . Well , actually , I did exactly that exercise . I asked you about Habr , which is in your second line of the resume . I see , I see . Yes . Yes . And you tried several times during the , uh , resume [ discussion ] ,

1:19:47you tried to veer off , tried to veer off to these databases . Uh , and I didn't veer off on that story , because , well , like , it's interesting experience , but it's not always , well , not often used , in short . That's it . Ah , well , can I make a remark ?

1:20:07Go ahead , go ahead . I once watched , uh , this video about how to go through an interview in general , and I remembered thoughts from it , that you should , in theory , write your resume for a specific job vacancy , along the lines of what you were saying . That's what ,

1:20:29like , and I even tried to do it once , but unsuccessfully . And , in general , then I sort of forgot about it . Well , what you just said reminded me that , you know , if an employer is looking for a specific employee for certain tasks , why not write that you know how to do

1:20:45them , instead of mentioning a bunch of other things you do ? That means it won't be useful here . Yes . Yeah . Yes . When we were doing the introduction , I tried to present myself as someone who is involved in some kind of education . Although , I definitely spend less than 10 % on that . 5 % of my

1:21:06life . There . Just for fun , to practice in the interview . We have an educational project , so I talked about my experience in education . So , anyway , the second point is about Habr . Some minor difficulties arose there , in short . Need to , uh , work on that a little bit . Uh Next , we had monitoring :

1:21:31Prometheus , Zabbix , and so on . The funny thing is that this theme keeps recurring ; throughout everything we asked , it’s clear that you have practical work experience . It’s clear that you , as they say , touched it , dug into it deeply , and you definitely

1:21:52understand it . But with how it is , uh , how to discuss it , or how , uh , um , uh , well , how should I put it , with this description of the technology , there is

1:22:13, well , some difficulty . I mean , the problem : what is the difference between Prometheus and Zabbix ? You really advertised Zabbix , which is very good because , on one hand , you talked in detail about how you use Zabbix , its features , and demonstrated your practical experience , but it turned out that Zabbix seems better than

1:22:32Prometheus . I won't say that it is 100 % not so , but in my experience , or where things are heading , everyone uses Prometheus or VictoriaMetrics , and they don't really use Zabbix , because the auto-discovery problem in Zabbix is poorly solved . So. It is clear that you work with Alertmanager ; you

1:22:53demonstrated that . You demonstrated deep , unexpected experience with Grafana and storing dashboards in Postgres . You mentioned data sources and everything else . So that is very good . Uh and next , we discussed , we

1:23:14discussed database questions . And here again , it's clear that you worked with both Postgres and ClickHouse . And this is my favorite question : what is the difference between a schema and a database ? I said right away that yes , I know , there's blah blah blah , and explained it all in detail . You talked

1:23:36about the differences with Postgres Pro , and it was actually a really cool story about how you explained that there's a certain role for managing Postgres , but it doesn't work for Postgres Pro . So that’s why , that’s why I want to improve it in this specific way . That is just , of course ,

1:24:00uh — the heart of an employer who wants to hire someone who constantly wants to improve things , it should definitely beat a lot faster at stories like that . That is wonderful . As for custom formats , or pg_dump with custom formats , it didn't work out , but you proposed

1:24:21an alternative . Also very good . And here , there are , like , no questions . It's clear that the experience might be average , but , in short , it is present . You managed to demonstrate it . Yeah . Then we talked about ... um , actually , this is interesting too : regarding

1:24:42Postgres , ClickHouse , Harbor , or Prometheus , the way you positioned yourself was a little , uh , mm a little bit out of sync with how you rate yourself . You say : " I'm like , well , a mid-plus , maybe one step away from

1:25:04senior , " and that , like , followed from your resume . That's why , well , I chose those kinds of questions . But when we tried to talk about , say , the level of choosing a technical solution or building a service , you were just — I don’t know , like someone from the

1:25:26crowd set it up and you just maintain it . Yeah , tell me something , I mean , I noticed it several times and started asking you directly : " Okay , so what did you actually set up yourself ? " And I think that if you prepare for this question in advance , it's impossible

1:25:47not to find an answer . I mean , 100 % you have the experience , because from what you’re telling me , surely there’s some service you set up from scratch . Well , it can’t be that there isn’t . There definitely is one . That's why you just need to be a bit better prepared on this topic , so that when they start

1:26:08asking you : " Tell us about your biggest project , your greatest achievement , what you did there , just something like that , " you have a pitch ready and don't end up saying , " Yeah , I just supported someone else's work . " Although , that , uh , immediately hurts your grading significantly . I mean , a person who

1:26:31supported someone else's work and a person who can talk about how to build something technologically from scratch — that will , of course , lead to a very , very different assessment of the person .

1:26:52It's just , uh — this , well , it's not even really about hard skills , it's about soft skills and how you position yourself . I mean , just this positioning of yourself , how you worked , and how you might , uh , refine that a little bit . Yeah . Mmm . Moving on , well , the reason

1:27:16I say again that this isn't a hard skill thing is because there were many cool stories where you draw things from your experience that , uh , show you as , well , a specialist , right . I mean , for example , we were , uh , talking — yeah , we had an unexpected snag there , of

1:27:38course — about these roles , playbooks , collections . But at the same time , you're explaining it in great detail : " There was this role , I passed the OS Family to it , there's this certain thing I used , ' Become Postgres ' . " " I ran Ansible using CI / CD there . " And

1:28:01generally , that's a cool approach , because that word everyone uses — I mean , the experience you're talking about , the " I did this with my own hands " part — it says that with your hard skills , everything should be , well , pretty good . That's why I , well , started , uh , at the end of that hour ,

1:28:21even though I usually ask for longer , I started to wrap things up , because , well , it felt like everything was clear . And , well , sort of , mmm , It's just about positioning ; I mean , it’s easily " googleable " : what playbooks are , when to use roles , when to use

1:28:39playbooks — it’s , like , a 5 - minute job . Yeah , yeah , about code reuse and its advantages in terms of performance , like , you know , just getting things done faster . So , you just need to state that . The same thing happened with Handlers , right ? I mean , what is a

1:28:57Handler , exactly ? Just some conditions you can set , effectively . But what kind of conditions ? I mean , what exactly can you do with a handler ? Well , no . You might say : " Well , with a handler , you can reload or restart services so you don't have to restart them ten times . "

1:29:15I mean , again , from a practical standpoint , you're saying that 90 % , well , in 90 % of cases , handlers are used like that . Everyone uses them that way , but from the perspective of discussing technology , it’s , like , well , condition operators , even though , well ... Uh-huh .

1:29:36It’s called something slightly different , which isn't a problem , but it might happen that the person interviewing you just won't want to dig into that . Like , I don't know , maybe they didn't get enough sleep , they just came from another call , they're hungry , or whatever else , and they just , well ,

1:29:57they won't want to dig into it . So , you just need to handle the presentation a little better . There you go . With Ansible , by the way , there was also a funny story , well , for me personally , it’s just ... When there's that story like " I use other people's roles with

1:30:17caution because I don't know what's in there , I prefer them to be reviewed , they need to be fixed , I write them myself , " and so on . That’s a very good story , because when people come to an interview — especially these Helm programmers , these YAML developers — who are like , " Tell me how you deploy a

1:30:36service in Kubernetes . " They say , " I find a Helm chart , edit the values , and deploy . " " It doesn't work . " " What do you do if it doesn't work ? " " I look for another chart . " " And you keep doing that until it works . " You think : " Well ,

1:30:55that's fine , of course , but from an engineering perspective , that doesn't really seem like an engineer's job . " You , well , several times , uh , when you talk about , uh , different stories , you speak in detail that , like , I prefer to dig into this , I prefer to do it all

1:31:13myself , I'm into this — that's , well , a very good way to position yourself , it's very good . From the Terraform part , well , it's clear there was some initial experience here . Well , apparently not that much , because , well , these are basic concepts , right , like modules , workspaces , state files , locks

1:31:34, and so on . There's something to look into here . Well , usually this experience is held by those who deal with AWS , Google Clouds , and , well , those kinds of , uh , cloud-oriented things . Uh-huh . Well , we have a cloud , my God , it's VMware at work .

1:31:54Right . And besides , it's some old provider , something like that . A colleague looked into it and was complaining . Right . But otherwise , uh , in practice , during my training , I mainly worked with Yandex . And , well , there aren't really any complex things there . Well , I didn't do

1:32:13any . Well , I had to create a few virtual machines there , uh , the most complex thing was that Yandex introduced application load balancers , I tried to play with them , and tried to play with network balancers . Well , for now , the way I do it is I just look ,

1:32:34Google how it's done , then I open the documentation , look at how it's specifically configured , and then I roll it out , see if it works or not , and move on . Uh-huh . Yes , yes , yes . Well , anyway , with Terraform , it is what it is . Regarding GitLab , I said everything

1:32:53honestly , I just started . Basically , well , from these answers , it's also clear . I mean , you guessed that maybe something can be executed in parallel or about caches . You still need to remember a little bit about runners , right , and pipeline triggers , yes . You need to

1:33:13google that a bit too . Right . Well , as for networking , in general , you said everything correctly there . With bash scripts , it's an unexpected trap . I mean , it seems like there's not that much . I mean , I asked something about set - e , it seems , and about the

1:33:31difference between square , round , double square , and single square brackets . These are also frequent questions . Usually , that's what they ask , so they didn't ask me . If they had , I would have learned the answer . Yes . Yes , yes . Yes . Well , there are a lot of those top 10,000 questions on

1:33:52the internet about all sorts of different things . Well , they use them quite often . So , uh , looking at Linux , it's clear the knowledge is very good , like , really good . Things like exit codes , all those funny stories about mounts , and all those answers about what Vlad was talking about . Well ,

1:34:14I’ll pass the floor to Vlad now , like . Ah , and they asked about Loverich . He likes to ask . About Yes , yes , yes . You're just like , I start asking you about inodes , like , what is an inode ? Hold my beer . Well , an inode is understandable . And there

1:34:32was another case . That was , of course , really cool . I mean , I think that's a really good prepared answer . Apparently , there was some kind of prepared answer for Loverich too . I regret not asking . Yes . My colleagues recently started inviting me to interviews as well , for people we’re hiring into our own team

1:34:50. So. And , well , I also see that we ask about Loverich too . Well , yeah , yeah , I usually ask too , because it might even be that I don't care if the person knows the answer or not , but it's interesting how they talk about it . So. Because , like , it's just

1:35:15a chance to , well , get to know the person a bit better , because it's important to know . M. Mm , who you will be working with ? If you have any questions , Andrey , you can ask them . We'll answer them . Well , actually , I wanted to write , but I got tied up and forgot . But regarding

1:35:37the DevOps stack , it wasn't clear to me what's included in the technology stack , because , well , I'm subscribed to some bot with job postings that positions itself as being for DevOps . So. And , well , I have a rough understanding of what the vacancies are , but once you get into the detailed

1:36:00description , you see who has what . I honestly haven't seen Terraform many places , although it's probably assumed that it should be there . Well , uh , how should I say , sometimes when you look at a brief job description where the technologies are listed , you're like , "

1:36:20Oh , I know 99 % of this list , " but then you finish reading the vacancy , and it turns out that was only the beginning of the list , and there's something else entirely . So that's why , what is generally included in DevOps ? Like , in your opinion ? Well , since my microphone is on , I'll

1:36:42go first , then Sasha can speak . I remember you asked about the stack when I messaged you on Telegram . Uh , what I meant by that was , you know , there are guys who , for example , don't want a long interview covering everything like Linux , Ansible , and so on . They are

1:37:00interested in just leveling up in Linux , understanding it , or maybe just k8s , and so on . That's why I asked , you know , which of these common technologies would you like to , uh , cover ? Right , yes . So here , uh , the question strongly depends on the grade the person is applying for . So , like , uh ,

1:37:25mm , firstly , the question is as follows . I mean , every company , obviously , has its own stack and its own specific stuff . If a person , for example , is applying for a level — uh , say , senior , for example , right — then it's less

1:37:45about the experience with a specific technology , a specific cloud , or anything else , and more about having a deep understanding or experience with some technology that is related to it .

1:38:08Meaning , a person should have a clear grasp or clear skills in some tool . I mean , what Vlad is saying , yes , this is mainstream , what everyone uses . But again , if , for example , for some reason you use Salt , or Puppet , or if you're

1:38:30some kind of Chef expert , don't know where you came from , but let's assume so , that will also work . That will also work . That's also fine . And if , for example , you didn't use Terraform , but used CloudFormation instead , that's also fine . But if you don't have Terraform or CloudFormation , but have ,

1:38:51say , something else , that's fine , provided it's at a level where , you know , we can talk about it in detail . Meaning , at least one thing should be well-chewed , so that you can have a good discussion about it . Like , about the fact that there are certain modules , that there are static inventories ,

1:39:10dynamic inventories . In the case of Ansible , for example , how roles , collections , and all that stuff differ . Basically , the concepts of some tool must be understood quite deeply . Well , if you're choosing what to learn , of course , you need to learn . And if we are talking about some infrastructure

1:39:28matters , yes , then some databases are definitely necessary . And if it's a database with clustering options , the concept of replication types — synchronous , asynchronous , when each is better , how automatic failover works , and how voting works . You told that cool story about etcd , right , where you

1:39:50made it clear that you shouldn't gather with fewer than three . Right . But , yes , things of that nature , you need to know them , right ? I mean , for example , you might have experience with Postgres , but on a project , they might be using MySQL , right , or something similar . Or

1:40:07you might have had experience with ClickHouse , but the project will be using MongoDB . But if you have a good understanding of at least one SQL and one NoSQL story , like Postgres and MongoDB , or Postgres and ClickHouse , for example , that's very good . There must definitely be an understanding of some message bus , right ? I mean , we

1:40:29have two standard stories : RabbitMQ and Kafka . So , it's good to tinker with one of those or at least understand the concept ; and if it's cloud , then maybe some cloud-native tools , or Yandex Cloud . Well , they probably have something too . And , of course , you absolutely need an understanding of web

1:40:50servers , the ones we aren't mentioning first in this recording . And maybe , well , HAProxy , right , what you've written down , that's cool . Uh , yeah , yeah , yeah , I wrote down proxy , but actually , I didn't do anything

1:41:13super complicated there . Right . I mean , I tried reading their documentation , but their configuration syntax is somehow quite , let's say , not similar to generally accepted conventions . So ,

1:41:33that's probably why it's difficult , mainly because of that , right ? Anyway , right now , it doesn't mean that I'm going to ask you about HAProxy . In short , there was no need to get defensive , no need to say , " I don't know anything about it . " So , this was unnecessary , you know , like , again ,

1:41:54this is , well , this is about positioning yourself , like , how you rate yourself , you should position yourself the same way . Right . Of course , all these things like containerization , I mean Docker and Kubernetes , those might not be there . I mean , it's not a must-have , even for a

1:42:16senior level it’s not a must , it’s desirable and things are moving that way , but even for seniors , it’s not a must . There are plenty of positions and places where , uh , people live without it , including on-prem and cloud . And , uh , and it's standard . But , of course ,

1:42:39if you're going to learn , you definitely should learn it . I mean , if it's missing , it's probably for others , like , for those who don't have it , it’s not exactly a blocker . In principle , any one of the things I’ve listed is not a blocker . Well , it's just , it's good to know . You definitely

1:43:00need to know some CI / CD tool . If you don’t have one , you should learn GitLab CI . It's the most popular , most widespread one right now . Um , if there's already one , even if it's something like Jenkins with that wonderful , uh , language it's written in , loved by all , you just need to know

1:43:20it well , know the basic concepts , how things are done , because you can obviously apply that later to whatever specific CI / CD tool the company uses . I mean , if you know GitLab CI and how everything is launched and optimized there , you can look for similar

1:43:44functionality in the tool that the specific project uses . Right . That's probably , probably it . And some concepts , yes , related to scaling , related to high availability , I mean , how that is applied , how it's done . You

1:44:08just need to know that in some way . Like you mentioned the " pricemaker " earlier , that was a good point . And , you just need to figure it out so you can reproduce it in the stack that the project uses .

1:44:28Uh-huh . Roughly speaking , again , if you look at the flow of job openings , the vacancies differ significantly from one another . Some people need Postgres , while others don't . Some people need ClickHouse , others don't . Some people are using Caka , for goodness ' sake .

1:44:49Where are they going to find a specialist for ClickHouse , for example ? It's unclear . Some people use Spinnaker , some use Scylla , others use Nomad . Where to find a lot of Nomad specialists in the market is unclear . Everyone used AWS , now they need Yandex

1:45:10Cloud specialists . Uh , where do you find them ? That's also a big , well , question : can a person who worked with AWS do Yandex Cloud ? Well , they probably can . Yeah . And if they have a deep understanding of it and experience , well , they'll surely figure out another cloud . And that's why , uh , well

1:45:35, it's impossible to know everything , I suppose . It's important to dig deep into what you have and be able to talk about it well . Because in the case of levels , at some point it becomes more important not just to solve a problem ,

1:45:57but to determine what the solution should be . I mean , for that , you need deep experience with whatever you're working with , right ? So , yeah , you have , say , this Kubernetes , so , in

1:46:18principle , you can already build a good profile from that . Uh-huh . Yeah . I hope we answered that . No , very insightful . Go ahead . Okay . Listen , you know what I wanted to ask ? Like , how are you how to put this politely , why did you come , like , why

1:46:41did you need the interview ? What is your goal , actually ? Well , in general , I'm not afraid of interviews . Uh-huh . Yeah . Because , uh , at my current job I've been working a little over half a

1:47:01year , and before that I worked for 10 years , six years in one company , and over three in another . And , well , I worked for six years , so I wasn't looking for a job . Yeah . And I switched to another company because my boss went there and invited me . So , there was an

1:47:20interview , but it was more like a friendly chat . Yeah . And so , well , it's scary to go when people ask you things . Yeah . And every interview asks about things differently . Some people ask one thing , others ask something else . Like ,

1:47:41I’ve had them give me ps , then awk , everything through pipes , and then ask : " Tell me , what will this command output ? " I mean , Uh-huh . right away , well , knowledge of several utilities and their flags . It’s even come to that . Some people just make up questions : " What if this

1:48:03situation arises , how would you act , or something else ? " Yeah . And , well , my heart is pounding every single time , and I’m just thinking : " I wish this would start sooner . " But as it goes on , I kind of shift my focus to the questions and calm down a bit . Yeah . Uh

1:48:22, well , I’d like to understand , how to put it , regarding what you said about resumes , that the company likely conducts interviews based on what they need . They check what’s , you know , there . But I wanted a general understanding of what they ask , like ,

1:48:45regarding the DevOps stack : what do they ask about Linux , what about Docker , K8s , CI / CD , I’d like to understand . Uh-huh . Yeah , probably for that reason . Uh-huh . Well , yeah . When I conduct an interview , I usually ask things along those lines , but sometimes I can ask

1:49:07other things if the project needs it . Yeah . Uh , okay . Well , yeah . I mean , mock interviews are , in principle , designed so you can , you know , chat and ask questions in an absolutely safe environment . Nobody will judge you or

1:49:29say : " Oh my , you’re bad , we’re not hiring you . " That is , like , really good . Yeah . But overall , this is the other side of the coin ; when you are conducting an interview , one of the interviewer's tasks is to leave , well ,

1:49:50if not a pleasant impression , you know , of the interview process , then at least a neutral one , so that even if the person doesn't take the job , they might recommend this opening to someone else .

1:50:11Yeah . Because if you start , as they fashionably say now , " grilling " the person during the interview , trying to expose them , and all that other terrible stuff , then , well , if they have self-respect — and professionals usually do — they won't want to work there at all . So , does that mean I’ll

1:50:30be getting roasted at the interview too ? Like , these roasters , they’re just like , " Hey , go work with someone else . " So yeah , that happens quite often . Well , the goal of an interview is not to scare the person or offend them in any way , but just to have a conversation ,

1:50:51find out what they can do , and make sure they don’t leave feeling , well , too dissatisfied . That’s why , usually , more or less professional interviews are conducted in a way that , you know , they won't really ... ... try to belittle

1:51:13you or anything like that . I saw , well , Vlad also heard about that interview recently . Yeah , that one was definitely a nightmare , but it’s an exception . Otherwise , interviews are usually very friendly , so there’s no need to be afraid of them . Yeah . So , are you looking for a job ?

1:51:35Uh , no . Well , look , wait , it all depends on how you look at it . I’m satisfied with my current job . Uh-huh . But if someone says , " There's an opening where you'd do more or less

1:51:57the same thing , I’m a good fit , the salary is higher , or there are other better perks , " then I’m what you’d call always in a passive search . Yeah . Uh-huh . Actually , I said I’m not demanding , and that probably plays a

1:52:17cruel trick on me in the sense that if unhealthy trends start in the company , like funding for a project drops , or maybe ... honestly , I’ve never worked with toxic people , I’ve only read about it on the internet . All my colleagues have always been excellent . Yeah . But if a situation like that

1:52:37arises , I’ll just keep putting up with it . Until , I don’t know , the last drop overflows the cup . So that’s why , how should I put it , I , well , fine , maybe I should be more proactive about

1:52:57it . Alright , I understand . We’ll talk a little more about it later if possible . Some , okay , fine . Come on . Yeah .

Recently added transcripts

Browse the whole transcript library Browse all English transcripts

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.