O desenvolvimento de interfaces eficazes na engenharia de plataforma envolve a transição de processos personalizados e manuais para soluções padronizadas e consistentes que simplificam o provisionamento e as solicitações de serviço. Este artigo explora os estágios de desenvolvimento de interface, com foco na configuração de ambientes de desenvolvimento e no diagnóstico do comportamento do aplicativo.
Processos personalizados
Existe uma coleção de processos variados para provisionar diferentes recursos e serviços, mas a consistência da interface não é considerada. Processos personalizados personalizados abordam as necessidades imediatas de indivíduos ou equipes e dependem da intervenção manual, mesmo que o provedor use alguns scripts de implementação automatizados.
O conhecimento de como solicitar essas soluções é compartilhado de pessoa para pessoa. O processo de solicitação de um serviço não tem padronização e consistência. O provisionamento e o uso de um serviço de plataforma provavelmente exigem suporte profundo do provedor de recursos.
A falta de requisitos e padrões centrais torna esse nível apropriado quando a empresa ainda não identificou e documentou as expectativas. Pode ser eficaz para equipes de empresas em fase inicial ou em esforços de plataforma. Nesses ambientes, as equipes têm a liberdade de evoluir processos e recursos para suas necessidades, permitindo que elas entreguem mais rapidamente e paguem o preço da padronização apenas quando necessário posteriormente.
Configurar o ambiente de desenvolvimento: engenheiros individuais reúnem as etapas necessárias para configurar um ambiente solicitando aos colegas, encontrando documentação e seguindo suas próprias práticas conhecidas.
Diagnosticar o comportamento do aplicativo: os engenheiros escolhem suas próprias ferramentas e processo para diagnosticar o comportamento. Eles são responsáveis por tomar medidas para acessar o aplicativo e os logs.
Padrões locais
Engenheiros e equipes de engenharia definem proativamente, mas informalmente, padrões para diferentes recursos e serviços para aumentar a quantidade de compartilhamento de conhecimento que pode ocorrer dentro da organização. Comunidades informais de apoio surgem em torno desses padrões, mas isso depende de recursos e compromisso de indivíduos e equipes individuais.
Configurar o ambiente de desenvolvimento: equipes individuais definem suas próprias ferramentas e processos e tentam garantir que os engenheiros dentro das equipes se atenham a esses processos. Isso pode ser por meio de documentação ou contêineres, mas a escolha de como documentar ferramentas e processos é orientada pela equipe.
Diagnosticar o comportamento do aplicativo: equipes individuais definem suas próprias práticas e processos para diagnosticar o comportamento. As equipes dependem da equipe de DevOps/TI para ter acesso aos recursos implantados.
Interfaces padrão consistentes para provisionamento e observação de plataformas e funcionalidades existem e atendem a necessidades amplas. Os usuários podem identificar quais recursos estão disponíveis e estão habilitados para solicitar recursos necessários.
Estradas pavimentadas ou caminhos dourados, na forma de documentação e modelos, são fornecidas. Esses recursos definem como provisionar e gerenciar recursos típicos usando padrões compatíveis e testados. Embora alguns usuários possam usar essas soluções por conta própria, as soluções geralmente ainda exigem conhecimento profundo de domínio e, portanto, o suporte dos mantenedores ainda é vital.
Gerenciamento significativo necessário da equipe central para manter modelos/documentação, especialmente em resposta à mudança nas necessidades das equipes.
Configurar o ambiente de desenvolvimento: há algum investimento em um caminho comum com documentação ou modelos definindo as ferramentas e processos necessários em toda a organização. As equipes podem se afastar dos padrões à medida que modificam modelos, mas não se reintegram à equipe centralizada.
Diagnosticar o comportamento do aplicativo: prática padrão definida para acessar e diagnosticar recursos implantados.
Soluções de autoatendimento
As soluções são oferecidas de forma a fornecer autonomia aos usuários e exigem pouco suporte dos mantenedores. A organização incentiva e permite que as soluções forneçam interfaces consistentes que permitem a descoberta e a portabilidade da experiência do usuário de uma funcionalidade para outra. Embora sejam soluções de autoatendimento, elas exigem consciência e implementação por parte da equipe. Para melhorar essa experiência, pode haver uma linguagem interna guiada e simplificada que permite que os usuários adotem e integrem recursos de plataforma mais rapidamente. Isso gera uma coleção centrada no usuário, autoatendível e consistente de capacidades.
Configurar o ambiente de desenvolvimento: as equipes de engenharia dependem da plataforma para configurar ambientes de desenvolvimento. A acessibilidade existe para descobrir os recursos disponíveis. As equipes de engenharia adotam a plataforma exclusivamente para todas as interações. A plataforma auxilia o compartilhamento de conhecimento por meio da descoberta e modificação de modelos novos e existentes, aumentando continuamente o valor oferecido pela plataforma.
Diagnosticar o comportamento do aplicativo: ferramentas e serviços para observar recursos/capacidades estão disponíveis sob demanda pela plataforma. A plataforma fornece capacidade para diagnosticar e observar recursos/capacidades.
Serviços integrados
Os recursos de plataforma são integrados de forma transparente às ferramentas e processos que as equipes já usam para realizar seu trabalho. Alguns recursos são provisionados automaticamente, como observabilidade ou gerenciamento de identidade para um serviço implantado. Quando os usuários atingem os limites dos serviços fornecidos, há uma oportunidade de ir além das soluções automatizadas e personalizar de acordo com suas necessidades sem sair das ofertas internas, porque as capacidades da plataforma são vistas como blocos de construção. Esses blocos de construção são usados para criar composições transparentes e automáticas para atender aos casos de uso de nível superior, permitindo uma personalização mais profunda quando necessário.
As equipes de plataforma internas podem determinar quais recursos estão funcionando bem para a organização e podem usar esse conhecimento para determinar em quais áreas investir para melhorar ainda mais a plataforma.
As capacidades podem ser estendidas e empacotadas de várias maneiras, oferecendo máxima flexibilidade para provisionar, gerenciar e observar recursos e capacidades.
Configurar o ambiente de desenvolvimento: os recursos de plataforma são integrados às ferramentas e processos que as equipes já usam para realizar seu trabalho. Pode ser usado por meio da CLI, IDE ou outros ambientes.
Diagnosticar o comportamento do aplicativo: a plataforma configura automaticamente os recursos de observabilidade para cada aplicativo implantado. A plataforma fornece recursos para interagir com dados de diagnóstico e aplicativo implantado.