Continuous delivery in enterprise agile NCR 2014 New Delhi

55
Continuous Delivery in Enterprise anirudh bhatnagar @anirudh_bh

Transcript of Continuous delivery in enterprise agile NCR 2014 New Delhi

Page 1: Continuous delivery in enterprise agile NCR 2014 New Delhi

Continuous Delivery in Enterprise

anirudh bhatnagar@anirudh_bh

Page 2: Continuous delivery in enterprise agile NCR 2014 New Delhi

Amazon’s web infrastructure guru James Hamilton uses Facebook’s recently released energy data to make an educated guess for how many servers

Facebook now has: potentially 180,000. That’s up from an estimated 30,000 in the winter of 2009, and 60,000 by the Summer of 2010.

google has more than one million servers

10 releases per day!

● 3 engineers● over 14 million users● no hardware● +100 instances on Amazon EC2

Page 3: Continuous delivery in enterprise agile NCR 2014 New Delhi

- competition - Reduce Time to Market - Increasing users and traffic. - Huge amount of servers on cloud. - Zero downtime. - Huge data - Cost!More Servers, More Releases, More Data!

Page 4: Continuous delivery in enterprise agile NCR 2014 New Delhi

Need of the hour!

FASTER, EFFICIENT, ERROR-FREE, AUTOMATED DELIVERY OF

SOFTWARE

Page 5: Continuous delivery in enterprise agile NCR 2014 New Delhi

Introducing Continuous Delivery

Page 6: Continuous delivery in enterprise agile NCR 2014 New Delhi

From Idea to Product

Page 7: Continuous delivery in enterprise agile NCR 2014 New Delhi

agile methodologies

Page 8: Continuous delivery in enterprise agile NCR 2014 New Delhi

From the beginning!

Clean testable code.Use of tools like ant, maven.Unit test coverage.Code Quality.

Page 9: Continuous delivery in enterprise agile NCR 2014 New Delhi

Source Control Management

Branching strategy and tools

Page 10: Continuous delivery in enterprise agile NCR 2014 New Delhi

Continuous Integration

Page 11: Continuous delivery in enterprise agile NCR 2014 New Delhi

Automated testing

Automated Functional and acceptance Testing.

Page 12: Continuous delivery in enterprise agile NCR 2014 New Delhi

But what about Release?

Page 13: Continuous delivery in enterprise agile NCR 2014 New Delhi

Definition of done

Committed and Compiled Unit TestedDeployed on QA/UATAutomated Functional Test for acceptance testing

Page 14: Continuous delivery in enterprise agile NCR 2014 New Delhi

Early Feedback

Introduce Dev/QA/UAT environment early in the project

Page 15: Continuous delivery in enterprise agile NCR 2014 New Delhi

Automated Deployment

Page 16: Continuous delivery in enterprise agile NCR 2014 New Delhi

Build pipelines

t makes every part of the process of building, deploying, testing, and releasing software visible to everybody involved, aiding collaboration.

Increases visibility of each step.Early feedback.Automate deploy and release any version to any environment.

Page 17: Continuous delivery in enterprise agile NCR 2014 New Delhi

Sample Jenkins Build pipeline

Page 18: Continuous delivery in enterprise agile NCR 2014 New Delhi

Provisioning and On demand Infrastructure

Page 19: Continuous delivery in enterprise agile NCR 2014 New Delhi

Configuration Management

● How soon can you write this script?● How maintainable is it?● Can you write test cases for it?● Can you have versioning?● Can you have reusability?● Risk????● Idempotency

Page 20: Continuous delivery in enterprise agile NCR 2014 New Delhi
Page 21: Continuous delivery in enterprise agile NCR 2014 New Delhi

Infrastructure as codeEvolving from Scripts to code

"a flexible model for reuse by enabling users to model infrastructure as code to easily and consistently configure and deploy infrastructure across any platform.

Create a blueprint of your infrastructure that enables you to build or rebuild, automatically in minutes or hours – not weeks or months."

Page 22: Continuous delivery in enterprise agile NCR 2014 New Delhi

Tools of the game

Page 23: Continuous delivery in enterprise agile NCR 2014 New Delhi

What is Chef?

Chef is a configuration management tool.Using its cookbooks and recipes we can provisions VMs, environments.

Community maintained code, almost everything is prebuilt (cookbooks and recipes), need not reinvent the wheel, just modify as per the need.

Page 24: Continuous delivery in enterprise agile NCR 2014 New Delhi

Cloud Support : EC2$ knife ec2 server create "role[Demo] -N "demo.example.net" -i ami -3e02f257

Page 25: Continuous delivery in enterprise agile NCR 2014 New Delhi

