container technology as success factor to ci/cd

25
All material herein © 2005 2016 Agoda group of companies. All rights reserved. AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd. Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential. 1 Container Technology as Success Factor to CI/CD Environment At Agoda 22 September 2016 Mahasak Pijittum

Upload: others

Post on 09-Feb-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

1

Container Technology as Success

Factor to CI/CD Environment At Agoda

22 September 2016

Mahasak Pijittum

Page 2: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

2

Contents

• Agoda at a glance

• Fun Facts

• Technology Stack

• CI/CD at Agoda

• Container at Agoda

• Agoda Automation Journey

Page 3: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

3

Agoda at a glance

Our history

• Established in 2005 in

Bangkok

• Founded by Michael

Kenny and Rob

Rosenstein

• Acquired by the

Priceline Group in

2007

Our Presence

• Present in over 40

locations in 5

continents

• Home to >2,300

employees of >60

nationalities

Our Partners

• 140k direct

accommodation partners

• >600k additional

accommodation partners

through shared inventory

with sister cos

• Additional marketing

partners e.g. airlines

and banks

Our Customers• Over 4M unique

visitors/day

• Over 21M registered

Agoda members

Our Product• Available via

Website and Mobile

Application for iOS

and Android

Page 4: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

4

At Agoda …

“Our goal is to create the most customer

centric hotel product on the planet”

Page 5: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

5

Why is customer experience important?

Page 6: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

6

What we do ?

Build

Measure

Learn

Feedback

PIVOT/PERSERVERE

EXPERIMENT

ANALYSE

Page 7: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

7

Contents

• Agoda at a glance

• Fun Facts

• Technology Stack

• CI/CD at Agoda

• Container at Agoda

• Agoda Automation Journey

Page 8: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

8

Fun Facts

Builds

• 2,000 build per days, 11500 build per weeks and 35,000 build per month

Tests

• Up to 12500+ tests per build (… and increase every day)

Release

• Release Daily : up to 4 release a days (Plan to 20 Release per day)

Page 9: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

9

Contents

• Agoda at a glance

• Fun Facts

• Technology Stack

• CI/CD at Agoda

• Container at Agoda

• Agoda Automation Journey

Page 10: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

10

Technology Stack

Language

• C#, Objective C, Android, Java, Scala, Python, Go, JavaScript

OS

• Windows, Linux, Android, iOS

Datastore

• Cassandra, SQL Server, Hadoop

Infrastructure/Virtualization

• OpenStack, Hyper-V, Azure, Docker

Page 11: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

11

Challenges

12,500 tests take 3-4 hours of test timeFast

Rich environment and features preparationScalable

Code-To-Production repeatable and constantReproducible

Compliance, PCI etc.Secure

Page 12: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

12

Contents

• Agoda at a glance

• Fun Facts

• Technology Stack

• CI/CD at Agoda

• Container at Agoda

• Agoda Automation Journey

Page 13: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

13

Continuous Integration At Agoda

Local

Environment

Local

Environment

Local

Environment

Feature

Branch

Feature

Branch

Feature

Branch

Code

Commit

Code

Commit

Code

Commit

Code

Review

Pull

Request

Code

Review

CI ServerBuild

AgentDeploy

Live

Master

Branch

Develop

Branch

Code

Review

Release

Trigger Unit Test

UI Test*

Coverage

Test

Build*

Package*

Prelive

C-Spider

Page 14: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

14

Contents

• Agoda at a glance

• Fun Facts

• Technology Stack

• CI/CD at Agoda

• Container at Agoda

• Agoda Automation Journey

Page 15: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

15

Container At Agoda

Local

Environment

Local

Environment

Local

Environment

Feature

Branch

Feature

Branch

Feature

Branch

Code

Commit

Code

Commit

Code

Commit

Code

Review

Pull

Request

Code

Review

CI ServerBuild

AgentDeploy

Live

Master

Branch

Develop

Branch

Code

Review

Release

Trigger

Build*

Build Feature as Container

• Android => Update 4 last year

• SBT/Scala

Benefit

