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. From 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.
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. 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.
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. 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
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.
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
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.
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. “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. 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.
25
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