SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Shipping to Server and Cloud
with Docker
CHARLES GUTJAHR | CO-FOUNDER AND TECHNICAL ARCHITECT | THINKTILT
We ship the same add-on to
JIRA Server and Cloud
THINKTILT
Our tiny team
We launched ProForma for
JIRA Cloud at Summit 2016
Our dev team
What kind of
server plugin?
Separate
codebase
Shared
library
Single
codebase
Separate codebase
Write a new P2 plugin in Java with a
completely new codebase.
JIRA Server
Atlassian Connect
JIRA Cloud
ProForma
Cloud server
ProForma
P2 plugin
What kind of
server plugin?
Separate
codebase
Shared
library
Single
codebase
Shared library
Build a new P2 plugin in Java, but
share as much code as possible with
our Cloud add-on.
JIRA Server
Atlassian Connect
JIRA Cloud
ProForma
Cloud server
Shared library
ProForma
P2 plugin
Shared library
What kind of
server plugin?
Separate
codebase
Shared
library
Single
codebase
Single codebase
Use the same code for Server and Cloud,
combine a server with a lightweight P2 plugin.
JIRA Server
Atlassian Connect
JIRA Cloud
ProForma
Server
Lightweight P2 plugin
Maintenance
Less effort to
add new features
Feature parity
Documentation and
marketing the same
Migration
Reliably migrate
Server to Cloud,
or vice versa
External pages
Serve up pages
outside JIRA
Advantages of a single codebase
Maintenance
Less effort to
add new features
Feature parity
Documentation and
marketing the same
Migration
Reliably migrate
Server to Cloud,
or vice versa
External pages
Serve up pages
outside JIRA
Advantages of a single codebase
Maintenance
Less effort to
add new features
Feature parity
Documentation and
marketing the same
Migration
Reliably migrate
Server to Cloud,
or vice versa
External pages
Serve up pages
outside JIRA
Advantages of a single codebase
Maintenance
Less effort to
add new features
Feature parity
Documentation and
marketing the same
Migration
Reliably migrate
Server to Cloud,
or vice versa
External pages
Serve up pages
outside JIRA
Advantages of a single codebase
Popular
Docker is already used
in many large companies
Why Docker?
Great for us too
Docker helps us manage
our own cloud servers
Simple distribution
Customers can install
server in just seconds
Popular
Docker is already used
in many large companies
Why Docker?
Great for us too
Docker helps us manage
our own cloud servers
Simple distribution
Customers can install
server in just seconds
Popular
Docker is already used
in many large companies
Why Docker?
Great for us too
Docker helps us manage
our own cloud servers
Simple distribution
Customers can install
server in just seconds
P2 Plugin
A lightweight view into our Docker server
P2 plugin
with Docker
P2 plugin
Docker iframe
JWT
Connect JS
P2 plugin
with Docker
P2 plugin
Docker iframe
JWT
Connect JS
P2 plugin
with Docker
P2 plugin
Docker iframe
JWT
Connect JS
JSON Web Tokens (JWT)
Authenticates requests for Atlassian Connect add-ons
atlassian-jwt library
Allows a P2 plugin to make JWT requests
P2 plugin
with Docker
P2 plugin
Docker iframe
JWT
Connect JS
Atlassian Connect JS
Handles requests from inside an add-on iframe
atlassian-connect-js library
Allows a P2 plugin to receive JavaScript calls from
the pages rendered on the Docker servers
P2 plugin
with Docker
P2 plugin
Docker iframe
JWT
Connect JS
Cloud add-on
Refactoring our cloud add-on to run in Docker
Docker server
Refactoring our cloud add-on to run in Docker
REST API
Accessing JIRA from the Docker server
Cloud add-on
to Docker
REST API
App Links
Licensing
OAuth instead of JWT
JWT authenticates calls to JIRA Cloud REST API,
OAuth provides equivalent in JIRA Server
REST API
Accessing JIRA from the Docker server
Cloud add-on
to Docker
REST API
App Links
Licensing
OAuth instead of JWT
JWT authenticates calls to JIRA Cloud REST API,
OAuth provides equivalent in JIRA Server
Cloud add-on
to Docker
REST API
App Links
Licensing
LicensingCloud add-on
to Docker
REST API
App Links
Licensing
Handled by P2 plugin instead of Docker server
Docker build & deploy
Build overview
Docker Hub
Amazon ECS
Public repository
Private repository
ProForma server
Customer hosted
ProForma server
AWS hosted
IDE
Bitbucket
Bitbucket Pipelines
Git repository
Push a 

