SlideShare a Scribd company logo
Modernize deployment pipeline
Sep 23, 2018
Takizawa Takeshi
Ecosystem Services Dept.
Rakuten, Inc.
2
Agenda
• Self introduction
• Rakuten services
• Membership Section
• Issues
• Solutions
• Results
3
Self introduction
Name: Takeshi Takizawa
GitHub ID: TakiTake
Company: Rakuten, Inc.
Role: DevOps Team Leader
(Jenkins Ojisan)
4
Rakuten services
Serving users worldwide through businesses based in 29 countries and regions.
Our major services available globally. (09/23/2018)
https://global.rakuten.com/corp/about/
5
Membership section’s role and responsibility
Rakuten Group services have more than 1.2 billion members.
Membership provides Identity and Access Management (IAM) functions for Rakuten Group.
Rakuten Ichiba login page (09/20/2018)
6
Membership section’s role and responsibility
Rakuten Group services have more than 1.2 billion members.
Membership provides Identity and Access Management (IAM) functions for Rakuten Group.
Rakuten Ichiba top page (09/20/2018)
7
Platform
Migrating from Physical and VM to the Container (Kubernetes)
Most of the servers are existing in Rakuten Datacenter.
Migrating
Physical / VM
Container
8
Deployment Pipeline
Chain Jenkins jobs with Parameterized Trigger Plugin.
Over 600 deployment pipelines are existing.
9
Chain Jenkins jobs with Parameterized Trigger Plugin.
Over 600 deployment pipelines are existing.
Build APP
Prepare
config files
Build
Docker
container
Analyze
vulnerability
Deploy to the Kubernetes
Deployment Pipeline
10
Deployment Pipeline
Different Jobs per application
Same # as (application * ENV)
Chain Jenkins jobs with Parameterized Trigger Plugin.
Over 600 deployment pipelines are existing.
11
Deployment Pipeline
Common Job
Only 1 Job
Chain Jenkins jobs with Parameterized Trigger Plugin.
Over 600 deployment pipelines are existing.
12
Environment
Approximately 100 DEV and QA ENGs share the fixed environments.
Developer1
ENV1
ENV2
ENV3
Developer2
Developer3
QA1
13
Issue 1
Maintenance cost of the pipeline is high.
Jenkins Jobs are tightly coupled to each other
14
Issue 1
Maintenance cost of the pipeline is high.
Hard to modify Job config via UI one by one
15
Solution 1
Migrate Jenkins Job from Freestyle to Pipeline.
16
Solution 1 – Step 1
Migrate Jenkins Job from Freestyle to Pipeline.
build_app.sh
Move hardcoded steps from Job to script file.
17
Solution 1 – Step 2
Call scripted steps from wrapper function.
Register the functions as a Global Pipeline Library.
vars/buildApp.groovy
18
Solution 1 – Step 3
Call wrapper function from Jenkinsfile which existing in each APP repository.
Jenkinsfile (sample)
19
Issue 2
Lack of the environment for Development and QA.
Developer1
ENV1
ENV2
ENV3
Developer2
Developer3
QA1
20
Issue 2
Lack of the environment for Development and QA.
Developer1
ENV1
ENV2
ENV3
Developer2
Developer3
QA1
Waiting!!
21
Solution 2
Control environment creation with Multibranch Pipeline.
22
Solution 2 – Step 1
Create new branch then new pipeline is also created automatically.
Developer/QA
my-branch ENV
feature/abc ENV
hotfix/xyz ENV
my-branch
23
Solution 2 – Step 2
Use wildcard DNS record, e.g. *.id.rakuten.co.jp.
Developer/QA
DNS Server
Ingress
(Reverse Proxy)
→ my-branch.id.rakuten.co.jp
← Ingress IP
1.
2. my-branch.id.rakuten.co.jp
24
Solution 2 – Step 3
Use domain mapping in the Ingress.
Developer/QA
DNS Server
Ingress
(Reverse Proxy)
my-branch ENV
feature/abc ENV
hotfix/xyz ENV
1.
2.
3. my-branch.id.rakuten.co.jp
25
Results
• Maintenance cost of the pipeline is high
=> Pipeline as Code
• Lack of the environment for Development and QA
=> Multibranch Pipeline
Tip: You’d better concentrate on controlling the flow to keep portability.
Tip: You’d better delete the ENV daily or weekly to use server resource efficiently.
26
Thank you!
takeshi.takizawa@rakuten.com

