SlideShare a Scribd company logo
Continuous Deploy
Using the cloud with Play! 2, Bitbucket,
  Cloudbees and Heroku for FREE*
Introduction

Magnus Andersson
Co-founder Solvies AB
Blog: magnusart.com
Twitter: @magnusart
Overview

● What is Continuous Deploy?
● This is what we are doing today
● Meet the tools
  ○ Play! 2 Framework
  ○ Atlassian Bitbucket
  ○ CloudBees
  ○ Heroku
● DEMO!
● Is all this really for FREE*?
● Appendix A - Continuous Deploy recipe
● Appendix B - Links and resources
What is Continuous Deploy?

To continuously deploy software into target
environment upon push/check in to blessed
VCS

Continious Integration, Continuous Delivery
and DevOps are are subset or supersets of the
same idéas, tools and methodologies
This is what we are doing today
Meet the tools

Ruby on Rails inspired web framework. Builds
with Scala Build Tool.

Both Scala and Java, foundation rewritten in
Play2.
Meet the tools

Git hosting that allows for free private
repositories. Free private git and mercurial
repos.

The competitor, Github, can be used as well but
only public repos are free
Meet the tools

Online Jenkins Continuous Integration server
hosting.

Travis CI is an interesting alternative, but
would not work well for this scenario as there is
no private way to store private SSL keys.
Meet the tools

Polyglot cloud PAAS hosting. Supports Ruby,
Java, Scala, Cloujure and Python in the Celadon
Cedar stack

Solves package archiving (Git), deploy
automation, rollback and provides a third party
add-on community (DB, Logging, Messaging)

Heroku runs in the Amazon cloud. Slug size for
your app is 100mb, inc. resources/artifacts
DEMO!
Is all this really for FREE*?

Yes it is, but only for a give value for FREE...
You may want to pay for the following
1. Play! 2 Framework support
   a. Typesafe supscription. Price: info@typesafe.com
2. Atlassian Bitbucket
   a. 5 collaborators free
   b. Paid plans ranging from $10 - $80/month
3. CloudBees
   a. 300 minutes of build time, 10 developers free/month
   b. Plans ranging from $15 - $100/month
   c. Paid plans are fixed base price + pay as you go
4. Heroku Dynos
  a. 750 dyno hours/month free
  b. Dynos cost $0.05/hour (~35$/month per dyno)
  c. Dynos are charged per second
  d. If you spin up a Dyno Heroku will charge for it until
     you manually spin it down again.
  e. If you have less than two web Dynos, Heroku will
     spin down your Dyno after a period of inactivity.
     Starts up upon first subsequent request (5-10 sec).
  f. HireFireApp is a 3rd party Ruby application that
     can scale your Dynos based on response time and job
     queue. It will poll your app with HTTP requests, so
     Dyno spin down should not be an issue. Costs
     amounts to HireFireApp $10/month + Heroku
     $0.05/h. Only supports Ruby stack natively, but uses
     a simple JSON api your app can implement.
4. Heroku Third Party addons
  a. Convenient way to install third party addons
  b. Heroku PgSQL database 5MB is included
      i. $200/month for 1TB and 1.7GB Cache
  c. MongoLab 250MB free DB
      i. $10/month for 0.5GB and upwards
  d. IronMQ 250 000 request/month free
      i. $9.99/month for 10 000 000 requests/month
     ii. Both RabbitMQ and CloudAMQP are in private
         betas
  e. For file storage Heroku recommends Amazon S3
  f. In general the add-ons can be pricy, but there is no
     lockin, you can get started in Heroku and move to
     those things that turns out to be too expensive
More addons: https://addons.heroku.com/
Appendix A
          Continuous Deploy recipe
1. Create Heroku App
   a. Configure custom buildpack to keep Slug size down
   b. Is it deployed?
2. Create Git repos
  a.   Create remote repo
  b.   Clone repo
  c.   Add Heroku remote
  d.   Create Play Application in subfolder
  e.   Move files to parent dir
  f.   Add Procfile config for Play!
  g.   Add gitignore
  h.   git push heroku master
4. Create CloudBees job
  a. Create job
  b. Configure CloudBees access to Git repos (Heroku
     and Atlassian/Github)
  c. Install Jenkins SBT plugin to CloudBees
  d. Add Git Plugin
  e. Configure job Git remotes
  f. Add tagging
  g. Fire up build!
5. Commit, push to trigger a build followed by
   deploy into Heroku
Appendix B
                  Links and resources
