Perguntas frequentes: é necessário saber como codificar para se envolver com o SRE?Frequently asked questions: Do I need to know how to code to get involved with SRE?

Quando as pessoas estão considerando estar envolvidas no SRE e as equipes estão pensando em trazer as práticas SREs, uma pergunta comum que surge é "você precisa saber como codificar?"When individuals are considering getting involved in SRE and teams are thinking about bringing in SRE practices, a common question that comes up is "Do you need to know how to code?"

A resposta curta: Sim.The short answer: yes.

Mas a resposta completa é um pouco mais nuance.But the full answer is a bit more nuanced. Vamos examinar três locais em que a codificação entra na engenharia de confiabilidade do site, juntamente com o nível de experiência de codificação necessário para cada um.Let's look at three places where coding comes into play in site reliability engineering along with the level of coding expertise required for each. Essa lista não está completa, mas esses cenários são alguns dos casos de uso mais comuns.This list isn't complete, but these scenarios are some of the more common use cases.

Cenário 1: removendo toil por meio de automaçãoScenario 1: Removing toil through automation

Engenheiros de confiabilidade do site e outros que usam práticas SREs tentam sempre que possível remover o toil.Site reliability engineers and others who use SRE practices attempt wherever possible to remove toil. "Toil" significa uma coisa específica em SRE."Toil" means a specific thing in SRE. Toil refere-se ao trabalho de operações que está sendo feito por um humano que tem determinadas características.Toil refers to operations work being done by a human that has certain characteristics. O trabalho árduo não tem nenhum valor de resgate a longo prazo.Toil has no long term redeeming value. Ele não promove o serviço de maneira significativa.It doesn't move the service forward in any meaningful way. Geralmente, ele é repetitivo e principalmente manual (mesmo que possa ser automatizado).It is often repetitive and largely manual (even though it could be automated). Conforme o serviço ou os sistemas aumentarem ao longo do tempo, o número de solicitações para o sistema provavelmente também aumentará em quantidade em uma taxa proporcional e exigirá mais trabalho manual.As the service or systems gets bigger over time, the number of requests for that system will also probably increase in quantity at a proportional rate and require even more manual labor.

Por exemplo, se um serviço exigir que a equipe do SRE redefina algo a cada semana ou para provisionar novas contas e espaço em disco manualmente, ou reiniciá-la repetidamente por mão, essa será a carga operacional toil.For example, if a service requires the SRE team to reset something every week, or to provision new accounts and disk space by hand, or repeatedly restart it by hand--this is operational load that is toil. A conclusão dessas ações não tornou o serviço melhor de nenhuma forma persistente e de longo prazo.Completing those actions hasn’t made the service better in any long-term, persistent way. Essas ações provavelmente precisarão ser repetidas várias vezes.These actions will likely have to be repeated over and over.

As SREs odeiam trabalho árduo.SREs hate toil. Elas funcionam para eliminá-lo sempre que possível e de forma adequada.They work to eliminate it whenever possible and appropriate. Esse é um dos aspectos na qual a automação entra em cena na SRE.This is one of the places automation comes into play in SRE. Se essas solicitações puderem ser tratadas automaticamente, isso liberará a equipe para trabalhar com mais recompensa e impacto.If these requests can be handled automatically, that frees up the team to work on more rewarding and impactful things.

Experiência em codificação: a automação requer alguma experiência em codificação, mas não precisa exigir habilidades completas de engenharia de software.Coding expertise: automation requires some coding expertise, but it does not have to require full software engineering skills. Se você puder escrever scripts pequenos (talvez no PowerShell ou no Shell do Bourne) ou mesmo se você criar um [https://docs.microsoft.com/azure/logic-apps/logic-apps-overview](Azure Logic app) com mal qualquer código, esse aplicativo ainda poderá ajudar a eliminar o toil.If you can write small scripts (perhaps in PowerShell or Bourne shell) or even if you create an [https://docs.microsoft.com/azure/logic-apps/logic-apps-overview](Azure Logic app) with barely any code, this app can still help eliminate toil.

Cenário 2: controle por meio de APIs/linguagens específicas de domínio (DSLs)/templatesScenario 2: Control through APIs/domain specific languages (DSLs)/templates

Embora não seja estritamente necessário para o SRE Work, ser capaz de controlar ambientes por meio de APIs, DSLs e modelos (especialmente ambientes de nuvem) permite que o SREs Escale verticalmente seu trabalho.Though not strictly necessary for SRE work, being able to control environments through APIs, DSLs, and Templates (especially cloud environments) allow SREs to scale up their work. A infraestrutura de provisionamento/desprovisionamento, a configuração do monitoramento e a integração de vários serviços, tudo se torna muito mais eficiente por meio de codificação.Provisioning/De-provisioning infrastructure, configuring monitoring, and integrating several services all becomes much more efficient via coding.

Experiência em codificação: como o cenário anterior, isso requer alguma experiência em codificação, mas não precisa exigir habilidades completas de engenharia de software.Coding expertise: like the previous scenario, this requires some coding expertise, but it does not have to require full software engineering skills. Além dos scripts e dos aplicativos lógicos mencionados antes, o [https://docs.microsoft.com/azure/azure-resource-manager/templates/overview](Azure Resource Manager Templates) também pode ser usado com a experiência de codificação mínima.In addition to the scripts and Logic apps mentioned before, [https://docs.microsoft.com/azure/azure-resource-manager/templates/overview](Azure Resource Manager Templates) can also be used with minimal coding experience.

Cenário 3: corrigindo o códigoScenario 3: Fixing the code

Os engenheiros de confiabilidade do site procuram melhorar a confiabilidade de um sistema.Site reliability engineers look to improving the reliability of a system. Às vezes, essa meta requer a aprofundamento do código-fonte de um sistema, a determinação do problema e, muitas vezes, contribuindo com uma correção de volta para a base de código.This goal sometimes requires digging into the source code of a system, determining the issue, and often contributing a fix back to the code base. Embora o nível de sofisticação desse trabalho possa variar amplamente com base na situação, a experiência de codificação é um requisito definitivo nesses casos.While the level of sophistication of this work can vary widely based on the situation, coding expertise is a definite requirement in these cases.

Experiência em codificação: a experiência de engenharia de software completa geralmente é necessária neste cenário.Coding expertise: full software engineering expertise is often required in this scenario.

Próximas etapasNext steps

Interessado em aprender mais sobre a engenharia de confiabilidade do site e o trabalho de baixo código?Interested in learning more about site reliability engineering and low-code work? Confira nosso Hub de engenharia de confiabilidade do site, a documentação do produto vinculada acima.Check out our site reliability engineering hub, the product documentation linked above.