More Related Content

What's hot

MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
Jitendra Bafna
 
Ruby on Rails Intro
Ruby on Rails IntroRuby on Rails Intro
Ruby on Rails Intro
Truong Vo
 
SAP Release Management Auotmation
SAP Release Management AuotmationSAP Release Management Auotmation
SAP Release Management Auotmation
Dan McGrann
 
Flowable What´s coming next?
Flowable What´s coming next?Flowable What´s coming next?
Flowable What´s coming next?
Flowable
 
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHubMuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
Alfonso Martino
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CD
Matteo Di Carlo
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
Mikhail Melnik
 
Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15
Akshata Sawant
 
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
Jitendra Bafna
 
Mule soft meetups-24012020
Mule soft meetups-24012020Mule soft meetups-24012020
Mule soft meetups-24012020
Pablo Bellissimo
 
Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1
Wojtek Maciejczyk
 
Lesson Learned: Transforming from ClearCase to Git
Lesson Learned: Transforming from ClearCase to GitLesson Learned: Transforming from ClearCase to Git
Lesson Learned: Transforming from ClearCase to Git
Noa Harel
 
Git development workflow
Git development workflowGit development workflow
Git development workflow
Sankar Suda
 
Milano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support ModelsMilano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support Models
Gonzalo Marcos Ansoain
 
MDID Special Interest Group Meeting
MDID Special Interest Group MeetingMDID Special Interest Group Meeting
MDID Special Interest Group Meeting
Visual Resources Association
 
Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow
Roman Pickl
 
How to use Git Branch
How to use Git BranchHow to use Git Branch
How to use Git Branch
Phuoc Nguyen
 
Continuous delivery with jenkins pipelines @devopsdays cairo
Continuous delivery with jenkins pipelines  @devopsdays cairoContinuous delivery with jenkins pipelines  @devopsdays cairo
Continuous delivery with jenkins pipelines @devopsdays cairo
Roman Pickl
 
#1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva #1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva
Maksym Dovgopolyi, PMP
 
MuleSoft Meetup Roma - CloudHub Networking Stategies
MuleSoft Meetup Roma -  CloudHub Networking StategiesMuleSoft Meetup Roma -  CloudHub Networking Stategies
MuleSoft Meetup Roma - CloudHub Networking Stategies
Alfonso Martino
 

What's hot (20)

MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
MuleSoft Surat Virtual Meetup#7 - JSON Logger and Common Error Handling With ...
 
Ruby on Rails Intro
Ruby on Rails IntroRuby on Rails Intro
Ruby on Rails Intro
 
SAP Release Management Auotmation
SAP Release Management AuotmationSAP Release Management Auotmation
SAP Release Management Auotmation
 
Flowable What´s coming next?
Flowable What´s coming next?Flowable What´s coming next?
Flowable What´s coming next?
 
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHubMuleSoft Meetup Roma - Processi di Automazione su CloudHub
MuleSoft Meetup Roma - Processi di Automazione su CloudHub
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CD
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15Mumbai MuleSoft Meetup #15
Mumbai MuleSoft Meetup #15
 
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
MuleSoft Surat Virtual Meetup#6 - MuleSoft API Led Connectivity, SEDA and MUn...
 
Mule soft meetups-24012020
Mule soft meetups-24012020Mule soft meetups-24012020
Mule soft meetups-24012020
 
Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1Cracow MuleSoft Meetup #1
Cracow MuleSoft Meetup #1
 
Lesson Learned: Transforming from ClearCase to Git
Lesson Learned: Transforming from ClearCase to GitLesson Learned: Transforming from ClearCase to Git
Lesson Learned: Transforming from ClearCase to Git
 
Git development workflow
Git development workflowGit development workflow
Git development workflow
 
Milano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support ModelsMilano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support Models
 