checkin to
Bitbucket
Git push
Build & test
Bitbucket Pipelines
builds and tests
the add-on
AWS Deploy
If tagged,
automatically
deploy to AWS
Docker builds 

an image with 

the binaries
Docker build
Build timeline
Push Docker image
to AWS ECS for
cloud deployment
AWS ECS push
Docker Hub push
Push Docker image
to Docker Hub for
public access
Push a 

checkin to
Bitbucket
Git push
Build & test
Bitbucket Pipelines
builds and tests
the add-on
AWS Deploy
If tagged,
automatically
deploy to AWS
Docker builds 

an image with 

the binaries
Docker build
Build timeline
Push Docker image
to AWS ECS for
cloud deployment
AWS ECS push
Docker Hub push
Push Docker image
to Docker Hub for
public access
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
image:
name: thinktilt/proforma-build:latest
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
branches:
'**': # All branches
- step:
script:
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
image:
name: thinktilt/proforma-build:latest
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
branches:
'**': # All branches
- step:
script:
image:
name: thinktilt/proforma-build:latest
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
image:
name: thinktilt/proforma-build:latest
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
branches:
'**': # All branches
- step:
script:
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
Pipelines runs on Docker
Can’t build a Docker image inside Docker
External build server
You can run a Docker build server on a VPS
that your Pipelines build connects to
docker: true option in Pipelines
Atlassian now provides a Docker daemon in Pipelines
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
Pipelines runs on Docker
Can’t build a Docker image inside Docker
External build server
You can run a Docker build server on a VPS
that your Pipelines build connects to
docker: true option in Pipelines
Atlassian now provides a Docker daemon in Pipelines
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
Pipelines runs on Docker
Can’t build a Docker image inside Docker
External build server
You can run a Docker build server on a VPS
that your Pipelines build connects to
docker: true option in Pipelines
Atlassian now provides a Docker daemon in Pipelines
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
image:
name: thinktilt/proforma-build:latest
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
branches:
'**': # All branches
- step:
script:
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
image:
name: thinktilt/proforma-build:latest
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
branches:
'**': # All branches
- step:
script:
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
Pipelines
build
Docker build
Push to Hub
Push to AWS
Deploy on AWS
image:
name: thinktilt/proforma-build:latest
pipelines:
tags:
v*: # For version tags, ie v1.0.0
- step:
script:
- sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
- docker tag thinktilt/proforma:$BITBUCKET_TAG
thinktilt/proforma:latest
- docker push thinktilt/proforma:latest
- docker push thinktilt/proforma:$BITBUCKET_TAG
- $(aws ecr get-login --region us-west-2)
- docker tag thinktilt/proforma:$BITBUCKET_TAG
$AWS_ECR_URI:$BITBUCKET_TAG
- docker push $AWS_ECR_URI:$BITBUCKET_TAG
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
branches:
'**': # All branches
- step:
script:
deploy-*: # For deployment tags, ie deploy-test
- step:
script:
- aws cloudformation deploy ...
Should you use Docker?
Limited resources
Better to support Server customers with Docker
than not support them at all
External functionality
If some functionality is used outside JIRA,
Docker can provide that behind the firewall
Consistency
Marketing and documentation exactly the same;
Server and Cloud customers can migrate
Good
reasons to
use Docker
Limited resources
Better to support Server customers with Docker
than not support them at all
External functionality
If some functionality is used outside JIRA,
Docker can provide that behind the firewall
Consistency
Marketing and documentation exactly the same;
Server and Cloud customers can migrate
Good
reasons to
use Docker
Limited resources
Better to support Server customers with Docker
than not support them at all
External functionality
If some functionality is used outside JIRA,
Docker can provide that behind the firewall
Consistency
Marketing and documentation exactly the same;
Server and Cloud customers can migrate
Good
reasons to
use Docker
Locked-down networks
Communication between JIRA and Docker
could be blocked in some customer networks
Complexity
Extra steps to install plugin could be off-putting,
especially for trial customers
Risks
of using
Docker
Atlassian Design Guidelines 3
Locked-down networks
Communication between JIRA and Docker
could be blocked in some customer networks
Complexity
Extra steps to install plugin could be off-putting,
especially for trial customers
Risks
of using
Docker
Atlassian Design Guidelines 3
Locked-down networks
Communication between JIRA and Docker
could be blocked in some customer networks
Complexity
Extra steps to install plugin could be off-putting,
especially for trial customers
Risks
of using
Docker
Atlassian Design Guidelines 3
Docker for your Cloud add-on
is worthwhile in itself
TOO RISKY?
Customer reaction
…from the last few days at Summit
Thank you!
CHARLES GUTJAHR | CO-FOUNDER AND TECHNICAL ARCHITECT | THINKTILT

