from sandbox to production by vadym fedorov
TRANSCRIPT
From Sandbox to Production
• Vadym Fedorov
Who am I?
• Vadym Fedorov < [email protected] >• Role: Solutions Architect• Company: SoftServe• Specialization: Development of the
Enterprise Applications in the IT operations management segment.• Technologies and tools: .NET, Python…
3
From sandbox to production
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
SoftwareDevelopment
Infrastructure Design
Infrastructure Deployment
Setup operations
Acceptance testing
Go to Live!
Software delivery processDevelopment Team
OperationsTeam
Knowledge Transfer from DEV to OPS
5
What Dev expects in most case?
6
Knowledge transfer from DEV to OPSWhat 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?
The reasons• Dev team doesn't know\ignores 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.
Teams Collaboration Anti-Patterns
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
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;
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.
Non-stop battle: Angry Dev vs Ops
DEV OPS
Release
Complaints
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
SoftwareDevelopment
Infrastructure Design
Infrastructure Deployment
Setup operations
Acceptance testing
Go to Live!
Software delivery processDevelopment Team
OperationsTeam
Knowledge Transfer from DEV to OPS
14
SoftwareDevelopment
Infrastructure Design
Infrastructure Deployment
Setup operations
Acceptance testing
Go to Live!
Adjusted Software delivery process
Development Team
OperationsTeam
Dev + OpsProduce knowledge
Teams Collaboration Types
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
Teams Collaboration Types
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
Teams Collaboration Types
Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
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
Quick assessment: Where we are?
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.
The Project Maturity Model
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
“Infrastructure as code” approach or “prototype first” approach
Virtual Machine
ProvisionerScripts
Vagrant
Code
Virtual Machine
ProvisionerScripts
Production
Code
Same OS, same configuration and same versions
Ops or DevOps
Dev
Deploy
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
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.
Thank you!
US OFFICES EUROPE OFFICESAustin, TXFort Myers, FLLehi, UTNewport Beach, CAWaltham, MA
BulgariaGermanyNetherlandsPolandRussia
SwedenUkraineUnited Kingdom
www.softserveinc.com