What a real Startup Deployment Process looks like

"From local code to production"

Tri Tran @ NFQ Asia

May 2018

about me


Tri D. Tran

Senior Technical Architect




NFQ Asia | 8Bit Rockstars
Member of .NFQ  Group



I'm happy if you call me 'Mụp'

we WILL discuss about

  • Software deployment process:
    A pipeline process

  • Advantages and challenges
  • Tools
  • Conclusion & Open Discussion

we WON'T talk about

  • Open-source process
  • Enterprise process
  • DOTA 2, LoL, Counter Strike...
  • Drink or party

How did they do in Stone Age?

Source: StoneAgeComics

They did

  • SysAdmin will handle manually
  • FTP / SFTP / Shell

Source: SysOrb

Source: SysOrb


  • Easy to apply
  • Don't require many experience, technology


  • Human mistakes
  • Difficult to track the changes
  • Risk management

Source: StoneAgeComics


Source: SysOrb

Just Kidding



What does a Startup need?

  • Releasing new features frequently
  • Automated testing - Bug zero
  • Automated deployment

What is Continuous Delivery?

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.


The Tools of Continuous Delivery?

  • Version Control
  • Continuous Integration (CI)
  • Automated Deployment
  • Logging & Monitoring

The Tools of Continuous Delivery?

  • To keep a record of every version of every feature, add-on or other change to the code base.

  • All tests, scripts, documentation and configuration files

  • Subversion, GIT, Mercurial, etc.

Version Control

The Tools of Continuous Delivery?

Continuous integration (CI) is the practice of frequently checking code in with the main code base, triggering automated tests

Continuous Integration

  • Checks the version control system for changes to the application
  • Builds the application and runs automated tests on each build.
  • Provides reports on whether each build passed or failed the tests.
  • Jenkins, Bamboo, CircleCI, Travis, etc.

The Tools of Continuous Delivery?

Automated Deployment

  • Ensure code can be deployed to production at any time, any environment automatically:

    • Development

    • UAT / Testing

    • Staging

    • Production

  • AWS CodeDeploy & Pipeline, Ansible, Puppet, etc.

The Tools of Continuous Delivery?

Logging / Monitoring

  • Bug Tracing

  • Collect and analyze data

  • Monitor all devices / services

  • Availability, performance monitoring, and/or health status
  • Alert / Reporting about  what has happened/is happening
  • Logstash, Nagios, New Relic, LogEntries, Tideways, etc.

And more...

  • Code Review

  • Testing Environments

  • Git Workflow

  • Test-Driven Design

Continuous Delivery Is …

  • Incremental: You can implement continuous delivery practices just a step at a time and still get great benefits.

  • Automated: By making successful processes repeatable, you can make changes more quickly and safely, with less likelihood of error.

  • Fast: By making frequent releases of smaller changes, you can isolate and fix problems more quickly, or roll back to a previous working state more easily.

-- Martin Fowler

You're Doing Continuous Delivery When ...

  • You can perform push-button deployments of any version of the software to any environment on demand.

  • You're leveraging automation, making frequent releases, testing at every stage of the process, and using a pull-based architecture that permits only successful releases to move to the next stage.

  • You work together as a single team, with everyone — developer, QA engineer and sysadmin — responsible for delivering quality code.

-- Martin Fowler


Tri D. Tran



we are HIRING

Source: Kieu Lam @ NFQ Asia

Simply send us an email with your enclosed updated CV to:



Floor 11 Vincom Center
72 Le Thanh Ton, Ben Nghe Ward,
District 1, Ho Chi Minh City

Deployment Process

By Tri Tran

Deployment Process

  • 385
Loading comments...

More from Tri Tran