Kick-ass dev environment

Every Hero needs an utility belt!

Utility belt

To fight the crime in software development process

Whos talkin?

Me

Gediminas Morkevičius aka @l3pp4rd

  • A hardcore - ViM, Arch Linux, dwm user
  • PHP, GO, C - coder
  • And I share my stuff - github.com/l3pp4rd
Data-Dog
Kickass hero

So what tools we need to fight the crime in software development process?

Batman crime fighting tools

Lets start with:

Bat throwers

Bat throwers

In other words - testing tools

phpspec

behat

Bat mines

Bat mine

In other words - build tools

Gulp

gulp

Bower

bower screenshot

Bat gun

Bat mine

In other words - deployment tools

Be Ansible Hero

Ansible hero

Automate your deployment process

One playbook for all environments:

  • Development + Vagrant
  • Staging
  • Production

Different inventory files for separate environments

Ansible run

Having roles for different reusable tasks

Ansible configuration file

All configurations are in yaml

Ansible configuration file

Convenient access to servers:

Ansible servers

Bat Shield

Batshield

In other words - service supervision

supervisord.org

vim /etc/supervisor.d/syncthing.ini
[program:syncthing]
command=/home/gedi/bin/syncthing
process_name=%(program_name)s
user=gedi
numprocs=1
autostart=true
environment=HOME=/home/gedi
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=5
sredirect_stderr=true
Supervisorctl status

Batmobile

Batmobile

In other words - continuous integration - CI

Every build runs on fresh docker image

Drone configuration file

Simple admin panel to see builds:

Drone build

Project dashboard (builds all new branches):

Drone project

Thank you

Any Questions?

Questions?

Slides are available at: slides.gediminasm.org

Powered by: Revealjs