Top Banner
PETER LESCHEV TEAM LEAD ATLASSIAN @PETERLESCHEV Build Engineering @ Atlassian: Providing CI / CD as a Service AWS Summit Sydney - April 2015
45

Providing CI / CD as a Service - AWS Summit Sydney April 2015

Jul 16, 2015

Download

Technology

Peter Leschev
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Providing CI / CD as a Service - AWS Summit Sydney April 2015

PETER LESCHEV • TEAM LEAD • ATLASSIAN • @PETERLESCHEV

Build Engineering @ Atlassian:Providing CI / CD as a Service

AWS Summit Sydney - April 2015

Page 2: Providing CI / CD as a Service - AWS Summit Sydney April 2015

S C A L I N G T H E B U I L D G R I D

I N T R O D U C T I O N

Introduction

AW S A D VA N TA G E S

F U T U R E S TAT E

Page 3: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Build platform & services used internally within

Atlassian to build, test & deliver

software

Page 4: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Developers expect a reliable infrastructure &

fast CI feedback

Page 5: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Build Engineering today @ Atlassian

• 10 Bamboo Servers• maven.atlassian.com / 6 Nexus instances • Monitoring - opsview / graphite / statsd

• 1000 build agents (own hardware + EC2 instances)• include SCM clients, JDKs, JVM build tools, databases,

headless browser testing, python builds, NodeJS, installers & more

• Maintain 20 AMIs of various build configurations• Nexus proxies

Page 6: Providing CI / CD as a Service - AWS Summit Sydney April 2015

3 years ago:

21kBuilds per month

Page 7: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Last month:

127kBuilds per month

Page 8: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Build Engineering today @ Atlassian

Page 9: Providing CI / CD as a Service - AWS Summit Sydney April 2015
Page 10: Providing CI / CD as a Service - AWS Summit Sydney April 2015

JIRA alone has

47kAutomated tests

Page 11: Providing CI / CD as a Service - AWS Summit Sydney April 2015

S C A L I N G T H E B U I L D G R I D

I N T R O D U C T I O N

Scaling the Build Grid

AW S A D VA N TA G E S

F U T U R E S TAT E

Page 12: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Build Agents

Page 13: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Own Hardware using KVM guests

+ EC2 instances

Page 14: Providing CI / CD as a Service - AWS Summit Sydney April 2015
Page 15: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Differences between KVM guests & elastic build agents

+ the need for

Functional Parity

Page 16: Providing CI / CD as a Service - AWS Summit Sydney April 2015

2 Problems

Page 17: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Problem 1: Network connectivity

differences

Page 18: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Solution: AWS Direct Connect + VPC enabled EC2

instances

Page 19: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Problem 2: Configuration

differences between KVM guests & elastic

build agents

Page 20: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Solution: Removing tech debt using

https://www.packer.io/ https://www.atlassian.com/software/bamboohttps://puppetlabs.com/ https://cukes.info/

Page 21: Providing CI / CD as a Service - AWS Summit Sydney April 2015

S C A L I N G T H E B U I L D G R I D

I N T R O D U C T I O N

AWS Advantages

AW S A D VA N TA G E S

F U T U R E S TAT E

Page 22: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Handle the waves of demand

Page 23: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Prices always decreasing Product range expanding

https://aws.amazon.com/blogs/aws/category/price-reduction/

Page 24: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Hardware procurement API + Credit Card

Page 25: Providing CI / CD as a Service - AWS Summit Sydney April 2015

‘Do Not Resuscitate’ order on existing

build agent hardware

Page 26: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Spot instances

Page 27: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Cheap!

Page 28: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Slower startup times

Page 29: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Not always available

Page 30: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Price Volatility

Page 31: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Expect Failure

Embrace It

Page 32: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Prebake at AMI burn time rather

than at EC2 instance startup

time

Page 33: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Faster startup time

Page 34: Providing CI / CD as a Service - AWS Summit Sydney April 2015

More reliable instance startup

(+ retry on failure!)

Page 35: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Pre-caching of git repositories, docker images

Page 36: Providing CI / CD as a Service - AWS Summit Sydney April 2015

“RequestLimitExceeded. The maximum request rate permitted by the Amazon

EC2 APIs has been exceeded for your account”

Page 37: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Handle failure, retry with backoff

& recover

Page 38: Providing CI / CD as a Service - AWS Summit Sydney April 2015

“We currently do not have sufficient m3.large capacity in

the Availability Zone you requested”

Page 39: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Multiple-AZ support in Bamboo 5.8

Page 40: Providing CI / CD as a Service - AWS Summit Sydney April 2015

“we are experiencing increased error rates and latencies for the

EC2 APIs”

Page 41: Providing CI / CD as a Service - AWS Summit Sydney April 2015

S C A L I N G T H E B U I L D G R I D

I N T R O D U C T I O N

Future State

AW S A D VA N TA G E S

F U T U R E S TAT E

Page 42: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Moving all Build Eng Infra to AWS

Page 43: Providing CI / CD as a Service - AWS Summit Sydney April 2015

EC2 to ECS for build agents

Page 44: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Come help us!

Page 45: Providing CI / CD as a Service - AWS Summit Sydney April 2015

Thank you!

PETER LESCHEV • TEAM LEAD • ATLASSIAN • @PETER LESCHEV