33
Presented By: Date: Cost Efficient, Auto Scaling Continuous Integration with Amazon AWS Cloud Mateusz Zając @ Software Engineer SMART 2015-10-18

Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Embed Size (px)

Citation preview

Page 1: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Presented By: Date:

Cost Efficient, Auto Scaling Continuous Integration with Amazon AWS Cloud

Mateusz Zając @ Software Engineer SMART

2015-10-18

Page 2: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Introduction

Mateusz Zajac | Software Engineer | Kainos | DD: +48 58 333 71 42 | Skype: [email protected]

Page 3: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Introduction

Page 4: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Few Words About Continuous Integration

Page 5: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Few Words About Continuous Integration

Page 6: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Few Words About Continuous Integration

https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software

Page 7: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Few Words About Continuous Integration

https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software

Page 8: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 9: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 10: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 11: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 12: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 13: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Auto Scaling Concept

Page 14: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Table of Content How To

Creating Amazon AWS instance

Installing TeamCity

Basic TeamCity Configuration

Creating Agents

Scaling Agents

Conclusions

Page 15: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Creating Amazon AWS instance

Amazon offers 750h of free t2.micro instace so you can prototype yourself! I encourage you!

Once you setup your key pair for login and Security groups you are ready to setup the instance with Team City.Pre requisites:Unzip, java jdk7

Page 16: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Installing TeamCity

$ sudo apt-get install openjdk-7-jdk

Login to the newly create AWS instance

Download TC from https://www.jetbrains.com/teamcity/download/

$ tar xvzf TeamCity-9.1.3.tar.gz$ ./TeamCity/bin/runAll.sh start

Go to the <serverip/domain>:8111 and configure your administrator account

Job done

Page 17: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Basic TeamCity Configuration

Page 18: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Creating Agents

Once you setup your key pair for login and Security groups you are ready to setup the instance with Team City.Pre requisites:Unzip, java jdk7

Download the zip file to the agent. Unzip it

$ unzip buildAgent.zip$ chmod +x ./bin/agent.sh start

Page 19: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Creating AgentsConfigure the build.properties for the agent

$ cp ./conf/buildAgent.dist.properties ./conf/buildAgent.properties$ vim ./conf/buildAgent.properties

Setup the serverURL with your TC Web App addressAdd agent to boot

$ vim /etc/rc.local

Add a line:<path to where you unpacked zip>/bin/agent.sh start

Page 20: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Scaling Agents

Page 21: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Scaling Agents

Page 22: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Scaling AgentsFill up the queue with dummy project runs

Page 23: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Conclusions

-50%

Page 24: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Further down the road

On Demand vs. Spot Instances

FIGHT!

Page 25: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Further down the road

m3.xlarge 4 13 15 2 x 40 SSD $0.266 per Hour

vCPU ECU Memory (GiB)

Instance Storage

(GB)

Linux/UNIX

Usage

Page 26: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Further down the road

Page 27: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Further down the road

Vs. $0.266

Page 28: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Conclusions

-50%

Page 29: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Conclusions

-84%

Page 30: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Spot InstancesAmazon EC2 Spot InstancesAmazon EC2 Spot instances are spare EC2 instances that you can bid on to run your cloud computing applications. Since Spot instances are often available at a lower price, you can significantly reduce the cost of running your applications, grow your application’s compute capacity and throughput for the same budget, and enable new types of cloud computing applications.BenefitsGet the Best Value for Amazon EC2 CapacitySpot instances run when your bid price exceeds the Spot price, and provide the reliability, security, performance, control, and elasticity of Amazon EC2, at low market-driven prices.

Reduce Operating CostsReduce your operating costs by up to 50-90% with Spot, compared to On-Demand instances. To see the current prices, visit the Spot Pricing page.

Improve Application ThroughputYou can run and scale applications such as stateless web services, image rendering, big data analytics and massively parallel computations on Spot instances. Since Spot instances typically costs 50-90% less, you can increase your compute capacity by 2-10x within the same budget.

Page 31: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 32: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Motivation

Page 33: Mateusz Zając - Continuous Integration i jej skalowalność w oparciu o TeamCity w połączeniu z Amazon AWS Cloud

Q&A & Thank you