Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

100 tests per second - 40 releases per week

82 views

Published on

This talk shows how the Triggerz engineering team continuously deliver new software versions to our users.

The Triggerz product is a web application built with React, Node.js and PostgreSQL. The product has been live since October 2017 with users worldwide.

We have built a simple continuous deployment pipeline, also mostly in JavaScript, that we use to validate every push to master before deploying it automatically to production.

This talk demonstrates how we write tests and how the pipeline is scripted. We discuss the thinking behind and the tools that we've used to do continuous delivery.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

100 tests per second - 40 releases per week

  1. 1. 100 tests per second - 40 releases per week Lars Thorup, Triggerz April, 2018
  2. 2. Let's deploy a new feature!
  3. 3. Lars Thorup | Triggerz ● Lars ● MSc comp. science ● Developer, coach ● CTO, co-founder of Triggerz ● @larsthorup ● Triggerz ● Employee training ● Recommendation engine ● SaaS ● Started in 2016 ● 3 corporate clients live ● 1800 users ● www.triggerz.com
  4. 4. Triggerz Product
  5. 5. Code stack ● Browser ● React ● Redux ● App-server ● Node.js ● Restify ● Knex ● Database ● PostgreSQL
  6. 6. 100 tests per second Note: these are our slow integration tests for the front-end; we also have fast unit tests :)
  7. 7. 20-40 releases per week
  8. 8. Our experience with continuous delivery ● Costs ● More up-front investment in tests and automation ● More discipline required ● Deployment pausing requires manual intervention ● Changes ● Continuous but smaller stress over not breaking production ● Benefits ● Developer feedback is faster ● We can reprioritize frequently ● Users get new functionality much faster ● Production issues are few, small and quickly fixed ● Deploying becomes trivial
  9. 9. Delivery pipeline
  10. 10. Feature toggles ● Disable and deploy unfinished feature to production ● Fast integration ● Fast feedback https://admin.triggerz.com/#feature:ageUserLocation=true
  11. 11. Next ● Zero-downtime ● More than one app server ● Rolling upgrades ● Service coordination (locks, serializable transaction isolation) ● Custom CSS packs ● Custom values of our CSS variables ● Webpack-step per custom pack
  12. 12. Did we deploy the new feature?
  13. 13. Questions? We are hiring!

×