26
From Sandbox to Production Vadym Fedorov

From Sandbox to Production by Vadym Fedorov

Embed Size (px)

Citation preview

Page 1: From Sandbox to Production by Vadym Fedorov

From Sandbox to Production

• Vadym Fedorov

Page 2: From Sandbox to Production by 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…

Page 3: From Sandbox to Production by Vadym Fedorov

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.

Page 4: From Sandbox to Production by Vadym Fedorov

4

SoftwareDevelopment

Infrastructure Design

Infrastructure Deployment

Setup operations

Acceptance testing

Go to Live!

Software delivery processDevelopment Team

OperationsTeam

Knowledge Transfer from DEV to OPS

Page 5: From Sandbox to Production by Vadym Fedorov

5

What Dev expects in most case?

Page 6: From Sandbox to Production by Vadym Fedorov

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?

Page 7: From Sandbox to Production by Vadym Fedorov

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.

Page 8: From Sandbox to Production by Vadym Fedorov

Teams Collaboration Anti-Patterns

Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/

Page 9: From Sandbox to Production by Vadym Fedorov

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;

Page 10: From Sandbox to Production by Vadym Fedorov

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.

Page 11: From Sandbox to Production by Vadym Fedorov

Non-stop battle: Angry Dev vs Ops

DEV OPS

Release

Complaints

Page 12: From Sandbox to Production by Vadym Fedorov

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.

Page 13: From Sandbox to Production by Vadym Fedorov

13

SoftwareDevelopment

Infrastructure Design

Infrastructure Deployment

Setup operations

Acceptance testing

Go to Live!

Software delivery processDevelopment Team

OperationsTeam

Knowledge Transfer from DEV to OPS

Page 14: From Sandbox to Production by Vadym Fedorov

14

SoftwareDevelopment

Infrastructure Design

Infrastructure Deployment

Setup operations

Acceptance testing

Go to Live!

Adjusted Software delivery process

Development Team

OperationsTeam

Dev + OpsProduce knowledge

Page 15: From Sandbox to Production by Vadym Fedorov

Teams Collaboration Types

Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/

Page 16: From Sandbox to Production by Vadym Fedorov

Teams Collaboration Types

Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/

Page 17: From Sandbox to Production by Vadym Fedorov

Teams Collaboration Types

Source: http://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/

Page 18: From Sandbox to Production by Vadym Fedorov

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

Page 19: From Sandbox to Production by Vadym Fedorov

19

Quick assessment: Where we are?

Page 20: From Sandbox to Production by Vadym Fedorov

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.

Page 21: From Sandbox to Production by Vadym Fedorov

The Project Maturity Model

Page 22: From Sandbox to Production by Vadym Fedorov

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

Page 23: From Sandbox to Production by Vadym Fedorov

“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

Page 24: From Sandbox to Production by Vadym Fedorov

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/

Page 25: From Sandbox to Production by Vadym Fedorov

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.

Page 26: From Sandbox to Production by Vadym Fedorov

Thank you!

US OFFICES EUROPE OFFICESAustin, TXFort Myers, FLLehi, UTNewport Beach, CAWaltham, MA

BulgariaGermanyNetherlandsPolandRussia

SwedenUkraineUnited Kingdom

www.softserveinc.com