Continuous delivery in enterprise agile NCR 2014 New Delhi

Post on 06-May-2015

1.659 views 0 download

Transcript of Continuous delivery in enterprise agile NCR 2014 New Delhi

Continuous Delivery in Enterprise

anirudh bhatnagar@anirudh_bh

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

- 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!

Need of the hour!

FASTER, EFFICIENT, ERROR-FREE, AUTOMATED DELIVERY OF

SOFTWARE

Introducing Continuous Delivery

From Idea to Product

agile methodologies

From the beginning!

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

Source Control Management

Branching strategy and tools

Continuous Integration

Automated testing

Automated Functional and acceptance Testing.

But what about Release?

Definition of done

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

Early Feedback

Introduce Dev/QA/UAT environment early in the project

Automated Deployment

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.

Sample Jenkins Build pipeline

Provisioning and On demand Infrastructure

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

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."

Tools of the game

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.

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

Production

Deployment tool

Impediments

Silos, departments and Corporates

1 : Inside the team

The Division Wall!

The Dev world

Write CodeWrite Unit Test Cases

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

Developer vs IT Operations

Bridging the gap- devOps!

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!

Collaboration -> Best practices

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

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

Introducing Mr. DevOps

Mr. Sacha Noam Baron CohenDesignation : Senior DevOps Engineer

2. Outside the team

But, the Management?

The boss is always right!

The long wait for approvals...

Open source vs Proprietary!

Business Involvement

Case Study : Implementing Continuous Delivery for a big Retail Company

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

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

Delivery Components

Repositories and Release Management

Configuration Management ( Puppet)

Jenkins : Build Pipelines

Logging and Dashboard: Logstash, ElasticSearch with Kibana

Build Radiators

System Monitoring : Icinga

Continuous Delivery Maturity Model

picture courtesy : xebiaLabs

Thanks!