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

Top Related