MDID Special Interest Group Meeting
MDID Special Interest Group MeetingMDID Special Interest Group Meeting
MDID Special Interest Group Meeting
 
Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow Continuous delivery with jenkins pipelines @devops pro moscow
Continuous delivery with jenkins pipelines @devops pro moscow
 
How to use Git Branch
How to use Git BranchHow to use Git Branch
How to use Git Branch
 
Continuous delivery with jenkins pipelines @devopsdays cairo
Continuous delivery with jenkins pipelines  @devopsdays cairoContinuous delivery with jenkins pipelines  @devopsdays cairo
Continuous delivery with jenkins pipelines @devopsdays cairo
 
#1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva #1 MuleSoft Meetup in Geneva
#1 MuleSoft Meetup in Geneva
 
MuleSoft Meetup Roma - CloudHub Networking Stategies
MuleSoft Meetup Roma -  CloudHub Networking StategiesMuleSoft Meetup Roma -  CloudHub Networking Stategies
MuleSoft Meetup Roma - CloudHub Networking Stategies
 

Similar to Modernize deployment pipeline

Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
Vishnu Kannan
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
Pravat Sutar
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
Dejan Vukmirovic
 
Building our Component Library
Building our Component LibraryBuilding our Component Library
Building our Component Library
Clement Ho
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in React
Talentica Software
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
Axway
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
Kevin Sutter
 
React 18: New Features & Innovations
React 18: New Features & InnovationsReact 18: New Features & Innovations
React 18: New Features & Innovations
BOSC Tech Labs
 
Jenkins2 - Coding Continuous Delivery Pipelines
Jenkins2 - Coding Continuous Delivery PipelinesJenkins2 - Coding Continuous Delivery Pipelines
Jenkins2 - Coding Continuous Delivery Pipelines
Brent Laster
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
Serena Software
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Weaveworks
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
Larry Cai
 
Jira for DevOps - Loves Cloud
Jira for DevOps - Loves CloudJira for DevOps - Loves Cloud
Jira for DevOps - Loves Cloud
Loves Cloud
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's view
Laurynas Biveinis
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java Developers
Red Hat Developers
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers
Rafael Benevides
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
Weaveworks
 
Devops - Microservice and Kubernetes
Devops - Microservice and KubernetesDevops - Microservice and Kubernetes
Devops - Microservice and Kubernetes
NodeXperts
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
How To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptxHow To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptx
BOSC Tech Labs
 

Similar to Modernize deployment pipeline (20)

Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
 
Automating the Quality
Automating the QualityAutomating the Quality
Automating the Quality
 
Building our Component Library
Building our Component LibraryBuilding our Component Library
Building our Component Library
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in React
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
 
React 18: New Features & Innovations
React 18: New Features & InnovationsReact 18: New Features & Innovations
React 18: New Features & Innovations
 
Jenkins2 - Coding Continuous Delivery Pipelines
Jenkins2 - Coding Continuous Delivery PipelinesJenkins2 - Coding Continuous Delivery Pipelines
Jenkins2 - Coding Continuous Delivery Pipelines
 
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF AdministratorThe Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
The Top 5 Practices of a Highly Successful ChangeMan ZMF Administrator
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
Jira for DevOps - Loves Cloud
Jira for DevOps - Loves CloudJira for DevOps - Loves Cloud
Jira for DevOps - Loves Cloud
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's view
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java Developers
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
Devops - Microservice and Kubernetes
Devops - Microservice and KubernetesDevops - Microservice and Kubernetes
Devops - Microservice and Kubernetes
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
How To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptxHow To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptx
 

Recently uploaded

Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 

Recently uploaded (20)

Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 