Weitere ähnliche Inhalte

Was ist angesagt?

AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
Amazon Web Services
 
AWS CodeDeploy
AWS CodeDeployAWS CodeDeploy
AWS CodeDeploy
TO THE NEW | Technology
 

Was ist angesagt? (20)

Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket Cloud
 
Tempo’s Journey Into the Cloud
Tempo’s Journey Into the CloudTempo’s Journey Into the Cloud
Tempo’s Journey Into the Cloud
 
How to Build a Better JIRA Add-on
How to Build a Better JIRA Add-onHow to Build a Better JIRA Add-on
How to Build a Better JIRA Add-on
 
Server Add-ons for Front-end Developers
Server Add-ons for Front-end DevelopersServer Add-ons for Front-end Developers
Server Add-ons for Front-end Developers
 
What's New with Confluence Connect
What's New with Confluence ConnectWhat's New with Confluence Connect
What's New with Confluence Connect
 
Integration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real ThingsIntegration Testing on Steroids: Run Your Tests on the Real Things
Integration Testing on Steroids: Run Your Tests on the Real Things
 
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
 
What’s New in Spring Data MongoDB
What’s New in Spring Data MongoDBWhat’s New in Spring Data MongoDB
What’s New in Spring Data MongoDB
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
 
You've Made Kubernetes Available to Your Developers, Now What?
You've Made Kubernetes Available to Your Developers, Now What?You've Made Kubernetes Available to Your Developers, Now What?
You've Made Kubernetes Available to Your Developers, Now What?
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
 
Creating Your Own Server Add-on that Customizes Confluence or JIRA
Creating Your Own Server Add-on that Customizes Confluence or JIRACreating Your Own Server Add-on that Customizes Confluence or JIRA
Creating Your Own Server Add-on that Customizes Confluence or JIRA
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
 
AWS CodeDeploy
AWS CodeDeployAWS CodeDeploy
AWS CodeDeploy
 
5 Essential Techniques for Building Fault-tolerant Systems
5 Essential Techniques for Building Fault-tolerant Systems5 Essential Techniques for Building Fault-tolerant Systems
5 Essential Techniques for Building Fault-tolerant Systems
 
Building Distributed Systems with Netflix OSS and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring CloudBuilding Distributed Systems with Netflix OSS and Spring Cloud
Building Distributed Systems with Netflix OSS and Spring Cloud
 
Spring Boot Observability
Spring Boot ObservabilitySpring Boot Observability
Spring Boot Observability
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Deploy, scale and manage your application with AWS Elastic Beanstal
Deploy, scale and manage your application with AWS Elastic BeanstalDeploy, scale and manage your application with AWS Elastic Beanstal
Deploy, scale and manage your application with AWS Elastic Beanstal
 

Andere mochten auch

Andere mochten auch (14)

Securing Your Atlassian Connect Add-on With JWT
Securing Your Atlassian Connect Add-on With JWTSecuring Your Atlassian Connect Add-on With JWT
Securing Your Atlassian Connect Add-on With JWT
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
Marketplace Listings: How to Make Yours a Success
Marketplace Listings: How to Make Yours a SuccessMarketplace Listings: How to Make Yours a Success
Marketplace Listings: How to Make Yours a Success
 
Launch into New Markets with JIRA Service Desk
Launch into New Markets with JIRA Service DeskLaunch into New Markets with JIRA Service Desk
Launch into New Markets with JIRA Service Desk
 
Closing the Deal: How Atlassian Partners Help Grow Your User Base
Closing the Deal: How Atlassian Partners Help Grow Your User BaseClosing the Deal: How Atlassian Partners Help Grow Your User Base
Closing the Deal: How Atlassian Partners Help Grow Your User Base
 
