4. Welcome to the team!
Thanks!
How do I get started?
It’s in the README
OH CRAP!
How do I install
Python?
You have to fill in a
form at the company
portal
Where is this portal?
I’ll send you the link
5. Not that again … we
should have upgraded
a long time ago
The link doesn’t work
Yep, found it
Where did they move
the portal to this time?
The README says I
have to install Python
3.5, but I can only
request 3.8 up to 3.10
I’ll send you the new
link
If only we had
Docker
6. BUT … It Works On My Machine!
How muchdoes this cost?
10. What to look out for?
Fast Feedback Loop
Make your own life easier
Security
Same Configuration for Everyone
Choice of Tools
As Close to Production as Possible
23. What to look out for?
Fast Feedback Loop
Make your own life easier
Security
Same Configuration for Everyone
Choice of Tools
As Close to Production as Possible
29. Which ones?
You have vulnerable
dependencies on your
server!
Python 3.5, Postgres
8.0, Redis 2.1, Nginx
0.0.1, etc …
I’m on it
OH CRAP!
Yes?
Hey infra!
Can you upgrade the
deprecated
dependencies?
Can you fill in the form?
SIGH …
You’ve got 2 days!
30. Sure
All of them
You filled in “upgrade
dependencies”. Which
ones?
Can you fix it in two
days?
Is it done!
You need to be more
specific
SIGH …
Sure
Nope, we’ve got five
days according to the
SLA
Can you tell us how to
upgrade Python?
If Only we had Docker
31. What to look out for?
Small Docker Images
Close to Development
Security
32. Small Image
Choose Wisely
Base image Size
python:3.10-alpine 47,8MB
python:3.10-slim-buster 118MB
python:3.10-slim-bullseye 125MB
python:3.10-buster 892MB
python:3.10-bullseye 919MB
Opmerkingen
Arnoud:
Wake everyone up
It felt like we were in a conversation
Beginning was funny – engagement
Add the Docker
I assume you have some experience with Docker. It’s not an intro to Docker talk
Does everyone know what Poetry is Mention it is a dependency management tool
These examples are in Python, so if you have any framework-related questions, put them in the chat
Let the audience stand up
In production
In their CI/CD pipeline
For development
ASK THE AUDIENCE
DURING DEVELOPMENT
IN THE PIPELINE
IN PRODUCTION
TODO: research and describe
How much does this cost …
Fast feedback loop
Volume mount src, tests, pyproject.toml and poetry.lock
Run with DEBUG=True
Make your own life easier
Docker-compose
Scripts and aliases
Security
SSL certificates
Use Docker secrets for secret values
TODO: Re-Reference the new Team Member
TODO: Add a chat with the Infra guys
I use mkcert to generate SSL certificates
Fast feedback loop
Volume mount src, tests, pyproject.toml and poetry.lock
Run with DEBUG=True
Make your own life easier
Docker-compose
Scripts and aliases
Security
SSL certificates
Use Docker secrets for secret values
Run tests inside the container, not during build.
Because then you have the same tests during development as you have in the build pipeline
It gives you better control over the tests to run
You don't have to rebuild to run a test
Run tests with coverage and export the results
This can also be extended with linters, bandit, safety and others.