CI / CD @
About me
- Software engineer
- @g_scheibel / @ExpediaEng / @ExpediaEng_Lon
- http://gscheibel.net / https://techblog.expedia.com
- and so on …
Conclusion
- Build
- Measure
- Learn
- Loop
Build
Confidence is key
4 rules of simple design
- Passes all the tests
- Express every idea we need to express
- Contains no duplication.
- Minimized moving parts.
Testing strategy
A good test tests, a bad test tests
class FlightService { void Flight get(String flightNumber) { return expHttpClient .get("https://externalService/flight/"+flightNumber) .as(Flight.class); } }
From Pull request to Production
Automatisation is crucial
Build It Simple, Stupid
Adding a new feature
- Pull request Pull request build
- Simple, Stupid
mvn clean install
Build It Simple, Stupid
Only Production really matters
Done means in deployed production
In Production != Taking traffic
if(config.isEnabled()){ newWay(); } else { currentWay(); }
Measure
Measure everything
CPU and memory are not the only metrics
Logging
"This is not a log"
datetime="18/04/2017 14:25:00T000"
eventCode=42
eventName="DID_SOMETHING"
version="e2b126a9"
prop1="value1"
prop2="value2"
Remember Murphy’s law
Learn
Don’t rush
How do I know I’m on the right path?
Loop
Conclusion
- Build
- Measure
- Learn
- Loop