Designing Add-ons for Atlassian Products, the Do’s & Don’ts
Designing Add-ons for Atlassian Products, the Do’s & Don’tsDesigning Add-ons for Atlassian Products, the Do’s & Don’ts
Designing Add-ons for Atlassian Products, the Do’s & Don’ts
 
Know Thy Product: Tips from a Tester
Know Thy Product: Tips from a TesterKnow Thy Product: Tips from a Tester
Know Thy Product: Tips from a Tester
 
Building for the Future: Design Your Add-on with Tomorrow in Mind
Building for the Future: Design Your Add-on with Tomorrow in MindBuilding for the Future: Design Your Add-on with Tomorrow in Mind
Building for the Future: Design Your Add-on with Tomorrow in Mind
 
Beyond Agile and DevOps: From Concepts to Products in Weeks, Not Months
Beyond Agile and DevOps: From Concepts to Products in Weeks, Not MonthsBeyond Agile and DevOps: From Concepts to Products in Weeks, Not Months
Beyond Agile and DevOps: From Concepts to Products in Weeks, Not Months
 
Connect First, Ask Confluence Questions Later
Connect First, Ask Confluence Questions LaterConnect First, Ask Confluence Questions Later
Connect First, Ask Confluence Questions Later
 
How to Make Customer Support Your Product's Greatest Feature
How to Make Customer Support Your Product's Greatest FeatureHow to Make Customer Support Your Product's Greatest Feature
How to Make Customer Support Your Product's Greatest Feature
 
How to Plan and Execute a Go-to-market Campaign for an Atlassian Add-on
How to Plan and Execute a Go-to-market Campaign for an Atlassian Add-onHow to Plan and Execute a Go-to-market Campaign for an Atlassian Add-on
How to Plan and Execute a Go-to-market Campaign for an Atlassian Add-on
 
How to Write a Chatbot that Gets Smarter
How to Write a Chatbot that Gets SmarterHow to Write a Chatbot that Gets Smarter
How to Write a Chatbot that Gets Smarter
 
Adventures in Customization with Atlassian Add-ons and Integrations Using JIR...
Adventures in Customization with Atlassian Add-ons and Integrations Using JIR...Adventures in Customization with Atlassian Add-ons and Integrations Using JIR...
Adventures in Customization with Atlassian Add-ons and Integrations Using JIR...
 

Ähnlich wie Shipping to Server and Cloud with Docker

Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...
Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...
Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...
jemije2490
 

Ähnlich wie Shipping to Server and Cloud with Docker (20)

Docker for developers on mac and windows
Docker for developers on mac and windowsDocker for developers on mac and windows
Docker for developers on mac and windows
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...
Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...
Bring Continuous Integration to Your Laptop With the Drone CI Docker Extensio...
 
Cloud Native Programing with Docker and Kubernetes
Cloud Native Programing with Docker and KubernetesCloud Native Programing with Docker and Kubernetes
Cloud Native Programing with Docker and Kubernetes
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
 
Cicd.pdf
Cicd.pdfCicd.pdf
Cicd.pdf
 