Production

Deployment tool

Page 26: Continuous delivery in enterprise agile NCR 2014 New Delhi

Impediments

Page 27: Continuous delivery in enterprise agile NCR 2014 New Delhi

Silos, departments and Corporates

Page 28: Continuous delivery in enterprise agile NCR 2014 New Delhi

1 : Inside the team

Page 29: Continuous delivery in enterprise agile NCR 2014 New Delhi

The Division Wall!

Page 30: Continuous delivery in enterprise agile NCR 2014 New Delhi

The Dev world

Write CodeWrite Unit Test Cases

Page 31: Continuous delivery in enterprise agile NCR 2014 New Delhi

The Ops WorldIT buyingInstallation of server hardware and OSConfiguration of servers, networks, storage, etc…Monitoring of serversRespond to outagesIT securityManaging phone systems, networkChange controlBackup and disaster recovery planningManage active directoryAsset tracking

Software deploymentsApplication support

Page 32: Continuous delivery in enterprise agile NCR 2014 New Delhi

Developer vs IT Operations

Page 33: Continuous delivery in enterprise agile NCR 2014 New Delhi

Bridging the gap- devOps!

Page 34: Continuous delivery in enterprise agile NCR 2014 New Delhi

its a culture... its a movement.. Started as devOps days in Belgium in 2009.

Developers interested in cloud, clusters, servers, deployments, databases learn to write code to maintain them.

Ops people evolve and start developing the code to maintain infrastructure.

And they are all in one same dev team trying to achieve one goal!

Page 35: Continuous delivery in enterprise agile NCR 2014 New Delhi

Collaboration -> Best practices

Ops learn from developers - > Coding principles,managed code, versioning.

Dev learn from Ops -> Insights of environment and deployments, their problems.

Page 36: Continuous delivery in enterprise agile NCR 2014 New Delhi

Introducing Mr. DevOps

Mr. Sacha Noam Baron CohenDesignation : Senior DevOps Engineer

Page 37: Continuous delivery in enterprise agile NCR 2014 New Delhi

2. Outside the team

Page 38: Continuous delivery in enterprise agile NCR 2014 New Delhi

But, the Management?

Page 39: Continuous delivery in enterprise agile NCR 2014 New Delhi

The boss is always right!

Page 40: Continuous delivery in enterprise agile NCR 2014 New Delhi

The long wait for approvals...

Page 41: Continuous delivery in enterprise agile NCR 2014 New Delhi

Open source vs Proprietary!

Page 42: Continuous delivery in enterprise agile NCR 2014 New Delhi

Business Involvement

Page 43: Continuous delivery in enterprise agile NCR 2014 New Delhi

Case Study : Implementing Continuous Delivery for a big Retail Company

Page 44: Continuous delivery in enterprise agile NCR 2014 New Delhi

Building a PAAS solution for service orchestration for services like Payment,Fraud Check,Fulfillment.

Technology : ESB MuleDeployed on : EC2 and Cloud hubBuild tools: Jenkins, Maven, JGit plugin,SCM : GitArtifact repository : NexusLogging : Elastic search , LogStash with Kibana System Monitoring : Icinga.Test Automation: -Functional Testing : JBehave + Selenium -Performance /Load Testing : JMeterConfiguration Management : Puppet

Page 45: Continuous delivery in enterprise agile NCR 2014 New Delhi

Team Structure1 Architect3 developers2 devOps1 Automation QA1 BA / Product Owner1 Scrum Master1 person from business acting as BA/support

Page 46: Continuous delivery in enterprise agile NCR 2014 New Delhi

Delivery Components

Page 47: Continuous delivery in enterprise agile NCR 2014 New Delhi

Repositories and Release Management

Page 48: Continuous delivery in enterprise agile NCR 2014 New Delhi

Configuration Management ( Puppet)

Page 49: Continuous delivery in enterprise agile NCR 2014 New Delhi

Jenkins : Build Pipelines

Page 50: Continuous delivery in enterprise agile NCR 2014 New Delhi

Logging and Dashboard: Logstash, ElasticSearch with Kibana

Page 51: Continuous delivery in enterprise agile NCR 2014 New Delhi

Build Radiators

Page 52: Continuous delivery in enterprise agile NCR 2014 New Delhi

System Monitoring : Icinga

Page 53: Continuous delivery in enterprise agile NCR 2014 New Delhi

Continuous Delivery Maturity Model

Page 54: Continuous delivery in enterprise agile NCR 2014 New Delhi

picture courtesy : xebiaLabs

Page 55: Continuous delivery in enterprise agile NCR 2014 New Delhi

Thanks!