Last week I was lucky enough to be a speaker at JaxDevOps London. This was a great opportunity for me to meet other devs, catch-up with some of our technology partners (thanks DigitalOcean for the swag!), hear how others are tackling complex architecture problems, and of course talk about some of the awesome things we’ve been doing at Cloud 66. A huge thanks to the Jax team, who did a fantastic job organising the event.
Alongside presenting, the best part was getting a chance to sit-in on some great presentations - including the talk from John Davies from C24, who covered Blockchain (the foundational technology supporting Bitcoin) and the role smart contracts will play in innovating future banking apps.
One of the other heavily attended sessions was the talk given by Mike McGarr from Netflix, whose presentation dived into the company’s engineering culture and the lessons they'd learnt from migrating their platform to the cloud.
Another big conference theme was everything containers-related. Laura Frank from Codeship spoke about the importance of clean code and making sure to include testing frameworks when introducing Docker into your workflow.
How to run Docker in production was the main feature of my presentation, which focused on practical tips for deploying containers at scale. So for those who missed the talk, here's a recap of my top 7 tips:
- Start with the core component you’re going to need - your container image, making sure it’s small, secure, performant, stable and immutable
- For consistency, plan to use the same image across the dev/test/stage and production stages of your development lifecycle
- Build images so they’re lightweight and avoid adding in any unnecessary components that defeat running containers
- Make your life easier by using one of the many Docker Buildflow tools in the market (Cloud 66 has a great one!!! : ))
- Once your image is built, the next step is to orchestrate its dependent parts by establishing your workflow
- And to run and scale in production, you’ll need to make some decisions about how to provision your containers
- And finally, be methodical about how you approach building with microservices and Docker. It’s very easy to get sidetracked by ‘technology noise’
Containers allow infinite freedom when it comes to mixing and matching your application code with microservices. Keep in mind that learning Docker is just like learning any other new, fast-paced technology; it’s going to require a learning curve. The journey from your first ‘hello world’ all the way to running Docker at scale is likely to be fogged by technology noise. That noise can cloud your vision and workflow, so it's really important to stay focused.
And also remember, containers aren’t VM’s and Docker is really just a methodology for breaking down app architecture. It won’t deploy your app by itself. But luckily, we can help you with that.