HireFireApp support ticket describing API:
https://hirefireapp.tenderapp.com/discussions/questions/66-support-for-
auto-scaling-web-dyno-for-java-play-app-running-on-cedar-stack
Heroku Scala Build Pack
https://github.com/heroku/heroku-buildpack-scala
OpenShift, Heroku competitor
https://openshift.redhat.com
OpenShift DIY Cartridge Play2 Quickstart
https://github.com/opensas/play2-openshift-quickstart
This presentation is available on SlideShare
http://www.slideshare.net/magnusart/continuous-deploy
Contact information

Magnus Andersson
Co-founder Solvies AB
magnus.andersson@solvies.se
Twitter: @magnusart
www.solvies.se
www.magnusart.com

More Related Content

What's hot

Visual Studio로 Kubernetes 사용하기
Visual Studio로 Kubernetes 사용하기Visual Studio로 Kubernetes 사용하기
Visual Studio로 Kubernetes 사용하기
충섭 김
 
Kube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiKube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul Czarkowski
VMware Tanzu
 
Own the build
Own the buildOwn the build
Own the build
connatser
 
Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...
Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...
Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...
sangam biradar
 
Distributed tensorflow on kubernetes
Distributed tensorflow on kubernetesDistributed tensorflow on kubernetes
Distributed tensorflow on kubernetes
inwin stack
 
Kuberenetes SIG Jenkins
Kuberenetes SIG JenkinsKuberenetes SIG Jenkins
Kuberenetes SIG Jenkins
albertoariasmaestro
 
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Ted Won
 
Python Dependency Management - PyconDE 2018
Python Dependency Management - PyconDE 2018Python Dependency Management - PyconDE 2018
Python Dependency Management - PyconDE 2018
Patrick Muehlbauer
 
Amplifying Docker - Alex Heneveld

Amplifying Docker - Alex Heneveld
Amplifying Docker - Alex Heneveld

Amplifying Docker - Alex Heneveld

Outlyer
 
Removing Environmental Differences - Simon Pearson
Removing Environmental Differences - Simon PearsonRemoving Environmental Differences - Simon Pearson
Removing Environmental Differences - Simon Pearson
Outlyer
 
Docker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore MeetupDocker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore Meetup
sangam biradar
 
Training TensorFlow Models at Scale with Kubernetes on Azure
Training TensorFlow Models at Scale with Kubernetes on AzureTraining TensorFlow Models at Scale with Kubernetes on Azure
Training TensorFlow Models at Scale with Kubernetes on Azure
Rita Zhang
 
Debug and Monitor Multi-container Apps on AKS
Debug and Monitor Multi-container Apps on AKSDebug and Monitor Multi-container Apps on AKS
Debug and Monitor Multi-container Apps on AKS
Nilesh Gule
 
給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)
William Yeh
 
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Codemotion
 
Distributed tracing for Node.js
Distributed tracing for Node.jsDistributed tracing for Node.js
Distributed tracing for Node.js
Nikolay Stoitsev
 
Tracing python applications
Tracing python applicationsTracing python applications
Tracing python applications
Nikolay Stoitsev
 
ConcourseCi Dockerimage
ConcourseCi DockerimageConcourseCi Dockerimage
ConcourseCi Dockerimage
Gwenn Etourneau
 
CloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps AmsterdamCloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps Amsterdam
Sebastien Goasguen
 
Terraform GitOps on Codefresh
Terraform GitOps on CodefreshTerraform GitOps on Codefresh
Terraform GitOps on Codefresh
Codefresh
 

What's hot (20)

Visual Studio로 Kubernetes 사용하기
Visual Studio로 Kubernetes 사용하기Visual Studio로 Kubernetes 사용하기
Visual Studio로 Kubernetes 사용하기
 
Kube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul CzarkowskiKube Your Enthusiasm - Paul Czarkowski
Kube Your Enthusiasm - Paul Czarkowski
 
Own the build
Own the buildOwn the build
Own the build
 
Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...
Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...
Google ko: fast Kubernetes microservice development in Go - Sangam Biradar, E...
 
Distributed tensorflow on kubernetes
Distributed tensorflow on kubernetesDistributed tensorflow on kubernetes
Distributed tensorflow on kubernetes
 
Kuberenetes SIG Jenkins
Kuberenetes SIG JenkinsKuberenetes SIG Jenkins
Kuberenetes SIG Jenkins
 
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
 
Python Dependency Management - PyconDE 2018
Python Dependency Management - PyconDE 2018Python Dependency Management - PyconDE 2018
Python Dependency Management - PyconDE 2018
 
Amplifying Docker - Alex Heneveld

Amplifying Docker - Alex Heneveld
Amplifying Docker - Alex Heneveld

Amplifying Docker - Alex Heneveld

 
Removing Environmental Differences - Simon Pearson
Removing Environmental Differences - Simon PearsonRemoving Environmental Differences - Simon Pearson
Removing Environmental Differences - Simon Pearson
 
