Code for Curitiba — Implementando técnicas de DevOps; Reporte 1

Jonhnatha Trigueiro
3 min readJan 6, 2020

--

Olá! Gostaria de compartilhar um pouco acerca da minha experiência ao trabalhar no projeto do Code for Curitiba. Este será um documento com relatos acerca do trabalho e desafios encontrados até agora, de maneira mais direta possível.

Photo by Cassiano Psomas on Unsplash

O que é o Code for Curitiba?

Segundo o próprio site do grupo:

O Code for America nasceu como uma rede de pessoas que aliam o melhor da tecnologia e do design para melhorar serviços prestados pelo governo. O Code for Curitiba, seguindo a iniciativa norteamericana, acredita que uma democracia saudável é aquela em que o governo e as pessoas se juntam para melhorar sua comunidade. (https://www.codeforcuritiba.org/#sobre — acesso em 16, dez 19)

O trabalho desenvolvido pela Code visa a criação de projetos que impactem na sociedade. Por hora contém uma série de iniciativas, mas, por hora, apenas quatro projetos estão em curso: datascience-kit, ds-curitiba-dados-abertos, onibus-io e projeto Latentes;

Sobre o ferramental

Há uma variedade muito grande de tecnologias. Uma coisa é fato: existem microprojetos criados pela comunidade, cada qual com tecnologias bem distintas. A missão é tentar colocar pipelines de CI/CD nelas assim como criando formas rápidas de se trabalhar no projeto, facilitando assim a contribuição de novos membros.

Para essa missão eu tenho que por o seguinte pensamento em “buffer”:

  • O tempo dos desenvolvedores é caro e eles vão contribuir nas horas vagas, logo tenho que garantir zero tempo de setup para desenvolver;
  • Teremos contribuições de todos os tipos de desenvolvedor: dos mais simples aos mais arrojados. Como um parâmetro de excelência eu preciso garantir um código limpo, testável e enxuto.

Para tal pensei em criar projetos no Github, sendo construídos em cima do Travis e gerando entregáveis por meio do Github Releases e imagens do Docker, em sua totalidade.

Sobre os projetos

Tentarei descrever, ao longo de outros textos, meu progresso acerca das implementações, mas antemão irei colocar um breve descritivo sobre os projetos nos quais estamos trabalhando.

Curitiba dados abertos

Este visa ser um repositório de dados limpos e curados acerca da base de dados do Curitiba 156. Ele baixa a base de dados, inicialmente, e executa um iPythonNotebook para trabalho. (https://github.com/CodeForCuritiba/ds-curitiba-dados-abertos)

Data Science Kit

Segundo o próprio site, Trata-se de imagem docker responsável pelo kit de desenvolvimento de Data Science. Ele é baseado no Scientific Python Stack, usando as bibliotecas padrão do Fedora. É usado como dependência no projeto acima.

Onibus IO

Projeto sendo desenvolvido pela Code para rastreamento dos ônibus da capital por meio de API’s públicas. Dividido em Sistema de Backend (https://github.com/CodeForCuritiba/onibus-io-backend), escrito em GO e Frontend com vueJS (https://github.com/CodeForCuritiba/onibus-io-frontend).

Projeto Latentes — uma iniciativa do livre.jor.br

Missão de recuperação do site geoespacial do projeto Latentes utilizando o framework para Python Django e base de dados Postgis;

Primeiros passos — Organizando a casa

Nesse primeiro momento os projetos estão sendo discutidos entre as equipes. Fazer um levantamento e eleger um mantenedor é fundamental para o prosseguimento do projeto. Como ainda não se tem muito engajamento estamos nos dando a liberdade de criar o processo, que envolve garantir uma boa pipeline de Continuous Integration ao passo que se trabalha nas funcionalidades básicas dos projetos.

Como serviço de automação de infraestrutura penso em utilizar Ansible como carro chefe. Atualmente temos apenas um script em Fabric conectando em um VPS mantido na Cloudcone. Compramos um servidor para os projetos e o mesmo será montado, de maneira isolada com o Docker.

O grande desafio agora é trabalhar a apresentação de modo a gerar engajamento. Tornar o projeto de fácil reprodução e desenvolvimento é crucial para mantermos cada vez mais pessoas engajadas. Para isso uma abordagem por meio de containers e palestras de como utilizar as tecnologias é importante para uma introdução rápida na ferramenta.

Obrigado por ler e até uma próxima postagem!

--

--

Jonhnatha Trigueiro
Jonhnatha Trigueiro

Written by Jonhnatha Trigueiro

Developer, Amateur Musician, Self taught

No responses yet