Docker for developers z java
Docker for developers z javaDocker for developers z java
Docker for developers z java
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Dockercon 2018 EU Updates
Dockercon 2018 EU Updates Dockercon 2018 EU Updates
Dockercon 2018 EU Updates
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 
Continuous Delivery with Docker and Jenkins pipeline
Continuous Delivery with Docker and Jenkins pipelineContinuous Delivery with Docker and Jenkins pipeline
Continuous Delivery with Docker and Jenkins pipeline
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
Dockerfiles building docker images automatically v (workdir, env, add, and ...
Dockerfiles   building docker images automatically v (workdir, env, add, and ...Dockerfiles   building docker images automatically v (workdir, env, add, and ...
Dockerfiles building docker images automatically v (workdir, env, add, and ...
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 

Mehr von Atlassian

Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
Atlassian
 

Mehr von Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Kürzlich hochgeladen

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 

Kürzlich hochgeladen (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 

Shipping to Server and Cloud with Docker

  • 1. Shipping to Server and Cloud with Docker CHARLES GUTJAHR | CO-FOUNDER AND TECHNICAL ARCHITECT | THINKTILT
  • 2. We ship the same add-on to JIRA Server and Cloud THINKTILT
  • 3. Our tiny team We launched ProForma for JIRA Cloud at Summit 2016
  • 5. What kind of server plugin? Separate codebase Shared library Single codebase Separate codebase Write a new P2 plugin in Java with a completely new codebase. JIRA Server Atlassian Connect JIRA Cloud ProForma Cloud server ProForma P2 plugin
  • 6. What kind of server plugin? Separate codebase Shared library Single codebase Shared library Build a new P2 plugin in Java, but share as much code as possible with our Cloud add-on. JIRA Server Atlassian Connect JIRA Cloud ProForma Cloud server Shared library ProForma P2 plugin Shared library
  • 7. What kind of server plugin? Separate codebase Shared library Single codebase Single codebase Use the same code for Server and Cloud, combine a server with a lightweight P2 plugin. JIRA Server Atlassian Connect JIRA Cloud ProForma Server Lightweight P2 plugin
  • 8. Maintenance Less effort to add new features Feature parity Documentation and marketing the same Migration Reliably migrate Server to Cloud, or vice versa External pages Serve up pages outside JIRA Advantages of a single codebase
  • 9. Maintenance Less effort to add new features Feature parity Documentation and marketing the same Migration Reliably migrate Server to Cloud, or vice versa External pages Serve up pages outside JIRA Advantages of a single codebase
  • 10. Maintenance Less effort to add new features Feature parity Documentation and marketing the same Migration Reliably migrate Server to Cloud, or vice versa External pages Serve up pages outside JIRA Advantages of a single codebase
  • 11. Maintenance Less effort to add new features Feature parity Documentation and marketing the same Migration Reliably migrate Server to Cloud, or vice versa External pages Serve up pages outside JIRA Advantages of a single codebase
  • 12.
  • 13.
  • 14. Popular Docker is already used in many large companies Why Docker? Great for us too Docker helps us manage our own cloud servers Simple distribution Customers can install server in just seconds
  • 15. Popular Docker is already used in many large companies Why Docker? Great for us too Docker helps us manage our own cloud servers Simple distribution Customers can install server in just seconds
  • 16. Popular Docker is already used in many large companies Why Docker? Great for us too Docker helps us manage our own cloud servers Simple distribution Customers can install server in just seconds
  • 17. P2 Plugin A lightweight view into our Docker server
  • 18. P2 plugin with Docker P2 plugin Docker iframe JWT Connect JS
  • 19. P2 plugin with Docker P2 plugin Docker iframe JWT Connect JS
  • 20. P2 plugin with Docker P2 plugin Docker iframe JWT Connect JS
  • 21. JSON Web Tokens (JWT) Authenticates requests for Atlassian Connect add-ons atlassian-jwt library Allows a P2 plugin to make JWT requests P2 plugin with Docker P2 plugin Docker iframe JWT Connect JS
  • 22. Atlassian Connect JS Handles requests from inside an add-on iframe atlassian-connect-js library Allows a P2 plugin to receive JavaScript calls from the pages rendered on the Docker servers P2 plugin with Docker P2 plugin Docker iframe JWT Connect JS
  • 23. Cloud add-on Refactoring our cloud add-on to run in Docker
  • 24. Docker server Refactoring our cloud add-on to run in Docker
  • 25. REST API Accessing JIRA from the Docker server Cloud add-on to Docker REST API App Links Licensing OAuth instead of JWT JWT authenticates calls to JIRA Cloud REST API, OAuth provides equivalent in JIRA Server
  • 26. REST API Accessing JIRA from the Docker server Cloud add-on to Docker REST API App Links Licensing OAuth instead of JWT JWT authenticates calls to JIRA Cloud REST API, OAuth provides equivalent in JIRA Server
  • 27. Cloud add-on to Docker REST API App Links Licensing
  • 28. LicensingCloud add-on to Docker REST API App Links Licensing Handled by P2 plugin instead of Docker server
  • 29. Docker build & deploy
  • 30. Build overview Docker Hub Amazon ECS Public repository Private repository ProForma server Customer hosted ProForma server AWS hosted IDE Bitbucket Bitbucket Pipelines Git repository
  • 31. Push a 
 checkin to Bitbucket Git push Build & test Bitbucket Pipelines builds and tests the add-on AWS Deploy If tagged, automatically deploy to AWS Docker builds 
 an image with 
 the binaries Docker build Build timeline Push Docker image to AWS ECS for cloud deployment AWS ECS push Docker Hub push Push Docker image to Docker Hub for public access
  • 32. Push a 
 checkin to Bitbucket Git push Build & test Bitbucket Pipelines builds and tests the add-on AWS Deploy If tagged, automatically deploy to AWS Docker builds 
 an image with 
 the binaries Docker build Build timeline Push Docker image to AWS ECS for cloud deployment AWS ECS push Docker Hub push Push Docker image to Docker Hub for public access
  • 33. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS image: name: thinktilt/proforma-build:latest pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ... branches: '**': # All branches - step: script:
  • 34. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS image: name: thinktilt/proforma-build:latest pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ... branches: '**': # All branches - step: script: image: name: thinktilt/proforma-build:latest
  • 35. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS image: name: thinktilt/proforma-build:latest pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ... branches: '**': # All branches - step: script: pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG
  • 36. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS Pipelines runs on Docker Can’t build a Docker image inside Docker External build server You can run a Docker build server on a VPS that your Pipelines build connects to docker: true option in Pipelines Atlassian now provides a Docker daemon in Pipelines
  • 37. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS Pipelines runs on Docker Can’t build a Docker image inside Docker External build server You can run a Docker build server on a VPS that your Pipelines build connects to docker: true option in Pipelines Atlassian now provides a Docker daemon in Pipelines
  • 38. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS Pipelines runs on Docker Can’t build a Docker image inside Docker External build server You can run a Docker build server on a VPS that your Pipelines build connects to docker: true option in Pipelines Atlassian now provides a Docker daemon in Pipelines
  • 39. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS image: name: thinktilt/proforma-build:latest pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ... branches: '**': # All branches - step: script: - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG
  • 40. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS image: name: thinktilt/proforma-build:latest pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ... branches: '**': # All branches - step: script: - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG
  • 41. Pipelines build Docker build Push to Hub Push to AWS Deploy on AWS image: name: thinktilt/proforma-build:latest pipelines: tags: v*: # For version tags, ie v1.0.0 - step: script: - sbt docker:publishLocal -Dproject.version=$BITBUCKET_TAG - docker tag thinktilt/proforma:$BITBUCKET_TAG thinktilt/proforma:latest - docker push thinktilt/proforma:latest - docker push thinktilt/proforma:$BITBUCKET_TAG - $(aws ecr get-login --region us-west-2) - docker tag thinktilt/proforma:$BITBUCKET_TAG $AWS_ECR_URI:$BITBUCKET_TAG - docker push $AWS_ECR_URI:$BITBUCKET_TAG deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ... branches: '**': # All branches - step: script: deploy-*: # For deployment tags, ie deploy-test - step: script: - aws cloudformation deploy ...
  • 42. Should you use Docker?
  • 43. Limited resources Better to support Server customers with Docker than not support them at all External functionality If some functionality is used outside JIRA, Docker can provide that behind the firewall Consistency Marketing and documentation exactly the same; Server and Cloud customers can migrate Good reasons to use Docker
  • 44. Limited resources Better to support Server customers with Docker than not support them at all External functionality If some functionality is used outside JIRA, Docker can provide that behind the firewall Consistency Marketing and documentation exactly the same; Server and Cloud customers can migrate Good reasons to use Docker
  • 45. Limited resources Better to support Server customers with Docker than not support them at all External functionality If some functionality is used outside JIRA, Docker can provide that behind the firewall Consistency Marketing and documentation exactly the same; Server and Cloud customers can migrate Good reasons to use Docker
  • 46. Locked-down networks Communication between JIRA and Docker could be blocked in some customer networks Complexity Extra steps to install plugin could be off-putting, especially for trial customers Risks of using Docker Atlassian Design Guidelines 3
  • 47. Locked-down networks Communication between JIRA and Docker could be blocked in some customer networks Complexity Extra steps to install plugin could be off-putting, especially for trial customers Risks of using Docker Atlassian Design Guidelines 3
  • 48. Locked-down networks Communication between JIRA and Docker could be blocked in some customer networks Complexity Extra steps to install plugin could be off-putting, especially for trial customers Risks of using Docker Atlassian Design Guidelines 3
  • 49. Docker for your Cloud add-on is worthwhile in itself TOO RISKY?
  • 50. Customer reaction …from the last few days at Summit
  • 51. Thank you! CHARLES GUTJAHR | CO-FOUNDER AND TECHNICAL ARCHITECT | THINKTILT