SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
九州インフラ交流勉強会(Kixs)
Vol.006
CI/CDパイプラインを定着させる闘い
⾃⼰紹介
• ソリューションアーキテクト
• インフラエンジニア
• ひとり情シス
• ⽣まれも育ちも福岡(ただし⽥舎に限る)
• 好きなAWSサービス
- AWS Code Series
- Amazon CloudWatch
- AWS CloudFormation
内村 和博
内容についての諸注意
• 本資料は2017年12⽉時点の製品、サービス内容を記載しています。最新
の情報に関しては各種公式サイト、マニュアル等をご確認下さい。
• 本資料作成の際には⼗分注意しておりますが、内容に公式と相違がある場
合は公式を優先とさせていただきます。
内容についての諸注意
• だいぶWEBアプリケーション(フロントエンド)に近いエンジニア
• UI、アプリケーション、インフラの中間にいる⼈間
• しかも⽂系(経済学部経済学科 修了)
• 軽い気持ちで「こんな奴もいるんだな〜」程度に
CI/CD パイプライン

(の、おさらい)
CI/CD パイプライン
ProductionTestBuildSource
• ソースコード保管
• バージョン管理
• ブランチ管理
• コードコンパイル
• 単体テスト
• スタイルチェック
• 構⽂チェック
• コードメトリックス
• コンテナーイメージ⽣成
• 結合テスト
• ローディングテスト
• UIテスト
• 侵⼊テスト
• 運⽤環境へデプロイ
• レビュー
CI/CD パイプライン
ProductionTestBuildSource
継続的インテグレーション
継続的デリバリー
継続的デプロイメント
CI/CD パイプライン
ProductionTestBuildSource
•Git
•GitHub
•BitBucket
•Jenkins
•CircleCI
•TravisCI
•Maven
•Apache Ant
•Gradle
•Ghost Inspector
•Vaddy
•Capistrano
CI/CD パイプライン の恩恵
• 「確実な」システム化
- リリースプロセスの管理
• 「安全な」テスト
- 潜在的な問題を正しく検査
• 「迅速な」製品化
- ローンチ、コードの不具合
ただしい。実にただしい。教科書通り。
……が、現実はこう。
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive が終わる前に git hook 起動
• capistrano + Git → なんとなくデプロイメントを意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive (pull) が終わる前に次の git hook 起動
• capistrano + Git → なんとなくデプロイメントを意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive が終わる前に git hook 起動
• capistrano + Git → なんとなくデプロイメントを意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive が終わる前に git hook 起動
• capistrano + Git → なんとなくデプロイメントを意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive が終わる前に git hook 起動
• capistrano + Git → なんとなくデプロイメントを意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive が終わる前に git hook 起動
• capistrano + Git → なんとなくデプロイメントを意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
WEBアプリケーション、デプロイの変遷
• ファイルアップロード(プッシュ) → インタープリター⾔語の「罪と罰」
• rsync → 論外
• Git + git hook → git archive が終わる前に git hook 起動
• capistrano + Git → なんとなく CI を意識しだした
• capistrano + Git + Jenkins → なんとなく形が⾒えてきた
• AWS CodeDeploy → 未知との遭遇。属⼈化の排除。耐障害性。⼀元管理。
• AWS Code Serise → coming soon……
何か忘れてませんか?
Docker
• コンテナ型の最有⼒候補。
• でも、そもそも The Twelve-Factor App に準拠してないし。

