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

Devops for A Busy Developer - XP Days 2016

Devops for A Busy Developer - XP Days 2016

Our minds are bright, our thoughts are clear, our eyes are lit with passion, but we’ve got no time!

We thought frontend churn was terrible but DevOps space is so much worse! What tools to use? Which direction to take? What movement to follow? Every single day new tools emerge with a promise to solve the challenges we have and the ones we don’t know we have! We don’t have enough time to learn to use them properly, and each time we try them they either don’t work as expected, or do so inconsistently. Yet at the same time we face tight deadlines and have work to do!

The task at hand is clear: we’ve got a pile of code, and we want to run it on a bunch of servers. I will show you how I do it with as little sweat and tears as possible.

More Decks by Андрей Листочкин (Andrey Listochkin)

Other Decks in Programming

Transcript

  1. Website (Landings + Payments) App UI - SPA CRUD API

    Admin UI Background processes DB Cache ...
  2. Select 1 tool that does 1 thing well Face a

    task - pick a laser-focused tool for it Repeat
  3. Select the tool most likely suitable for a job Use

    it for everything while it’s easy Hit a wall? Pick something most likely to help you
  4. You may end up with several tools They may be

    redundant You will learn very little about them
  5. You Will Save Time Most tools will operate in their

    Sweet Spots Operational issues are extremely unlikely
  6. AWS

  7. eb init my-app eb create my-app-staging eb use my-app-staging eb

    setenv DATABASE_URL='...' eb getenv eb deploy
  8. S3

  9. 1. JS, CSS, assets => S3 + CDN Fingerprint, pre-gzip

    2. HTML references them => Redis 3. Default Active Version Flag => Redis 4. Backend goes to Redis to serve HTML
  10. Humans are slow HTTP Polling is fast enough HTTP is

    easy WebSockets don’t play well with HTTP2
  11. 12factor Separate SPA with S3 Treat your database as external

    resource Docker for Packaging only Heroku AWS ElasticBeanstalk AWS Lambda
  12. Select the tool most likely suitable for a job Use

    it for everything while it easy Hit a wall? Pick something most likely to help you