$30 off During Our Annual Pro Sale. View Details »

From development to production

From development to production

Modern PHP applications are taking on business-critical tasks. Companies must
support more rapid development iterations.

PHP has classically lacked a standard application deployment mechanism.
We as PHP developers are a highly creative that bunch that already came up with a
multitude of homegrown techniques to work around this problem. But wait... a risky, error-prone
deployment processes can slow things down significantly, increase the cost
of delivering applications and time to innovate are diminished.

In this session, we will learn some solid continuous deployment strategies to deploy applications
in a modern environment.

Lalit Vijay

March 19, 2017
Tweet

More Decks by Lalit Vijay

Other Decks in Technology

Transcript

  1. F R O M
    D E V E L O P M E N T
    T O P R O D U C T I O N

    View Slide

  2. L A L I T
    V I J A Y
    Bulding StyleDotMe
    Co-Founded Zeppery
    Worked with 5* Hotels
    Bootstraped IT Service Company
    Teacher
    Computer operator
    2008
    2009
    2010
    2014
    2015
    2016
    LaravelLive India Curator
    2017

    View Slide

  3. 01.
    02.
    03.
    04.
    05.
    06.
    07.
    08.
    Developer Fortress
    Developer Dreams
    In between
    Continuous Integration
    Continuous Deployment
    Demo
    C O N T E N T S
    Continuous Delivery
    Summary

    View Slide

  4. W H A T I S
    D E V E L O P E R F O R T R E S S ?
    It's their Development Console.

    View Slide

  5. D E V E L O P E R C O N S O L E
    IDE
    Free
    Run
    Access to
    Favaorite IDE
    tools
    Access to all
    files and
    permissions.
    Debugger
    Fearless
    Freedom
    Access to error
    Log and debugger
    You can make and
    break things
    without fear.
    Lalit Vijay | lalitvijay.xyz

    View Slide

  6. W H A T I S
    D E V E L O P E R D R E A M ?

    View Slide

  7. G R E E N T I C K S
    IDE
    NO
    Firewalls
    All Tests
    Passed
    No one else is
    breaking my
    code
    Debugger
    Fearless
    Freedom
    Deployment
    Successful
    Zero Downtime
    Lalit Vijay | lalitvijay.xyz

    View Slide

  8. A P P L I C A T I O N
    D E V E L O P M E N T
    P R A C T I C E S
    Working directly on the application
    server via SSH and editing with
    vi/vim
    Using a shared file system
    (Samba/NFS)
    Performing a version control check
    out on the production server
    Using rsync to “clone” a development
    environment
    Creating deb/RPM packages
    Using Jenkins or other continuous
    integration tools

    View Slide

  9. W H A T ' S T H E I S S U E
    Manual deployment
    On the ground
    Production & staging errors
    Analysis & reporting issues

    View Slide

  10. M I N D Y O U R B U S I N E S S
    In business terms
    Failure risk
    Overheads
    Lack Quality Assurance

    View Slide

  11. C O N T I N U O U S
    D E P L O Y M E N T
    Continuous delivery (CD) is a software
    engineering approach in which teams produce
    software in short cycles, ensuring that the
    software can be reliably released at any time. It
    aims at building, testing, and releasing
    software faster and more frequently.
    - Wikipedia

    View Slide

  12. C O N T I N U O U S
    D E P L O Y M E N T

    View Slide

  13. C O N T I N U O U S
    D E P L O Y M E N T
    Reduce cost
    Improved Quality
    Data-driven decision making
    Experimentation = innovation
    Accelerate time-to-value

    View Slide

  14. C O N T I N U O U S
    D E P L O Y M E N T B A R R I E R S
    Company Culture
    33%
    Lack of time
    33%
    Technical Issue
    10%
    Understanding
    10%
    Lack of Dev+Ops
    15%

    View Slide

  15. B U T W H Y ? C U L T U R E A N D L A C K O F
    T I M E A R E M A J O R B A R R I E R S
    125
    250
    375
    500
    C
    ost/Program
    -22%
    D
    evelopm
    ent-60%
    Pipeline-140%
    Innovation-500%
    0
    HP LaserJet Firmware team re-architected and published about their
    journey (from 2008 - 2011), they record the outcomes they achieved as
    above.

    View Slide

  16. C O N T I N U O U S
    I N T E G R A T I O N ( C I )
    Continuous Integration (CI) is a development
    practice that requires developers to integrate code
    into a shared repository several times a day. Each
    check-in is then verified by an automated build,
    allowing teams to detect problems early.

    View Slide

  17. C O N T I N U O U S
    I N T E G R A T I O N ( C I )

    View Slide

  18. I M P O R T A N T E L E M E N T S
    T O C I
    * Version Control
    * Unit tests
    * Dependency Check

    View Slide

  19. C O N T I N U O U S
    D E L I V E R Y ( C D )
    Continuous Delivery (CD) is a software development
    practice in which continuous integration, automated
    testing, and automated deployment capabilities
    allow high-quality software to be developed and
    deployed rapidly, reliably and repeatedly with
    minimal manual overhead.

    View Slide

  20. C O N T I N U O U S
    D E L I V E R Y ( C D )
    CI Acceptance
    Testing Stage
    Production

    View Slide

  21. C O N T I N U O U S
    D E L I V E R Y ( C D )
    While continuous deployment may not be right for
    every company, continuous delivery is an absolute
    requirement.

    View Slide

  22. I M P O R T A N T E L E M E N T S
    T O C D
    * Ability to build, test and deploy
    * All development is done on a mainline
    * Consistent management deployment
    * Unstable CI “layer” is a sure recipe for
    failure.

    View Slide

  23. C O N T I N U O U S
    D E P L O Y M E N T ( C D )
    With Continuous Delivery your software is always
    release-ready, yet the timing of when to push it
    into production is a business decision, and so the
    final deployment is a manual step. With Continuous
    Deployment, any updated working version of the
    application is automatically pushed to production.

    View Slide

  24. C O N T I N U O U S
    D E P L O Y M E N T ( C D )
    CI Acceptance
    Testing Stage
    Production

    View Slide

  25. C O N T I N U O U S
    D E P L O Y M E N T ( C D )

    View Slide

  26. T O O L S

    View Slide

  27. D E M O

    View Slide

  28. S U M M A R Y
    * Continous Integration is must
    * Continous Delivery is essential
    * Continous Deployment is better to have
    * Faster * Better * Happier

    View Slide

  29. T H A N K Y O U !

    View Slide