Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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
  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
  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
  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.
  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
  6. W H A T I S D E V E

    L O P E R D R E A M ?
  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
  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
  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
  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
  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
  12. C O N T I N U O U S

    D E P L O Y M E N T
  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
  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%
  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.
  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.
  17. C O N T I N U O U S

    I N T E G R A T I O N ( C I )
  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
  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.
  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
  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.
  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.
  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.
  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
  25. C O N T I N U O U S

    D E P L O Y M E N T ( C D )
  26. S U M M A R Y * Continous Integration

    is must * Continous Delivery is essential * Continous Deployment is better to have * Faster * Better * Happier