(罪と罰)
• アプリケーション側の多⼤なるご協⼒が必要。
• 素敵なAWSマネージドサービス
- Amazon ECS
- AWS Beanstalk
Re:Invent 2017 release “Amazon ECS”
• AWS Fargate
- コンテナのデプロイを容易にするマネージドサービス。コンテナインスタンスの構築・管理・運⽤が不要。
必要なときに必要なだけ Docker コンテナを利⽤できる
- ECS の起動タイプ “FARGATE” を選択。 (旧式は ”EC2”)
- https://aws.amazon.com/jp/fargate/
• Amazon Elastic Container Service for Kubernetes(EKS)
- Kubernetesのコントロールプレーンをマネージド型で提供するサービス。
- 2018年にはFargateによるサポート。
- https://aws.amazon.com/jp/eks/
Re:Invent 2017 release “Amazon EC2”
• Launch Template
- インスタンス起動時に設定する項⽬をテンプレート化
- Key pair name や Network Type など頻繁に変更のない設定に?
• User Date + bash
で。
今⽇、実は kixs です。
infrastructure as a code
AWS インフラも
継続的デリバリー
AWS Code Series
• AWS CodeCommit
• AWS CodeBuild
• AWS CodePipeline
• AWS CodeDeploy
CI/CD パイプライン
ProductionTestBuildSource
• AWS CodeCommit
• Amazon S3
• AWS CodeBuild • AWS CodeDeploy
• AWS Elastic Beanstalk
• AWS OpsWorks
AWS CodePipeline
AWS インフラの継続的デリバリー
• AWS CodeCommit
• AWS CodeBuild
• AWS CodePipeline
• AWS CloudFormation
AWS インフラの CI/CD パイプライン
ProductionTestBuildSource
• AWS CodeCommit • AWS CodeBuild
• AWS CloudFormation
• AWS Lambda • AWS CloudFormation
AWS CodePipeline
Demo!
というか、何か忘れてませんか?
AWS CodeStar
いいんです……。まだ東京リージョンにGAしてないし……。
まとめ
まとめ
CI/CD パイプライン浸透には時間がかかる。

でも価値(恩恵)は⼗分にある。
インフラ(AWSリソース)もコード化。

i.e. CI/CD の対象。
- コードの保管、デバッグ、テスト、⼿動承認、デプロイ。
AWSマネージドサービス、素敵。
今後……
• infrastructure as a code(Web tire)の完成
• DevOps ⽂化の布教(普及)活動
• IoTデバイスへの継続的デプロイメント(エッジデプロイ)
- Amazon CloudFront and Lambda@Edge
- AWS Greengrass
• アプリケーションとインフラの間の⼈間
関連リソース
• AWS クラウドサービス活⽤資料集
‣ https://aws.amazon.com/jp/aws-jp-introduction/
• AWS Code Services Part 2

from “AWS Black Belt Online Seminar"
‣ https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-code-services-part-2
• AWS マネージドサービスで実現する CI/CD パイプライン

from “AWS Summit Tokyo 2017”
‣ https://d1.awsstatic.com/events/jp/2017/summit/slide/D4T2-6.pdf
• AWS Fargate
‣ https://aws.amazon.com/jp/fargate/
• Amazon EKS
‣ https://aws.amazon.com/jp/eks/
• kubernetes
‣ https://kubernetes.io/
• Launching an Instance from a Launch Template
‣ https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-launch-templates.html
• AWS CodePipelineを利⽤したネストされたAWS CloudFormationスタックの継続的デリバリー | Amazon Web Services ブログ
‣ https://aws.amazon.com/jp/blogs/news/continuous-delivery-of-nested-aws-cloudformation-stacks-using-aws-codepipeline/
• AT PRO クラウドダイレクトサービス
‣ http://www.qtnet.co.jp/business/network/cloud-direct/
ご清聴ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

Spark in small or middle scale data processing with Elasticsearch
Spark in small or middle scale data processing with ElasticsearchSpark in small or middle scale data processing with Elasticsearch
Spark in small or middle scale data processing with Elasticsearch
chibochibo
 

Was ist angesagt? (20)

Azure Load Testingを試してみた
Azure Load Testingを試してみたAzure Load Testingを試してみた
Azure Load Testingを試してみた
 
re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい
re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さいre:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい
re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
 
Serverless Ninja Warriors [panel]
Serverless Ninja Warriors [panel]Serverless Ninja Warriors [panel]
Serverless Ninja Warriors [panel]
 
VRディープ座談会 introduction ojima
VRディープ座談会 introduction ojimaVRディープ座談会 introduction ojima
VRディープ座談会 introduction ojima
 
Spark Streaming on AWS -S3からKinesisへ-
Spark Streaming on AWS -S3からKinesisへ-Spark Streaming on AWS -S3からKinesisへ-
Spark Streaming on AWS -S3からKinesisへ-
 
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuriバッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri
 
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介
 
AWS Batchとアップデートについて
AWS BatchとアップデートについてAWS Batchとアップデートについて
AWS Batchとアップデートについて
 
Building Scalable Application on the Cloud
Building Scalable Application on the CloudBuilding Scalable Application on the Cloud
Building Scalable Application on the Cloud
 
re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい(軽量版)
re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい(軽量版)re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい(軽量版)
re:Growth 2015 TOKYO keynote以外のアップデートのこと、時々でいいから...... 思い出して下さい(軽量版)
 
