CircleCI
CodePipeline
VS
#circlecijp
HonMarkHunt
2019/03/05
JIKO SHO KAI.
Name ⇢ @HonMarkHunt
Company ⇢ BizReach
Job ⇢ Server Side Engineer
⇢ Scala, AWS
Community ⇢ #shinjukult
KonkiAnime ⇢ 盾の勇者の成り上がり
MAE OKI.(within 30sec)
前職
・CircleCI使ってた
・1と2両方触ってた
・オンプレ版も触ってた
MAE OKI.(within 30sec)
前職 転職
・CircleCI使ってた
・1と2両方触ってた
・オンプレ版も触ってた
・くそったれぇ
・転職したら

CIジェソキソスだった
MAE OKI.(within 30sec)
前職 転職 移行
・CircleCI使ってた
・1と2両方触ってた
・オンプレ版も触ってた
・くそったれぇ
・転職したら

CIジェソキソスだった
・CI移行した
・CircleCIか

       CodePipelineか悩んだ
MAE OKI.(within 30sec)
・全面的にAWSを利用していた(ECS, RDS)
・PRのテストにCedoBuildを使っていた
・(CircleCIは使っていたので違うの触りたかった..)
HIKAKU
1. Price
2. Runtime
3. Manage
4. Development
5. Burning your spirit
PRICE
・ContainerとParallelismの

従量課金
・用法用量で$0~$3150

・アクティブなpipeline1つにつき

$1.00(30日間無料)
・CodeBuild等他のAWSリソース

の課金が発生する
RUNTIME
ex) git cloneしてbuildしてdeployする
RUNTIME
←
←
←
git clone
build (Code Build)
Deploy (ECS)
RUNTIME
another instance
another instance
another instance
RUNTIME
RUNTIME
・CodePipelineは一つのJob内でも

Stage, Actionごとに別のVM上で実行される
・VM間のやり取りは全てS3にartifactを

配置して行われる
・別VMなので変数定義等は使用するたびに

宣言し直す必要がある
MANAGE
CodePipelineで使用できるaction provider
Source : AWS CodeCommit, ECR, S3, GitHub
Test : CodeBuild, DviceFarm, BlazeMeter,GhostInspectorUITesting, Jenkins,

Monitoring Runscope API
Dploy : CloudFormation, CodeDeploy, ElasticBeanstalk, ServiceCatalog, 

Alexa Skills kit, ECS, ECS(blue/green), S3
Build : CodeBuild, Jenkins
Another : lambda, Manual Approve
MANAGE
・CircleCIはyamlだけ管理すればOK
・CodePipelineは使用するActionProvider毎に

それぞれ管理する必要がある
・ex) CodeBuild -> yaml, Lambda -> serverless
・加えてCodePipelineそのものもTerraform等で

管理する必要がある
DEVELOPMENT
・2.0の大幅なimprove
・orbs
・非常に活発な開発
・UI大幅改善
・s3経由でプロジェクトのやり取りをし
た際にファイルのパーミッションを全て
ロストするなんとも言えないバグがある
が一向に(2年間)直されない
・https://forums.aws.amazon.com/
message.jspa?messageID=773245
・CodePipeline自体の開発は活発では
ない
BURNING YOUR SPIRIT
実際の現場では、

業務仕様や様々な制約により

なんだかよくわからないけど
最後に乗り越えないといけない壁が登場する
BURNING YOUR SPIRIT
⾎と汗と涙
(次見返してもよく理解できないワンライナー等)
BURNING YOUR SPIRIT
⾎と汗とLambda
(様々な雑用をするためのlambdaを作らないといけない)
(そしてそのLambdaをまた管理しないといけない)
MATOME
・CodePipelineは見た目ほど安くない
・Stage毎に別のVMで実行され、VM間のやり取りはS3が使われる
・最終奥義「shellで何とかする」ができない
・構成管理がかなりしんどい
・他のリソースの開発は進むがPipelineそのものの開発は早くない
・なぜか手間がかかる分、動くととても愛着がわく
・次の人生ではCircleCIを使う

CircleCI vs. CodePipeline