Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

From the sandbox to production

317 views

Published on

The development process is an exciting and challenging process, however sooner or later a product need to be rollout on production environment. Often a development team in this moment opens a wonderful and a new world of the Ops. In my story, I want to share a few tips how to roll out successfully your product.

Published in: Technology
  • Be the first to comment

From the sandbox to production

  1. 1. From the sandbox to production • Vadym Fedorov
  2. 2. Who am I? • Vadym Fedorov < vfedorov@softserveinc.com > • Role: Solutions Architect • Company: Softserve • Specialization: Development of the Enterprise Applications in the IT operations management segment. • Technologies and tools: .NET, Python…
  3. 3. From the sandbox to production 3 Development Sandbox Production environment • Project delivery challenges and reasons; • Dev and Ops collaboration best practices; • Project maturity model and quick project assessment; • “Infrastructure as code” and “prototype first” approaches.
  4. 4. Software Development Infrastructure Design Infrastructure Deployment Setup operations Acceptance testing Go to Live! Software delivery process 4 Development Team Operations Team Knowledge Transfer from DEV to OPS
  5. 5. What Dev expects in most case? 5
  6. 6. Knowledge transfer from DEV to OPS 6 What server configuration do you need? How many servers do you need? What network configuration is required? How about security? OPS DEV I haven't answers, but I need "Live” ASAP!!! Where is disaster recovery plan?
  7. 7. The reasons • Dev team doesn't knowignores fact that Ops is one of the main stakeholders; • The Dev and Ops teams have different success metrics and goals; • Lack of communication between the Dev and Ops teams; • Lack of the Ops experience in the Dev team; • There is a difference between development and target environment configurations.
  8. 8. Teams Collaboration Anti-Patterns Source: http://blog.matthewskelton.net/2013/10/22/what-team- structure-is-right-for-devops-to-flourish/
  9. 9. Painful point of the project without Ops experience • Fault detection and troubleshooting  Unclear error messages  Logs doesn’t contains enough data for troubleshooting  Application doesn’t have health-checks • Log management  Log entries doesn’t have a single format  Log format is machine readable  Log format where difficult to perform search • Application performance and availability monitoring; 9
  10. 10. Painful point of the project without Ops experience • Application scalability and support of the elastic environments; • Application behavior under the fault conditions; • Application recovery after the faults; • Application configuration management; • Capacity planning. 10
  11. 11. Non-stop battle: Angry Dev vs Ops DEV OPS
  12. 12. Collaboration best practices • There should be one, and only one, manager responsible for a product or feature development from A to Z. • The development and operational teams need to share common success indicators focused on the delivery result. • Close communication and collaboration between Dev and Ops team.
  13. 13. Software Development Infrastructure Design Infrastructure Deployment Setup operations Acceptance testing Go to Live! Software delivery process 13 Development Team Operations Team Knowledge Transfer from DEV to OPS
  14. 14. Software Development Infrastructure Design Infrastructure Deployment Setup operations Acceptance testing Go to Live! Adjusted Software delivery process 14 Development Team Operations Team Dev + Ops Produce knowledge
  15. 15. Teams Collaboration Types Source: http://blog.matthewskelton.net/2013/10/22/what-team- structure-is-right-for-devops-to-flourish/
  16. 16. Teams Collaboration Types Source: http://blog.matthewskelton.net/2013/10/22/what-team- structure-is-right-for-devops-to-flourish/
  17. 17. Teams Collaboration Types Source: http://blog.matthewskelton.net/2013/10/22/what-team- structure-is-right-for-devops-to-flourish/
  18. 18. Development best practices • Leverage virtualization benefits for DEV environment • Prototype target environment with Vagrant • Keep development, staging, and production as similar as possible • To apply an “infrastructure as code” approach • To automate quality control and acceptance testing
  19. 19. Quick assessment: Where we are? 19
  20. 20. Key indicator • Project Portability, i.e. an ability to move the project between different environments and teams. • Project Continuity ensures that a project can be successfully completed even if a team changes. • Time-to-market and cost requires control over your project development, since these are critical elements that directly affect revenue and your position in the market. So make sure you are using effective ways to optimize this business driver.
  21. 21. The Project Maturity Model
  22. 22. 22 Ad-hoc Defined Repeatable Managed Project Portability • Environments and configuration are different • Requires manual efforts • Environments rather closer to Prod than not. • Requires manual efforts • Environment close to Prod • There are manual operations • Environment close to Prod • There are manual operations Project Continuity • Documentation is often outdated if present at all • Launching a new team requires significant efforts • Documentation is up to date • Launching a new team requires significant effort • Difficult to keep environment updated • Documentation is up to date • Documentation is validated • Virtual Machines is up to date • Documentation and Infrastructure are code Time-to-market and cost High Satisfactory Good Low
  23. 23. “Infrastructure as code” approach or “prototype first” approach Virtual Machine Provisioner Scripts Vagrant Code Virtual Machine Provisioner Scripts Production Code Same OS, same configuration and same versions Ops or DevOps Dev Deploy
  24. 24. Tools that are good to know • Vagrant: https://docs.vagrantup.com/v2/ • Configuration Management and Provisioners:  Chef: https://www.chef.io/chef/  Puppet: https://puppetlabs.com/  Ansible: http://www.ansible.com/home • Log management and Monitoring  Newrelic: http://newrelic.com/  Loggly: https://www.loggly.com/  Logstash: https://www.elastic.co/products/logstash • Testing:  JMeter: http://jmeter.apache.org/  Selenium: http://www.seleniumhq.org/
  25. 25. Summary • Involve Ops Team to the Development process; • Keep development, staging, and production as similar as possible; • Prototype production environment locally; • Apply an “infrastructure as code” approach and automate all what is possible. 25
  26. 26. Thank you! US OFFICES EUROPE OFFICES Austin, TX Fort Myers, FL Lehi, UT Newport Beach, CA Waltham, MA Bulgaria Germany Netherlands Poland Russia Sweden Ukraine United Kingdom www.softserveinc.com

×