transforming propertyguru's delivery pipeline
Embed Size (px)
DESCRIPTION
Continuous delivery implementation in PropertyGuru Pte Ltd. Presented at Singapore DevOps Meetup: http://www.meetup.com/devops-singapore/events/195469632/TRANSCRIPT

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

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