Transforming PropertyGuru Delivery Pipeline
Dwi Sasongko SupriyadiCD Lead @ PropertyGuru Pte Ltd
Who are we?
4 main websites in 4 countries16 mobile apps!Development team in 3 countries (~40 engineers) 9 scrum teams
How Do We Do It?
Two weeks sprint developmentSprint deployment + (almost) unlimited Ad Hoc deployment
Technology
PHP5, MySQL, Nginx + php-fpm, memcached, redis, sphinx, elasticsearch, beanstalk, MongoDB, puppet, jenkins, vagrant, git, ant, Ubuntu, CentOS, AWS~200 servers: web, worker, DB
The Past
One big legacy app (~7 years old)No testProduction test, then pray
Apache + PHP + MySQLCentOS 5.x, CentOS 6.xDeployment as we knew it
Legacy Application
Legacy Deployment
Problem?
● System○ Likely in unknown state○ Manual ad-hoc changes
● Application○ Lack of test, lack of confidence○ Hard to extend, hard to maintain
The Challenge
We want to scale!
Our Vision
● System○ Infrastructure as code○ Automate as much as possible○ Single source of truth○ Similar setup across environment
● Application○ SOA ○ TDD, BDD
■ Unit Test■ Selenium based test
○ CI○ CD
Continuous Delivery
http://devopsreactions.tumblr.com/post/90542814379/continuous-delivery
SOA
● Micro Services○ Everything is service○ Service is a single application○ Contract based development
SOA
SOA
Many applications ...Hard to manage dependencyDeployment complexityI’m scared ….
SOA - Set of Deployable Version
Set of Deployable Version
● Convention○ Versioning API instead of introducing BC break○ Self discipline
● Dependency Management○ Release early, break early
● Release Cycle○ Promote a set to the next stage as soon as it
passes test criterias
Deployable Version
SoDV in integration SoDV in staging/production
deployment
Pipeline
Deployment
What About Now
● Setup and Teardown production server with single command○ Launch instance, provision, deploy latest code, run
automation test, promote to production● Deploy multiple times a day
What We Want To Do Next?
Bring the deployment power to the business
Word of Wisdom
● Continuous Delivery is not just technical thing, but also mentality
● We learned how to work together as a big team
We’re Hiring!
GlossaryImages taken from here:http://beyondplm.com/wp-content/uploads/2012/04/complexity2.jpghttp://psdhunter.com/psds/6754-big-red-push-button-free-photoshop-download.pnghttp://uncrate.com/p/2012/06/fitbit-aria-scale-xl.jpghttp://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/StateLibQld_1_88816_Aircraft_mechanics_working_on_an_Avro_Anson_Mk1_plane%2C_Archerfield%2C_ca._1942.jpg/512px-StateLibQld_1_88816_Aircraft_mechanics_working_on_an_Avro_Anson_Mk1_plane%2C_Archerfield%2C_ca._1942.jpg