Development Best Practices
for Continuous Deployment Environment!
Presented by Akhyar Amarullah
at Engineering Brownbag Session in Onebit
on Wednesday, March 17th 2015"
Slide 2
Slide 2 text
What is this Continuous Something stuffs?"
Slide 3
Slide 3 text
Why does it matter?"
Centralized source.!
Being lazy, automate repetitive tasks.
Engineers love automation!!
Deploying clean build is a must,
but often requires extra time.!
Reduce silly mistakes in manual steps.!
Higher quality delivery with confidence.!
Slide 4
Slide 4 text
But that’s devops engineer’s job, right?
Why should I even care?
!
Fine fine, I have heard it before. !
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
Why should I even care?"
• Code requires huge efforts to maintain more than to
write.!
• Projects change a lot. Sometimes beyond your sanity
can handle.!
• Make changing configurations a breeze.!
• Your code is your responsibility. Continuous Deployment
compliance is a standard.!
Slide 7
Slide 7 text
Let’s get started!"
Ok, I’m convinced now!
Slide 8
Slide 8 text
Everything on branch “master” (or equivalents)
should works and deployable.
!
• Incremental/small changes are done on feature
branches.!
• Version tag your released commits.!
• Commit in small chunks. But not too small.!
Slide 9
Slide 9 text
Don’t commit files containing
sensitive information."
• configs/email.php
• onebit.keystore
• DatabaseConfigs.java
• PASSWORD.txt
• Etc. Basically, files with credentials.!
• These configuration files are kept in your
own machine. !
Configuration Files!
Separate between different environment
Local VS staging VS production!
Your favorite frameworks might have supported it already.
Find it out!!
Avoid committing sensitive credentials
to public repository.!
Slide 13
Slide 13 text
Laravel Sample!
Slide 14
Slide 14 text
Configuration!
• Must be injectable via either:!
– Configuration files!
– Environment variables (e.g. $SERVER_HOST)!
• Don’t forget to document how to configure your projects!!
Slide 15
Slide 15 text
Recaps"
Everything on “master” (or equivalents) should
works and deployable."
Don’t commit files containing sensitive information.!
Use .gitignore
Separate configuration based on environments.!
Document how to configure the project.!