Modernize deployment pipeline

  • 1. Modernize deployment pipeline Sep 23, 2018 Takizawa Takeshi Ecosystem Services Dept. Rakuten, Inc.
  • 2. 2 Agenda • Self introduction • Rakuten services • Membership Section • Issues • Solutions • Results
  • 3. 3 Self introduction Name: Takeshi Takizawa GitHub ID: TakiTake Company: Rakuten, Inc. Role: DevOps Team Leader (Jenkins Ojisan)
  • 4. 4 Rakuten services Serving users worldwide through businesses based in 29 countries and regions. Our major services available globally. (09/23/2018) https://global.rakuten.com/corp/about/
  • 5. 5 Membership section’s role and responsibility Rakuten Group services have more than 1.2 billion members. Membership provides Identity and Access Management (IAM) functions for Rakuten Group. Rakuten Ichiba login page (09/20/2018)
  • 6. 6 Membership section’s role and responsibility Rakuten Group services have more than 1.2 billion members. Membership provides Identity and Access Management (IAM) functions for Rakuten Group. Rakuten Ichiba top page (09/20/2018)
  • 7. 7 Platform Migrating from Physical and VM to the Container (Kubernetes) Most of the servers are existing in Rakuten Datacenter. Migrating Physical / VM Container
  • 8. 8 Deployment Pipeline Chain Jenkins jobs with Parameterized Trigger Plugin. Over 600 deployment pipelines are existing.
  • 9. 9 Chain Jenkins jobs with Parameterized Trigger Plugin. Over 600 deployment pipelines are existing. Build APP Prepare config files Build Docker container Analyze vulnerability Deploy to the Kubernetes Deployment Pipeline
  • 10. 10 Deployment Pipeline Different Jobs per application Same # as (application * ENV) Chain Jenkins jobs with Parameterized Trigger Plugin. Over 600 deployment pipelines are existing.
  • 11. 11 Deployment Pipeline Common Job Only 1 Job Chain Jenkins jobs with Parameterized Trigger Plugin. Over 600 deployment pipelines are existing.
  • 12. 12 Environment Approximately 100 DEV and QA ENGs share the fixed environments. Developer1 ENV1 ENV2 ENV3 Developer2 Developer3 QA1
  • 13. 13 Issue 1 Maintenance cost of the pipeline is high. Jenkins Jobs are tightly coupled to each other
  • 14. 14 Issue 1 Maintenance cost of the pipeline is high. Hard to modify Job config via UI one by one
  • 15. 15 Solution 1 Migrate Jenkins Job from Freestyle to Pipeline.
  • 16. 16 Solution 1 – Step 1 Migrate Jenkins Job from Freestyle to Pipeline. build_app.sh Move hardcoded steps from Job to script file.
  • 17. 17 Solution 1 – Step 2 Call scripted steps from wrapper function. Register the functions as a Global Pipeline Library. vars/buildApp.groovy
  • 18. 18 Solution 1 – Step 3 Call wrapper function from Jenkinsfile which existing in each APP repository. Jenkinsfile (sample)
  • 19. 19 Issue 2 Lack of the environment for Development and QA. Developer1 ENV1 ENV2 ENV3 Developer2 Developer3 QA1
  • 20. 20 Issue 2 Lack of the environment for Development and QA. Developer1 ENV1 ENV2 ENV3 Developer2 Developer3 QA1 Waiting!!
  • 21. 21 Solution 2 Control environment creation with Multibranch Pipeline.
  • 22. 22 Solution 2 – Step 1 Create new branch then new pipeline is also created automatically. Developer/QA my-branch ENV feature/abc ENV hotfix/xyz ENV my-branch
  • 23. 23 Solution 2 – Step 2 Use wildcard DNS record, e.g. *.id.rakuten.co.jp. Developer/QA DNS Server Ingress (Reverse Proxy) → my-branch.id.rakuten.co.jp ← Ingress IP 1. 2. my-branch.id.rakuten.co.jp
  • 24. 24 Solution 2 – Step 3 Use domain mapping in the Ingress. Developer/QA DNS Server Ingress (Reverse Proxy) my-branch ENV feature/abc ENV hotfix/xyz ENV 1. 2. 3. my-branch.id.rakuten.co.jp
  • 25. 25 Results • Maintenance cost of the pipeline is high => Pipeline as Code • Lack of the environment for Development and QA => Multibranch Pipeline Tip: You’d better concentrate on controlling the flow to keep portability. Tip: You’d better delete the ENV daily or weekly to use server resource efficiently.

Editor's Notes

  1. At that time, Docker didn’t support Multistage Build. Kaniko was not published.
  2. If it takes 3 mins that updating 1 job. 3 mins * 600 jobs = 1,800 mins = 30 hours