Docker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore MeetupDocker + Tenserflow + GOlang - Golang singapore Meetup
Docker + Tenserflow + GOlang - Golang singapore Meetup
 
Training TensorFlow Models at Scale with Kubernetes on Azure
Training TensorFlow Models at Scale with Kubernetes on AzureTraining TensorFlow Models at Scale with Kubernetes on Azure
Training TensorFlow Models at Scale with Kubernetes on Azure
 
Debug and Monitor Multi-container Apps on AKS
Debug and Monitor Multi-container Apps on AKSDebug and Monitor Multi-container Apps on AKS
Debug and Monitor Multi-container Apps on AKS
 
給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)給 RD 的 Kubernetes 初體驗 (EKS version)
給 RD 的 Kubernetes 初體驗 (EKS version)
 
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
 
Distributed tracing for Node.js
Distributed tracing for Node.jsDistributed tracing for Node.js
Distributed tracing for Node.js
 
Tracing python applications
Tracing python applicationsTracing python applications
Tracing python applications
 
ConcourseCi Dockerimage
ConcourseCi DockerimageConcourseCi Dockerimage
ConcourseCi Dockerimage
 
CloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps AmsterdamCloudStack / Saltstack lightning talk at DevOps Amsterdam
CloudStack / Saltstack lightning talk at DevOps Amsterdam
 
Terraform GitOps on Codefresh
Terraform GitOps on CodefreshTerraform GitOps on Codefresh
Terraform GitOps on Codefresh
 

Similar to Continuous Deploy

Wordpress vs JamStack
Wordpress vs JamStackWordpress vs JamStack
Wordpress vs JamStack
PierreBernardeau
 
DevOps Workshop Part 1
DevOps Workshop Part 1DevOps Workshop Part 1
DevOps Workshop Part 1
GDSC UofT Mississauga
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
Andy Piper
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
jaxLondonConference
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial Slides
Daniel Greenfeld
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
alloy020
 
Biscuit, the cryptotoken you can share safely with your ap is
Biscuit, the cryptotoken you can share safely with your ap isBiscuit, the cryptotoken you can share safely with your ap is
Biscuit, the cryptotoken you can share safely with your ap is
Quentin Adam
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
Keith Fitzgerald
 
Git hooks
Git hooksGit hooks
Git hooks
Skills Matter
 
SydJS.com
SydJS.comSydJS.com
SydJS.com
Lachlan Hardy
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
Paul Jensen
 
La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...
CloudNativeElSalvado
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
Scott Graham
 
Heroku and Rails Applications
Heroku and Rails ApplicationsHeroku and Rails Applications
Heroku and Rails Applications
Andreas Sotnik
 
Dreamwares Recent Projects
Dreamwares Recent ProjectsDreamwares Recent Projects
Dreamwares Recent Projects
Dreamwares
 
Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.
Katy Slemon
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&D
Hiromu Hota
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
Diego Zuluaga
 

Similar to Continuous Deploy (20)

Wordpress vs JamStack
Wordpress vs JamStackWordpress vs JamStack
Wordpress vs JamStack
 