• Easy to scale as container

• No dependency needed on

build agent

• Fast startup

• No state inside Container

Unit Test

UI Test*

Coverage

Test

Build*

Package*

Prelive

C-Spider

Page 16: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

16

Build capability as Container

Build

Agent ADocker

Docker Registry

Android N

Android M

Android L

Android K

Scala 2.11.8

Scala 2.10.x

Scala 2.9.x

Build

Agent BDocker

Build

Agent CDocker

Build

Agent DDocker

Android N

Scala 2.11.8

Android M

Scala 2.10.x

Pull image

Pull image

Pull image

Pull image

Page 17: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

17

Container At Agoda

Local

Environment

Local

Environment

Local

Environment

Feature

Branch

Feature

Branch

Feature

Branch

Code

Commit

Code

Commit

Code

Commit

Code

Review

Pull

Request

Code

Review

CI ServerBuild

Agent

Unit Test

UI Test*

Coverage

Test

Build*

Package*

Deploy

Prelive

Live

Master

Branch

Develop

Branch

Code

Review

Release

Trigger

UI Test*

Scalable UI Test Farm

• Scalable Selenium Farm

• Multiple browser support

• Fast to spawn and remove

browser nodes

• No state of browser

• Better resource allocation

• Easy to maintenance

C-Spider

Page 18: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

18

Test capability as Container

Build

Agent A

Selenium Grid

API

Docker Registry

Selenium Hub

2.53

Selenium Hub

2.48

Selenium

Node 2.53

Chrome

Selenium

Node 2.53

Firefox

Build

Agent BBuild

Agent CBuild

Agent D

Pull image Selenium

Node 2.48

Chrome

Selenium

Node 2.48

Firefox

Overlay Network

Hub A Hub B Hub C Hub D

Node A-1

Node B-1

Node C-1

Node B-2

Node C-2

Node D-1

Node C-3

Node D-2

Node A-2

Node B-3

Node A-3

Node D-3

Pull imageSpawn Grid

Request Grid For UI Acceptance Test

Page 19: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

19

Container At Agoda

Local

Environment

Local

Environment

Local

Environment

Feature

Branch

Feature

Branch

Feature

Branch

Code

Commit

Code

Commit

Code

Commit

Code

Review

Pull

Request

Code

Review

CI ServerBuild

Agent

Unit Test

UI Test*

Coverage

Test

Build*

Package*

Deploy

Prelive

Live

Master

Branch

Develop

Branch

Code

Review

Release

Trigger

Package*

Dockerized application

• Avoid dependency and

environment problem

• Create shippable package to

run inside container

• Fast to ship & deploy

C-Spider

Page 20: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

20

Product package as Container

Build

AgentPackage*

Produce Docker

Build Step

Product

Dependency

Bundle

Build

ImageDocker

Registry

Push

Image

Docker Base

Image

Pull Image

Page 21: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

21

Contents

• Agoda at a glance

• Fun Facts

• Technology Stack

• CI/CD at Agoda

• Container at Agoda

• Agoda Automation Journey

Page 22: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

22

Agoda Automation Journey

Source: Agoda TeamCity Statistics

7001000

1400

2000

May 2016 June 2016 July 2016 August 2016

Build per days

Page 23: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

23

Agoda Automation Journey

Developer Happiness

@#@$#&^&#$

Time

Start a new CI/CD System

Add UI

Acceptance

test to part of

builds

Switch to

GitHub Enterprise

Selenium Grid VM

Selenium Grid

Container with

Swarm cluster

Switch to

Pull Request

& Build

Adopt

Container

features in

build system

Optimize CI

build time

Page 24: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

24

#AgodaDevOps

#WeAreHiring

Page 25: Container Technology as Success Factor to CI/CD

All material herein © 2005 – 2016 Agoda group of companies. All rights reserved.

AGODA ® is a registered trademark of AGIP LLC, used under license by Agoda Company Pte. Ltd.

Agoda is part of The Priceline Group (NASDAQ:PCLN). Internal use only. Proprietary & confidential.

25

Thanks

Questions?