Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automação - Usando melhor seu tempo e seus recursos

Automação - Usando melhor seu tempo e seus recursos

Automação é um processo que, se feito com cuidado, só trás benefícios. Tanto para o desenvolvedor quando para a equipe.
Nesta palestra eu demonstro como a automação está presente em coisas simples, e como ela pode te fazer ganhar tempo.

Hussani Oliveira

March 22, 2016
Tweet

More Decks by Hussani Oliveira

Other Decks in Programming

Transcript

  1. Automação Usando melhor seu tempo e seus recursos

  2. Quem é o Hussani?

  3. None
  4. $ vendor/bin/phpunit --bootstrap vendor/autoload.php tests

  5. $ vendor/bin/phpunit tests

  6. $ vendor/bin/phpunit —ayfeiq tests

  7. None
  8. None
  9. test: @php vendor/bin/phpunit --bootstrap vendor/ autoload.php tests # Makefile

  10. $ make test

  11. None
  12. s.f. Sistema em que os processos operacionais [..] são controlados

    e executados por meio de dispositivos mecânicos ou eletrônicos, substituindo o trabalho humano;
  13. Eficiência

  14. Menos erros

  15. Melhoria do processo

  16. Resultados únicos

  17. Menos prejuízo

  18. Produtividade

  19. None
  20. O que automatizar?

  21. O que conhecemos

  22. None
  23. O que não precisa ser olhado

  24. O que vale o esforço

  25. None
  26. Automação não é só deploy

  27. git hooks

  28. git hooks + script = <3

  29. git hook + phpcs = -80% violações

  30. Testes

  31. None
  32. language: php php: - 5.5 - 5.6 - 7 #.travis.yml

  33. None
  34. $ docker run -it php:5.6 <…>

  35. $ docker run -it php:7.0 <…>

  36. TEST_COMMAND_DOCKER=php /app/vendor/bin/phpunit --bootstrap / app/vendor/autoload.php /app/tests DOCKER_COMMAND=docker run -v ${PWD}:/app

    php: test-multi: @set -e; for v in '5.5' '5.6' '7.0'; do printf"\nTesting on PHP $$v\n “; $(DOCKER_COMMAND)$$v $(TEST_COMMAND_DOCKER); done # Makefile
  37. $ make test-multi

  38. Deploy

  39. Pegar código

  40. Pegar código Instalar dependências

  41. Pegar código Instalar dependências Remover arquivos desnecessários

  42. Pegar código Instalar dependências Remover arquivos desnecessários Compilar assets

  43. Pegar código Instalar dependências Remover arquivos desnecessários Compilar assets Aplicar

    configurações do ambiente
  44. Pegar código Instalar dependências Remover arquivos desnecessários Compilar assets Aplicar

    configurações do ambiente […]
  45. Processos longos trazem medo

  46. $ deploy --env prod --version 2.4.7

  47. Build tools

  48. None
  49. <project name="MyProject" default="tests" basedir="."> <property name="dist" location="dist"/> <target name="tests"> <exec

    executable="make"> <arg value="multi-test"> </exec> </target> </project> # build.xml
  50. $ ant -buildfile build.xml <target>

  51. $ ant -buildfile build.xml tests

  52. Ferramentas de CI

  53. None
  54. Ferramentas de configuração

  55. None
  56. Auxiliares

  57. APIs

  58. APIs Jq

  59. APIs Jq Shell

  60. APIs Jq Shell Python

  61. APIs Jq Shell Python PHP

  62. APIs Jq Shell Python PHP […]

  63. Quick wins

  64. Monitore

  65. None
  66. ELK

  67. Move forward

  68. Perguntas?

  69. Para ver https://www.ansible.com https://jenkins-ci.org https://travis-ci.org https://developer.github.com https://ant.apache.org https://www.phing.info http://phansible.com

  70. Feedback https://joind.in/event/php-experience-2016/automao--usando-melhor-seu-tempo-e- seus-recursos

  71. Obrigado :)