DevOps Workshop Part 1
DevOps Workshop Part 1DevOps Workshop Part 1
DevOps Workshop Part 1
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial Slides
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)RubyMotion Inspect Conference - 2013. (With speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
 
Biscuit, the cryptotoken you can share safely with your ap is
Biscuit, the cryptotoken you can share safely with your ap isBiscuit, the cryptotoken you can share safely with your ap is
Biscuit, the cryptotoken you can share safely with your ap is
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
 
Git hooks
Git hooksGit hooks
Git hooks
 
SydJS.com
SydJS.comSydJS.com
SydJS.com
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...
 
August OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub ExplainedAugust OpenNTF Webinar - Git and GitHub Explained
August OpenNTF Webinar - Git and GitHub Explained
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Heroku and Rails Applications
Heroku and Rails ApplicationsHeroku and Rails Applications
Heroku and Rails Applications
 
Dreamwares Recent Projects
Dreamwares Recent ProjectsDreamwares Recent Projects
Dreamwares Recent Projects
 
Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.Amazing vue.js projects that are open source and free.
Amazing vue.js projects that are open source and free.
 
Updates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&DUpdates on webSpoon and other innovations from Hitachi R&D
Updates on webSpoon and other innovations from Hitachi R&D
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
 

Recently uploaded

Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
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
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
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
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
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
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 

Recently uploaded (20)

Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
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
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
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
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
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
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 

Continuous Deploy

  • 1. Continuous Deploy Using the cloud with Play! 2, Bitbucket, Cloudbees and Heroku for FREE*
  • 2. Introduction Magnus Andersson Co-founder Solvies AB Blog: magnusart.com Twitter: @magnusart
  • 3. Overview ● What is Continuous Deploy? ● This is what we are doing today ● Meet the tools ○ Play! 2 Framework ○ Atlassian Bitbucket ○ CloudBees ○ Heroku ● DEMO! ● Is all this really for FREE*? ● Appendix A - Continuous Deploy recipe ● Appendix B - Links and resources
  • 4. What is Continuous Deploy? To continuously deploy software into target environment upon push/check in to blessed VCS Continious Integration, Continuous Delivery and DevOps are are subset or supersets of the same idéas, tools and methodologies
  • 5. This is what we are doing today
  • 6. Meet the tools Ruby on Rails inspired web framework. Builds with Scala Build Tool. Both Scala and Java, foundation rewritten in Play2.
  • 7. Meet the tools Git hosting that allows for free private repositories. Free private git and mercurial repos. The competitor, Github, can be used as well but only public repos are free
  • 8. Meet the tools Online Jenkins Continuous Integration server hosting. Travis CI is an interesting alternative, but would not work well for this scenario as there is no private way to store private SSL keys.
  • 9. Meet the tools Polyglot cloud PAAS hosting. Supports Ruby, Java, Scala, Cloujure and Python in the Celadon Cedar stack Solves package archiving (Git), deploy automation, rollback and provides a third party add-on community (DB, Logging, Messaging) Heroku runs in the Amazon cloud. Slug size for your app is 100mb, inc. resources/artifacts
  • 10. DEMO!
  • 11. Is all this really for FREE*? Yes it is, but only for a give value for FREE... You may want to pay for the following 1. Play! 2 Framework support a. Typesafe supscription. Price: info@typesafe.com 2. Atlassian Bitbucket a. 5 collaborators free b. Paid plans ranging from $10 - $80/month 3. CloudBees a. 300 minutes of build time, 10 developers free/month b. Plans ranging from $15 - $100/month c. Paid plans are fixed base price + pay as you go
  • 12. 4. Heroku Dynos a. 750 dyno hours/month free b. Dynos cost $0.05/hour (~35$/month per dyno) c. Dynos are charged per second d. If you spin up a Dyno Heroku will charge for it until you manually spin it down again. e. If you have less than two web Dynos, Heroku will spin down your Dyno after a period of inactivity. Starts up upon first subsequent request (5-10 sec). f. HireFireApp is a 3rd party Ruby application that can scale your Dynos based on response time and job queue. It will poll your app with HTTP requests, so Dyno spin down should not be an issue. Costs amounts to HireFireApp $10/month + Heroku $0.05/h. Only supports Ruby stack natively, but uses a simple JSON api your app can implement.
  • 13. 4. Heroku Third Party addons a. Convenient way to install third party addons b. Heroku PgSQL database 5MB is included i. $200/month for 1TB and 1.7GB Cache c. MongoLab 250MB free DB i. $10/month for 0.5GB and upwards d. IronMQ 250 000 request/month free i. $9.99/month for 10 000 000 requests/month ii. Both RabbitMQ and CloudAMQP are in private betas e. For file storage Heroku recommends Amazon S3 f. In general the add-ons can be pricy, but there is no lockin, you can get started in Heroku and move to those things that turns out to be too expensive More addons: https://addons.heroku.com/
  • 14. Appendix A Continuous Deploy recipe 1. Create Heroku App a. Configure custom buildpack to keep Slug size down b. Is it deployed? 2. Create Git repos a. Create remote repo b. Clone repo c. Add Heroku remote d. Create Play Application in subfolder e. Move files to parent dir f. Add Procfile config for Play! g. Add gitignore h. git push heroku master
  • 15. 4. Create CloudBees job a. Create job b. Configure CloudBees access to Git repos (Heroku and Atlassian/Github) c. Install Jenkins SBT plugin to CloudBees d. Add Git Plugin e. Configure job Git remotes f. Add tagging g. Fire up build! 5. Commit, push to trigger a build followed by deploy into Heroku
  • 16. Appendix B Links and resources HireFireApp support ticket describing API: https://hirefireapp.tenderapp.com/discussions/questions/66-support-for- auto-scaling-web-dyno-for-java-play-app-running-on-cedar-stack Heroku Scala Build Pack https://github.com/heroku/heroku-buildpack-scala OpenShift, Heroku competitor https://openshift.redhat.com OpenShift DIY Cartridge Play2 Quickstart https://github.com/opensas/play2-openshift-quickstart This presentation is available on SlideShare http://www.slideshare.net/magnusart/continuous-deploy
  • 17. Contact information Magnus Andersson Co-founder Solvies AB magnus.andersson@solvies.se Twitter: @magnusart www.solvies.se www.magnusart.com