57
Keep Your Head in the Clouds Blackboard’s Transition from Enterprise to Cloud Software Through DevOps David Ashman Chief Architect, Cloud Architecture @davidbashman

DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Embed Size (px)

DESCRIPTION

Blackboard's Transition from Enterprise to Cloud Software through DevOps How do you implement DevOps in a software company that has 16 years of established culture and processes? What if this organization is the industry leader and has everything to lose by changing? Over the last two years, Blackboard has gone through an enormous change, from a company delivering enterprise software once every 18 months to one on the verge of delivering Cloud enabled education software through continuous deployment. My presentation will talk about the triumphs and challenges of taking a group entrenched in years of legacy to a new vision of faster delivery of high quality software.

Citation preview

Page 1: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Keep Your Head in the

Clouds Blackboard’s Transition from Enterprise to Cloud Software Through DevOps

David AshmanChief Architect, Cloud Architecture@davidbashman

Page 2: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 3: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 4: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 5: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 6: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 7: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● The industry leader in educational technology and services

● 17 years young● Privately held● $450M revenue at time of going private● Headquarters in Washington, DC

Page 8: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 9: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● 17 year old codebase with roots in Perl● Millions of lines of Java code (Hybrid Java/Perl for

many years)● 7 development/operations offices, worldwide● 700 people between development, testing and

operations (All products)● ~3000 virtual machines across 1000 clients in

hosting● ~8PB of content and data storage

Blackboard Learn

Page 10: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

We are a horse.

Page 11: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● 6+ month lead times● Technical debt● High update failure rates● Poor communication paths from development to

operations● Poor feedback loops from operations to

development

And like so many of you...

Page 12: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

But through the art of DevOps...

Page 13: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

We are a horse.

Page 14: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

We are a horse.better

^

Page 15: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Automation● Cloud Infrastructure● Culture

What changed?

Page 16: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Automation

Page 17: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

LOC

# of code commits

Problem

Page 18: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 19: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 20: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

24-36 Hours

Page 21: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Mike McGarr

Page 22: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 23: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

LOC

# of code commits

Problem

Page 24: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

LOC

Wat

# of code commits

Problem

Page 25: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

LOC

# of code commits

Page 26: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 27: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

15-30 Minutes24-36 Hours

Page 28: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 29: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

But wait... There’s more!Functional Acceptance Testing

Page 30: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Value

5 minutes

CreateTicket

Commit/Build/

Integrate

15 minutes

5 minutes

Problem!

Code Test SuiteAnalyze Failed Tests

4 hours 1 hour 1 hour

5 minutes

36hours

24 hours

70 hours total time

6 hours (value) = 9% Efficient

Waste (wait)

AssignTicket

15 minutes

6 hours

Page 31: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

DevelopmentTesting

(2-5 days)

Commit

TicketProject

Management

3-6+ days

Page 32: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

100s of Failures

60% script issues(invalid tests, out of sync with functionality)

30% data/environment issues(data left in the database or filesystem)

7% pre-existing issues

3% newly discovered issues

Page 33: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Problem

Page 34: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Elongated testing cycles (3+ months)● Longer time to market● Reduced visibility to our development team● Long delays between coding and fixing● Too much noise distracting us from product

improvements

The Problem

Page 35: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● TDD● Fully automated acceptance testing pipeline● < 30m acceptance test feedback● New testing approaches (Jasmine, Protractor,

RESTAssured)

Test Automation

6+ month lead time

1-2 week lead time

Page 36: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Cloud Infrastructure

Page 37: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

OperationsProduct Development

Development Test Production

!= !=

Page 38: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 39: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Snowflakes - No two environments were alike● Completely different deployment methods

o Manual development buildso Automated installs in testingo Gold master images in production

● Completely different deployment architectureso Windows development machineso Linux VMs in testingo Linux clusters in production

Deployment Environments

Page 40: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Development Operations

Page 41: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 42: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 43: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 44: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Everything, from the ground up, is automated.● Orchestration in code - stored in SCC, executed

in ALL deployment environments.● On demand provisioning for developers.

o Still develop on their laptops, but can now test in a real deployment environment.

Learn in the Cloud

Page 45: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● OpenStack in our data centers● Abstract cloud fabric to gain benefits in both

clouds● Centralized, standardized Chef automation● Increased visibility for development

o Monitoring, APM, statsd, centralized logging

BbCloud

Page 46: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Culture

Page 47: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 48: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

“QA is responsible for defining the testing strategy.”

“QA is responsible for checking quality when a feature is done.”

“Unit testing is not enough to verify a feature.”

Page 49: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

OperationsDevelopment

Page 50: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

Executive Buy-in

Page 51: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 52: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

X

Page 53: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Development teams deploying their production environments.

● Developers solving operational issues in production.

● Open feedback loops on operational issues.● Data-driven decisions based on that feedback.

What we’ve achieved

Page 54: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds
Page 55: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Understand the impact that cloud computing can have on DevOps even in an “enterprise” company.

● Understand the cost models comparing cloud computing and traditional hosting.

● Frame your pitch to the executive team to make material changes in your company culture.

I might be able to help...

Page 56: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

● Effective testing strategies for traditionally manual tests (UI, etc).

● Applying DevOps strategies for shipped-to-premise software.

I’d like to learn more about...

Page 57: DOES14 - David Ashman - Blackboard Learn - Keep Your Head in the Clouds

[email protected]

@davidbashman

Gene Kim
You are one smart dude. Thank you!!!!