27
Python & DevOps @pyfest 2015 Python & DevOps @pyfest 2015 Python & DevOps @pyfest 2015

Pyfest Tunisia 2015 - Python & DevOps

Embed Size (px)

Citation preview

Page 1: Pyfest Tunisia 2015 - Python & DevOps

Python & DevOps

@pyfest 2015

Python & DevOps

@pyfest 2015

Python & DevOps

@pyfest 2015

Page 2: Pyfest Tunisia 2015 - Python & DevOps

Ahmed Bessifi @github/abessifi

DevOps Engineer @IMDEV

- Python, Flask, Puppet, Docker, Jenkins

Open source

- Author : Pyatta, repmgr-puppet

- Contributor : LWP, RQ, PoWA

- Member : Debian, openVswitch, metaflask

Page 3: Pyfest Tunisia 2015 - Python & DevOps

And you ?

Page 4: Pyfest Tunisia 2015 - Python & DevOps

DevOps !

Page 5: Pyfest Tunisia 2015 - Python & DevOps

Mixed Martial DevOps

Page 6: Pyfest Tunisia 2015 - Python & DevOps
Page 7: Pyfest Tunisia 2015 - Python & DevOps
Page 8: Pyfest Tunisia 2015 - Python & DevOps

DevOps, what is it for ?

- Ensure better development of the application.

- Continuous integration and deployment.

- Ensure that the application is working as expected

(monitoring, high availability, etc).

Page 9: Pyfest Tunisia 2015 - Python & DevOps

DevOps, what is it ?

Page 10: Pyfest Tunisia 2015 - Python & DevOps

DevOps, how to do it ?

Page 11: Pyfest Tunisia 2015 - Python & DevOps

What's all the fuss about ?

Page 12: Pyfest Tunisia 2015 - Python & DevOps

Docker :

“... an open platform for developers and

sysadmins to build, ship and run distributed

applications.”

https://www.docker.com/whatisdocker

Page 13: Pyfest Tunisia 2015 - Python & DevOps

Docker : Concepts

Images

A read only collection of “layers” joined together

via a union File System.

Containers

An instance of an image on which one or more

processes are running or have exited.

Page 14: Pyfest Tunisia 2015 - Python & DevOps

Docker : Use cases

- Development environments

- Application deployment

- Continuous integration

- Continuous delivery

- Platform-as-a-Service (PaaS)

Page 15: Pyfest Tunisia 2015 - Python & DevOps

+

Page 16: Pyfest Tunisia 2015 - Python & DevOps

Development

Environments

Page 17: Pyfest Tunisia 2015 - Python & DevOps

Dev Env : Components

- OS

- System libraries

- Python dependencies

- Database, cache, etc

Page 18: Pyfest Tunisia 2015 - Python & DevOps

Dev Env : Problems

- Constantly change

- Never truly consistent

- Miscommunication (Ops vs Devs)

Page 19: Pyfest Tunisia 2015 - Python & DevOps

Dev Env : Docker !

- Just write a Dockerfile !

- Easy to change and share

- 100 % isolated

- Always consistent

- Production ready

Page 20: Pyfest Tunisia 2015 - Python & DevOps

Continuous Integration

Page 21: Pyfest Tunisia 2015 - Python & DevOps

Why we write tests ?!

Page 22: Pyfest Tunisia 2015 - Python & DevOps

Python testing libs/frameworks :

●- Pytest, Nose : Unittesting library (less boilerplate).

- Mock : easily create fakes for testing.

- WebTest : req/resp testing for WSGI web apps.

- Selenium : browser automation (web).

Page 23: Pyfest Tunisia 2015 - Python & DevOps

Why using CI ?

“A CI system improves the productivity of a

development team by automating various

things.”

Page 24: Pyfest Tunisia 2015 - Python & DevOps

Jenkins for Python :

- Run builds (pytest, tox, etc).

- Perform pep8 and Pyflakes checks.

- Display xUnit, coverage reports.

- Generate and publish docs.

- Build python/deb package(s).

Page 25: Pyfest Tunisia 2015 - Python & DevOps

DevOps in action“workflow”

Page 26: Pyfest Tunisia 2015 - Python & DevOps
Page 27: Pyfest Tunisia 2015 - Python & DevOps

Thank you !

'' We build software for people

who build software ''

<Codiak>

about.me/abessifi

github.com/abessifi