Spark in small or middle scale data processing with Elasticsearch
Spark in small or middle scale data processing with ElasticsearchSpark in small or middle scale data processing with Elasticsearch
Spark in small or middle scale data processing with Elasticsearch
 
サーバーレス・アーキテクチャ概要
サーバーレス・アーキテクチャ概要サーバーレス・アーキテクチャ概要
サーバーレス・アーキテクチャ概要
 
Storylineでデザインする心地よい会話体験
Storylineでデザインする心地よい会話体験Storylineでデザインする心地よい会話体験
Storylineでデザインする心地よい会話体験
 
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
 
Alexaスキルを作ろう
Alexaスキルを作ろうAlexaスキルを作ろう
Alexaスキルを作ろう
 
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
 
サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)
 

Ähnlich wie CI/CDパイプラインを定着させる闘い @九州インフラ交流勉強会(Kixs) Vol.006

20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告
真吾 吉田
 
実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン
Hiroyasu Suzuki
 

Ähnlich wie CI/CDパイプラインを定着させる闘い @九州インフラ交流勉強会(Kixs) Vol.006 (20)

20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告
 
Abyss: Behind The Scenes of LINE Web Service Distribution
Abyss: Behind The Scenes of LINE Web Service DistributionAbyss: Behind The Scenes of LINE Web Service Distribution
Abyss: Behind The Scenes of LINE Web Service Distribution
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう
 
Amazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep diveAmazon EC2 Container Service Deep dive
Amazon EC2 Container Service Deep dive
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
Zynga
ZyngaZynga
Zynga
 
Aws privte20110406 arai
Aws privte20110406 araiAws privte20110406 arai
Aws privte20110406 arai
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or ServerlessRunning Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
20170809 AWS code series
20170809 AWS code series20170809 AWS code series
20170809 AWS code series
 
実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン実践!AWSクラウドデザインパターン
実践!AWSクラウドデザインパターン
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
 
Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう! Docker on azure!進化していくcontainerを覗いてみよう!
Docker on azure!進化していくcontainerを覗いてみよう!
 
AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 - AWSクラウドデザインパターン - JEITA講演 -
AWSクラウドデザインパターン - JEITA講演 -
 
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
 
Observability, Service Mesh and Microservices
Observability, Service Mesh and MicroservicesObservability, Service Mesh and Microservices
Observability, Service Mesh and Microservices
 

Mehr von Kazuhiro Uchimura (7)

20201017 JAWS-UG Fukuoka AWS Storage Gateway
20201017 JAWS-UG Fukuoka AWS Storage Gateway20201017 JAWS-UG Fukuoka AWS Storage Gateway
20201017 JAWS-UG Fukuoka AWS Storage Gateway
 
20200528.jaws ug kyushu
20200528.jaws ug kyushu20200528.jaws ug kyushu
20200528.jaws ug kyushu
 
AWS Summit Tokyo 2019 - re:Mix refrain
AWS Summit Tokyo 2019 - re:Mix refrainAWS Summit Tokyo 2019 - re:Mix refrain
AWS Summit Tokyo 2019 - re:Mix refrain
 
SORACOM UG 九州 #9 LT
SORACOM UG 九州 #9 LTSORACOM UG 九州 #9 LT
SORACOM UG 九州 #9 LT
 
ちょっと JAWS Days に行ってきました from JAWS-UG福岡 vol.6
ちょっと JAWS Days に行ってきました from JAWS-UG福岡 vol.6ちょっと JAWS Days に行ってきました from JAWS-UG福岡 vol.6
ちょっと JAWS Days に行ってきました from JAWS-UG福岡 vol.6
 
Japan Backlog User Group in Fukuoka #4 LT1
Japan Backlog User Group in Fukuoka #4 LT1Japan Backlog User Group in Fukuoka #4 LT1
Japan Backlog User Group in Fukuoka #4 LT1
 
JBUG (福岡#3) - Backlogの機能を活用し尽くそう -
JBUG (福岡#3) - Backlogの機能を活用し尽くそう -JBUG (福岡#3) - Backlogの機能を活用し尽くそう -
JBUG (福岡#3) - Backlogの機能を活用し尽くそう -
 

CI/CDパイプラインを定着させる闘い @九州インフラ交流勉強会(Kixs) Vol.006