SlideShare a Scribd company logo
1 of 79
Team collaboration in the
         Cloud




                 John Stevenson
  Developer Advocate @ Salesforce / Heroku
Safe Harbor
   Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

   This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such
   uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ
   materially from the results expressed or implied by the forward-looking statements we make. All statements other than
   statements of historical fact could be deemed forward-looking, including any projections of product or service availability,
   subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
   management for future operations, statements of belief, any statements concerning new, planned, or upgraded services
   or technology developments and customer contracts or use of our services.

   The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and
   delivering new functionality for our service, new products and services, our new business model, our past operating
   losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach
   of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers
   and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand,
   retain, and motivate our employees and manage our growth, new releases of our service and successful customer
   deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise
   customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included
   in our annual report on Form 10-Q for the most recent fiscal quarter ended April 30, 2011. This documents and others
   containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web
   site.

   Any unreleased services or features referenced in this or other presentations, press releases or public statements are not
   currently available and may not be delivered on time or at all. Customers who purchase our services should make the
   purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and
   does not intend to update these forward-looking statements.




Proprietary & Confidential
Why consider Heroku ?
Challenging deployment

              “Ops teams are overwhelmed by developer requests”



“Different environments are not always the same. Patching and
                         internal processes often not automated”

 “There is a divide in many enterprises between the developers &
                                               operations teams.”
Continuous Delivery

“..reducing the cycle time between an idea and usable software”
                                                    - Martin Fowler




 “Software delivers no revenue until it is in the hands of its
                                                       users.”
                                                     -Jez Humble


    “.. leads to deeper relationship between IT, their business
                           customer, and their final customers.”
                                                     -Jez Humble
Cloud Services should be easy

“Should have a natural way to use the services that fits into each
                                        teams existing workflow”


                   “Should be easy to see the value & cost benefits”

   “Should be as trust worthy as any internal service, if not more
                                                               so.”
30 second app - Demo
30 second app
What is Heroku ?
4 core principles




Forget     Run          See       Trust &
Servers   Anything   Everything   Manage
What is Heroku ?

Forget servers
Introducing Dynos
      A self contained resource in which
       to run your application

A logical abstraction over servers
 scalability is more valuable than # of servers




Allows a trivial way to scale your app
 and know how much its costing you!
For Developers
Free:
750 hours per month
               per app

Have as many apps as you require
Scaling via web control panel
Inside an Heroku Dyno

 Embedded      • Jetty, Tomcat, etc
 Container


 Application
Dependencies   • Maven, Gradle, SBT,
               Leiningen, Bundle, etc.
  Your
Application    • Anyapplication
  code
               • Any framework
               (Spring, Play!, django, compojure,etc.)
Forget Servers
Focus 100% on code
Fully managed platform
Trust Heroku to be your
 DevOps support
What is Heroku ?

Run Anything
An Elastic
                    “polyglot”
     Platform-as-a-Service
pol·y·glot [pol-ee-glot]
adjective
1. able to speak or write several languages; multilingual.
2. containing, composed of, or written in several languages: a
polyglot Bible.
“Supported” languages




A Polyglot platform: 6 supported languages
Additional support through
           “Build packs”

Control your own build, deploy & run cycle
 defined using shell script or ruby


Create your app with a build pack
  heroku create myapp
   --buildpack https://github.com/a/buildpack.git
Many build packs on Github
Polyglot environments


Sinatra Ruby on Rails        Play!                                  Mongo DB   Amazon RDS    Postgres


                                      Ruby      Clojure   Node.JS

   Spring             Lift


Waves       Halcyon          Noir                                    database.com Couch DB    Redis

Padrino      Ring       Compojure        Java         Scala



      Open                                                                  Open
   Frameworks                        Open Languages
                                                                          Databases
No Vendor Lock-in
Procfile

  A simple, declarative way to define app
  process types, so they can be easily
  managed in unison.

  A text file in the root of your project
  containing a startup command &
  parameters
Procfile examples
Simple web server
web: python -m SimpleHTTPServer $PORT



Clojure
web: lein with-profile production
 trampoline run -m my-clojure-website.web
Procfile examples
Java, Play framework & Postres
web: target/start -Dhttp.port=${PORT}

${JAVA_OPTS}

 -DapplyEvolutions.default=true


 -Ddb.default.driver=org.postgresql.Driver

 -Ddb.default.url=${DATABASE_URL}
What is Heroku ?

See Everything
logplex

Unified logging

• App operations
• Administrative commands
• All infrastructure messages

Real time Dyno information
Logplex


time-ordered events aggregated from
  the output streams of all your app’s
  running processes, system components,
  and backing services.
heroku logs
heroku logs
heroku logs --source apps
heroku logs --source heroku
heroku logs --source heroku --ps api
Example of error in logs
Trust & manage
Effortless Scaling




Web             Worker

Workload Diversity
      (Process types)
Scaling your app

$ cat Procfile
web:        java $JAVA_OPTS EmbeddedServer
worker:     java $JAVA_OPTS YourJavaClass



$ heroku scale web=4 worker=10
Scaling processes... done
Control apps via Heroku.com
Controling Heroku - CLI
$ heroku ps
Process        State          Command
-----------    -----------    -----------------------------
web.1          up for 6s      java $JAVA_OPTS EmbeddedServer
worker.1       up for 5s      java $JAVA_OPTS YourJavaClass


$ heroku restart worker.1
Restarting worker.1 process... Done

$ heroku status
=== Heroku Status
Development: No known issues at this time.
Production: No known issues at this time.

$ heroku sharing
=== enterprise-workshop Collaborators
jstevenson@heroku.com
steve@jobs.com
Trust & Manage

  24x7 platform monitoring
   Herokai know when there is
  trouble before you do!
status.heroku.com
Heroku cost calculator
What else is there to Heroku ?

Heroku add-ons
Extensibility
      A range of Relational &
       NoSQL databases
      Monitoring for your app


           …and too much to cover here



https://addons.heroku.com/
Postgres as a service
Powerful data storage
 Irrespective of if you app is deployed on Heroku
Git Push Deploy

Getting started with Heroku
Setup your Heroku account
Create an account on Heroku
Download the Heroku Toolbelt


Upload you public key
 heroku login
Whats in the Toolbelt?
Heroku command line tools
 create    | logs    |   ps | releases |
  run |    addons    |   config


A Git client

Foreman
 run apps locally as they would run on Heroku
5 steps to first deploy

Create you app (using your build tool)
Initialise a git repository for your project
Create your heroku app
Commit your files to the local repository
Push your app to heroku
Simplistic
Continuous deployment
Continuous deployment
Github and Heroku

Collaboration in the cloud
Heroku Collaboration
Add multiple developers to an app
Heroku Collaboration
All collaborators can:
 push updates & trigger deployment
 view and change app settings



Only Owners can delete the app
 or transfer ownership to a different account
Github – Social Coding




Collaborate on public or private projects

                 Collaborate 24/7 all over the world
Add Github repo to your app
Create a new repo on Github
Add the repo to your project
 git remote add github
  git@github.com/account/my-repo.git


Push you code to github
 git push –u github master
Collaborative coding on
            Github
Add people to your Github repo
 only those that you trust!



Encourage pull requests
 allows collaboration around commits
 Facilitate code reviews
Pull request discussion
Pull request code review
Adding more environments
Typically there are:
 production, staging, uat, testing , dev


Create the environments you want
 heroku create my-app-staging
 heroku create my-app-uat
 heroku create my-app-testing
Check your addons first
Check which addons used before creating
 new environments



heroku addons --remote heroku
heroku addons --remote production
More Envs = more repos
Every time you create a new Heroku
 environment a remote git repository is
 added
git remote –v
Managing multiple repos
Learn to love git log
 Configure it to use –graph


Or get a good visual git tool
 SourceTree for MacOSX is great (and
  free)
git log --graph
Heroku behind HEAD
Continuous Integration servers
Continuous deployment
Travis-CI for open projects
Managing Deployment

Rolling back your applications
Heroku rollback mechanism
Release History
View info about a release
Rollback to a specific version
History after rollback & push
Try for yourself
Thank you !!!

More Related Content

What's hot

OWASP 2013 APPSEC USA ZAP Hackathon
OWASP 2013 APPSEC USA ZAP HackathonOWASP 2013 APPSEC USA ZAP Hackathon
OWASP 2013 APPSEC USA ZAP HackathonSimon Bennetts
 
OWASP 2012 AppSec Dublin ZAP Intro
OWASP 2012 AppSec Dublin ZAP IntroOWASP 2012 AppSec Dublin ZAP Intro
OWASP 2012 AppSec Dublin ZAP IntroSimon Bennetts
 
BlackHat 2014 OWASP ZAP Turbo Talk
BlackHat 2014 OWASP ZAP Turbo TalkBlackHat 2014 OWASP ZAP Turbo Talk
BlackHat 2014 OWASP ZAP Turbo TalkSimon Bennetts
 
OWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced FeaturesOWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced FeaturesSimon Bennetts
 
AtlasCamp 2015: Plugins 2: All grown up
AtlasCamp 2015: Plugins 2: All grown upAtlasCamp 2015: Plugins 2: All grown up
AtlasCamp 2015: Plugins 2: All grown upAtlassian
 
OWASP 2013 EU Tour Amsterdam ZAP Intro
OWASP 2013 EU Tour Amsterdam ZAP IntroOWASP 2013 EU Tour Amsterdam ZAP Intro
OWASP 2013 EU Tour Amsterdam ZAP IntroSimon Bennetts
 
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a BarAtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a BarAtlassian
 
Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Simon Bennetts
 
OWASP 2013 Limerick - ZAP: Whats even newer
OWASP 2013 Limerick - ZAP: Whats even newerOWASP 2013 Limerick - ZAP: Whats even newer
OWASP 2013 Limerick - ZAP: Whats even newerSimon Bennetts
 
OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..
OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..
OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..Simon Bennetts
 
Merging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec PerspectiveMerging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec PerspectiveAbhay Bhargav
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer DayKimihiko Kitase
 
2014 ZAP Workshop 1: Getting Started
2014 ZAP Workshop 1: Getting Started2014 ZAP Workshop 1: Getting Started
2014 ZAP Workshop 1: Getting StartedSimon Bennetts
 
BsidesMCR_2016-what-can-infosec-learn-from-devops
BsidesMCR_2016-what-can-infosec-learn-from-devopsBsidesMCR_2016-what-can-infosec-learn-from-devops
BsidesMCR_2016-what-can-infosec-learn-from-devopsJames '​-- Mckinlay
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
 
OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014
OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014
OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014gmaran23
 
BSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced FeaturesBSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced FeaturesSimon Bennetts
 
NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0Dinis Cruz
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Roberto Cortez
 

What's hot (20)

OWASP 2013 APPSEC USA ZAP Hackathon
OWASP 2013 APPSEC USA ZAP HackathonOWASP 2013 APPSEC USA ZAP Hackathon
OWASP 2013 APPSEC USA ZAP Hackathon
 
OWASP 2012 AppSec Dublin ZAP Intro
OWASP 2012 AppSec Dublin ZAP IntroOWASP 2012 AppSec Dublin ZAP Intro
OWASP 2012 AppSec Dublin ZAP Intro
 
BlackHat 2014 OWASP ZAP Turbo Talk
BlackHat 2014 OWASP ZAP Turbo TalkBlackHat 2014 OWASP ZAP Turbo Talk
BlackHat 2014 OWASP ZAP Turbo Talk
 
OWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced FeaturesOWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced Features
 
AtlasCamp 2015: Plugins 2: All grown up
AtlasCamp 2015: Plugins 2: All grown upAtlasCamp 2015: Plugins 2: All grown up
AtlasCamp 2015: Plugins 2: All grown up
 
OWASP 2013 EU Tour Amsterdam ZAP Intro
OWASP 2013 EU Tour Amsterdam ZAP IntroOWASP 2013 EU Tour Amsterdam ZAP Intro
OWASP 2013 EU Tour Amsterdam ZAP Intro
 
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a BarAtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
AtlasCamp 2014: A P2 Plugin and a SaaS Platform Walk Into a Bar
 
Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk Automating OWASP ZAP - DevCSecCon talk
Automating OWASP ZAP - DevCSecCon talk
 
OWASP 2013 Limerick - ZAP: Whats even newer
OWASP 2013 Limerick - ZAP: Whats even newerOWASP 2013 Limerick - ZAP: Whats even newer
OWASP 2013 Limerick - ZAP: Whats even newer
 
OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..
OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..
OWASP 2015 AppSec EU ZAP 2.4.0 and beyond..
 
DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019DevSecOps: What Why and How : Blackhat 2019
DevSecOps: What Why and How : Blackhat 2019
 
Merging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec PerspectiveMerging Security with DevOps - An AppSec Perspective
Merging Security with DevOps - An AppSec Perspective
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
2014 ZAP Workshop 1: Getting Started
2014 ZAP Workshop 1: Getting Started2014 ZAP Workshop 1: Getting Started
2014 ZAP Workshop 1: Getting Started
 
BsidesMCR_2016-what-can-infosec-learn-from-devops
BsidesMCR_2016-what-can-infosec-learn-from-devopsBsidesMCR_2016-what-can-infosec-learn-from-devops
BsidesMCR_2016-what-can-infosec-learn-from-devops
 
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...
 
OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014
OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014
OWASP Zed Attack Proxy Demonstration - OWASP Bangalore Nov 22 2014
 
BSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced FeaturesBSides Manchester 2014 ZAP Advanced Features
BSides Manchester 2014 ZAP Advanced Features
 
NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0NodeJS security - still unsafe at most speeds - v1.0
NodeJS security - still unsafe at most speeds - v1.0
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 

Viewers also liked

Getting startedwith noir-clojureexchange-2011
Getting startedwith noir-clojureexchange-2011Getting startedwith noir-clojureexchange-2011
Getting startedwith noir-clojureexchange-2011John Stevenson
 
Building a great mobile experience on the force.com platforms
Building a great mobile experience on the force.com platformsBuilding a great mobile experience on the force.com platforms
Building a great mobile experience on the force.com platformsJohn Stevenson
 
Building the Atlassian Community in the UK
Building the Atlassian Community in the UKBuilding the Atlassian Community in the UK
Building the Atlassian Community in the UKAtlassian
 
Just-in-time development with kanban - JAX London 2011
Just-in-time development with kanban - JAX London 2011Just-in-time development with kanban - JAX London 2011
Just-in-time development with kanban - JAX London 2011John Stevenson
 
Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...
Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...
Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...John Stevenson
 
SalesforceA: What it can be
SalesforceA: What it can beSalesforceA: What it can be
SalesforceA: What it can beRoy Gilad
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with ClojureJohn Stevenson
 
Dreamforce14 Metadata Management with Git Version Control
Dreamforce14 Metadata Management with Git Version ControlDreamforce14 Metadata Management with Git Version Control
Dreamforce14 Metadata Management with Git Version ControlJohn Stevenson
 
Salesforce Summer '14 release overview
Salesforce Summer '14 release overviewSalesforce Summer '14 release overview
Salesforce Summer '14 release overviewRoy Gilad
 
Get Functional Programming with Clojure
Get Functional Programming with ClojureGet Functional Programming with Clojure
Get Functional Programming with ClojureJohn Stevenson
 
JIRA 5 collaborative platform
JIRA 5 collaborative platformJIRA 5 collaborative platform
JIRA 5 collaborative platformJohn Stevenson
 
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developersDreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developersJohn Stevenson
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop LondonKeir Bowden
 
Salesforce Spring '16 Release Overview
Salesforce Spring '16 Release OverviewSalesforce Spring '16 Release Overview
Salesforce Spring '16 Release OverviewRoy Gilad
 
Salesforce Lightning Components Workshop
Salesforce Lightning Components WorkshopSalesforce Lightning Components Workshop
Salesforce Lightning Components WorkshopChristophe Coenraets
 
Achieving Awesome Adoption Through Training & Support v1
Achieving Awesome Adoption Through Training & Support v1Achieving Awesome Adoption Through Training & Support v1
Achieving Awesome Adoption Through Training & Support v1Louise Lockie
 
Advanced designs for reusable lightning components
Advanced designs for reusable lightning componentsAdvanced designs for reusable lightning components
Advanced designs for reusable lightning componentsthomaswaud
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013John Stevenson
 
What is Salesforce lighting explained
What is Salesforce lighting explainedWhat is Salesforce lighting explained
What is Salesforce lighting explainedRoy Gilad
 
Building the Ultimate Full Company Growth Team
Building the Ultimate Full Company Growth TeamBuilding the Ultimate Full Company Growth Team
Building the Ultimate Full Company Growth TeamSean Ellis
 

Viewers also liked (20)

Getting startedwith noir-clojureexchange-2011
Getting startedwith noir-clojureexchange-2011Getting startedwith noir-clojureexchange-2011
Getting startedwith noir-clojureexchange-2011
 
Building a great mobile experience on the force.com platforms
Building a great mobile experience on the force.com platformsBuilding a great mobile experience on the force.com platforms
Building a great mobile experience on the force.com platforms
 
Building the Atlassian Community in the UK
Building the Atlassian Community in the UKBuilding the Atlassian Community in the UK
Building the Atlassian Community in the UK
 
Just-in-time development with kanban - JAX London 2011
Just-in-time development with kanban - JAX London 2011Just-in-time development with kanban - JAX London 2011
Just-in-time development with kanban - JAX London 2011
 
Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...
Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...
Salesforce CCT Munich 2013 Introducing heroku - elastic, polyglot platform as...
 
SalesforceA: What it can be
SalesforceA: What it can beSalesforceA: What it can be
SalesforceA: What it can be
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with Clojure
 
Dreamforce14 Metadata Management with Git Version Control
Dreamforce14 Metadata Management with Git Version ControlDreamforce14 Metadata Management with Git Version Control
Dreamforce14 Metadata Management with Git Version Control
 
Salesforce Summer '14 release overview
Salesforce Summer '14 release overviewSalesforce Summer '14 release overview
Salesforce Summer '14 release overview
 
Get Functional Programming with Clojure
Get Functional Programming with ClojureGet Functional Programming with Clojure
Get Functional Programming with Clojure
 
JIRA 5 collaborative platform
JIRA 5 collaborative platformJIRA 5 collaborative platform
JIRA 5 collaborative platform
 
Dreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developersDreamforce 13 developer session: Git for Force.com developers
Dreamforce 13 developer session: Git for Force.com developers
 
Lightning Workshop London
Lightning Workshop LondonLightning Workshop London
Lightning Workshop London
 
Salesforce Spring '16 Release Overview
Salesforce Spring '16 Release OverviewSalesforce Spring '16 Release Overview
Salesforce Spring '16 Release Overview
 
Salesforce Lightning Components Workshop
Salesforce Lightning Components WorkshopSalesforce Lightning Components Workshop
Salesforce Lightning Components Workshop
 
Achieving Awesome Adoption Through Training & Support v1
Achieving Awesome Adoption Through Training & Support v1Achieving Awesome Adoption Through Training & Support v1
Achieving Awesome Adoption Through Training & Support v1
 
Advanced designs for reusable lightning components
Advanced designs for reusable lightning componentsAdvanced designs for reusable lightning components
Advanced designs for reusable lightning components
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013
 
What is Salesforce lighting explained
What is Salesforce lighting explainedWhat is Salesforce lighting explained
What is Salesforce lighting explained
 
Building the Ultimate Full Company Growth Team
Building the Ultimate Full Company Growth TeamBuilding the Ultimate Full Company Growth Team
Building the Ultimate Full Company Growth Team
 

Similar to Heroku for-team-collaboration

Mds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuMds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuDavid Scruggs
 
Heroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & servicesHeroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & servicesJohn Stevenson
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101Sanjeev Sharma
 
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on HerokuIgor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on HerokuIgor Androsov
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comSalesforce Developers
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comSalesforce Engineering
 
Dreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to HerokuDreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to HerokuJohn Stevenson
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comAlistair Croll
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352sflynn073
 
Heroku - developer playground
Heroku - developer playground Heroku - developer playground
Heroku - developer playground Troy Sellers
 
Dev ops for python, django, ror and java stacks
Dev ops for python, django, ror and java stacksDev ops for python, django, ror and java stacks
Dev ops for python, django, ror and java stacksswamileo1
 
Building Java Apps on Heroku and Force.com
Building Java Apps on Heroku and Force.comBuilding Java Apps on Heroku and Force.com
Building Java Apps on Heroku and Force.comSalesforce Developers
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...eZ Systems
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...JAX London
 
The Twelve Factor App
The Twelve Factor AppThe Twelve Factor App
The Twelve Factor AppPablo Fullana
 
Connect Your Clouds with Force.com
Connect Your Clouds with Force.comConnect Your Clouds with Force.com
Connect Your Clouds with Force.comJeff Douglas
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk IntroductionIoana Baldini
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 

Similar to Heroku for-team-collaboration (20)

Mds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to herokuMds cloud saturday 2015 how to heroku
Mds cloud saturday 2015 how to heroku
 
Heroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & servicesHeroku Introduction: Scaling customer facing apps & services
Heroku Introduction: Scaling customer facing apps & services
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
 
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on HerokuIgor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
Igor Androsov on Mobilizing Salesforce Data with 12 Factor App on Heroku
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.com
 
Introduction to Heroku
Introduction to HerokuIntroduction to Heroku
Introduction to Heroku
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
 
Dreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to HerokuDreamforce 13 developer session: Introduction to Heroku
Dreamforce 13 developer session: Introduction to Heroku
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.com
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud Management
 
Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352Was l iberty for java batch and jsr352
Was l iberty for java batch and jsr352
 
Heroku - developer playground
Heroku - developer playground Heroku - developer playground
Heroku - developer playground
 
Dev ops for python, django, ror and java stacks
Dev ops for python, django, ror and java stacksDev ops for python, django, ror and java stacks
Dev ops for python, django, ror and java stacks
 
Building Java Apps on Heroku and Force.com
Building Java Apps on Heroku and Force.comBuilding Java Apps on Heroku and Force.com
Building Java Apps on Heroku and Force.com
 
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
The Business Value of PaaS Automation - Kieron Sambrook-Smith - Presentation ...
 
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
Java Tech & Tools | Deploying Java & Play Framework Apps to the Cloud | Sande...
 
The Twelve Factor App
The Twelve Factor AppThe Twelve Factor App
The Twelve Factor App
 
Connect Your Clouds with Force.com
Connect Your Clouds with Force.comConnect Your Clouds with Force.com
Connect Your Clouds with Force.com
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk Introduction
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 

More from John Stevenson

ClojureX Conference 2017 - 10 amazing years of Clojure
ClojureX Conference 2017 - 10 amazing years of ClojureClojureX Conference 2017 - 10 amazing years of Clojure
ClojureX Conference 2017 - 10 amazing years of ClojureJohn Stevenson
 
Confessions of a developer community builder
Confessions of a developer community builderConfessions of a developer community builder
Confessions of a developer community builderJohn Stevenson
 
Progscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptProgscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptJohn Stevenson
 
Introduction to Functional Reactive Web with Clojurescript
Introduction to Functional Reactive Web with ClojurescriptIntroduction to Functional Reactive Web with Clojurescript
Introduction to Functional Reactive Web with ClojurescriptJohn Stevenson
 
Thinking Functionally with Clojure
Thinking Functionally with ClojureThinking Functionally with Clojure
Thinking Functionally with ClojureJohn Stevenson
 
Communication improbable
Communication improbableCommunication improbable
Communication improbableJohn Stevenson
 
Getting into public speaking at conferences
Getting into public speaking at conferencesGetting into public speaking at conferences
Getting into public speaking at conferencesJohn Stevenson
 
Functional web with clojure
Functional web with clojureFunctional web with clojure
Functional web with clojureJohn Stevenson
 
Guiding people into Clojure
Guiding people into ClojureGuiding people into Clojure
Guiding people into ClojureJohn Stevenson
 
Git and github - Verson Control for the Modern Developer
Git and github - Verson Control for the Modern DeveloperGit and github - Verson Control for the Modern Developer
Git and github - Verson Control for the Modern DeveloperJohn Stevenson
 
So you want to run a developer event, are you crazy?
So you want to run a developer event, are you crazy?So you want to run a developer event, are you crazy?
So you want to run a developer event, are you crazy?John Stevenson
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudJohn Stevenson
 
Clojure for Java developers
Clojure for Java developersClojure for Java developers
Clojure for Java developersJohn Stevenson
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platformJohn Stevenson
 
Getting started with Clojure
Getting started with ClojureGetting started with Clojure
Getting started with ClojureJohn Stevenson
 
Salesforce Summer of Hacks London - Introduction
Salesforce Summer of Hacks London - IntroductionSalesforce Summer of Hacks London - Introduction
Salesforce Summer of Hacks London - IntroductionJohn Stevenson
 
Developers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformDevelopers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformJohn Stevenson
 
Developer week EMEA - Salesforce1 Mobile App overview
Developer week EMEA - Salesforce1 Mobile App overviewDeveloper week EMEA - Salesforce1 Mobile App overview
Developer week EMEA - Salesforce1 Mobile App overviewJohn Stevenson
 
Salesforce Mobile Developer Week
Salesforce Mobile Developer WeekSalesforce Mobile Developer Week
Salesforce Mobile Developer WeekJohn Stevenson
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaborationJohn Stevenson
 

More from John Stevenson (20)

ClojureX Conference 2017 - 10 amazing years of Clojure
ClojureX Conference 2017 - 10 amazing years of ClojureClojureX Conference 2017 - 10 amazing years of Clojure
ClojureX Conference 2017 - 10 amazing years of Clojure
 
Confessions of a developer community builder
Confessions of a developer community builderConfessions of a developer community builder
Confessions of a developer community builder
 
Progscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptProgscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in Clojurescript
 
Introduction to Functional Reactive Web with Clojurescript
Introduction to Functional Reactive Web with ClojurescriptIntroduction to Functional Reactive Web with Clojurescript
Introduction to Functional Reactive Web with Clojurescript
 
Thinking Functionally with Clojure
Thinking Functionally with ClojureThinking Functionally with Clojure
Thinking Functionally with Clojure
 
Communication improbable
Communication improbableCommunication improbable
Communication improbable
 
Getting into public speaking at conferences
Getting into public speaking at conferencesGetting into public speaking at conferences
Getting into public speaking at conferences
 
Functional web with clojure
Functional web with clojureFunctional web with clojure
Functional web with clojure
 
Guiding people into Clojure
Guiding people into ClojureGuiding people into Clojure
Guiding people into Clojure
 
Git and github - Verson Control for the Modern Developer
Git and github - Verson Control for the Modern DeveloperGit and github - Verson Control for the Modern Developer
Git and github - Verson Control for the Modern Developer
 
So you want to run a developer event, are you crazy?
So you want to run a developer event, are you crazy?So you want to run a developer event, are you crazy?
So you want to run a developer event, are you crazy?
 
Trailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App CloudTrailhead live - Overview of Salesforce App Cloud
Trailhead live - Overview of Salesforce App Cloud
 
Clojure for Java developers
Clojure for Java developersClojure for Java developers
Clojure for Java developers
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
Getting started with Clojure
Getting started with ClojureGetting started with Clojure
Getting started with Clojure
 
Salesforce Summer of Hacks London - Introduction
Salesforce Summer of Hacks London - IntroductionSalesforce Summer of Hacks London - Introduction
Salesforce Summer of Hacks London - Introduction
 
Developers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 PlatformDevelopers guide to the Salesforce1 Platform
Developers guide to the Salesforce1 Platform
 
Developer week EMEA - Salesforce1 Mobile App overview
Developer week EMEA - Salesforce1 Mobile App overviewDeveloper week EMEA - Salesforce1 Mobile App overview
Developer week EMEA - Salesforce1 Mobile App overview
 
Salesforce Mobile Developer Week
Salesforce Mobile Developer WeekSalesforce Mobile Developer Week
Salesforce Mobile Developer Week
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
 

Heroku for-team-collaboration

  • 1. Team collaboration in the Cloud John Stevenson Developer Advocate @ Salesforce / Heroku
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended April 30, 2011. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Proprietary & Confidential
  • 4. Challenging deployment “Ops teams are overwhelmed by developer requests” “Different environments are not always the same. Patching and internal processes often not automated” “There is a divide in many enterprises between the developers & operations teams.”
  • 5. Continuous Delivery “..reducing the cycle time between an idea and usable software” - Martin Fowler “Software delivers no revenue until it is in the hands of its users.” -Jez Humble “.. leads to deeper relationship between IT, their business customer, and their final customers.” -Jez Humble
  • 6. Cloud Services should be easy “Should have a natural way to use the services that fits into each teams existing workflow” “Should be easy to see the value & cost benefits” “Should be as trust worthy as any internal service, if not more so.”
  • 7. 30 second app - Demo
  • 9.
  • 11. 4 core principles Forget Run See Trust & Servers Anything Everything Manage
  • 12. What is Heroku ? Forget servers
  • 13. Introducing Dynos A self contained resource in which to run your application A logical abstraction over servers scalability is more valuable than # of servers Allows a trivial way to scale your app and know how much its costing you!
  • 14. For Developers Free: 750 hours per month per app Have as many apps as you require
  • 15. Scaling via web control panel
  • 16. Inside an Heroku Dyno Embedded • Jetty, Tomcat, etc Container Application Dependencies • Maven, Gradle, SBT, Leiningen, Bundle, etc. Your Application • Anyapplication code • Any framework (Spring, Play!, django, compojure,etc.)
  • 17. Forget Servers Focus 100% on code Fully managed platform Trust Heroku to be your DevOps support
  • 18. What is Heroku ? Run Anything
  • 19. An Elastic “polyglot” Platform-as-a-Service pol·y·glot [pol-ee-glot] adjective 1. able to speak or write several languages; multilingual. 2. containing, composed of, or written in several languages: a polyglot Bible.
  • 20. “Supported” languages A Polyglot platform: 6 supported languages
  • 21. Additional support through “Build packs” Control your own build, deploy & run cycle defined using shell script or ruby Create your app with a build pack heroku create myapp --buildpack https://github.com/a/buildpack.git
  • 22. Many build packs on Github
  • 23. Polyglot environments Sinatra Ruby on Rails Play! Mongo DB Amazon RDS Postgres Ruby Clojure Node.JS Spring Lift Waves Halcyon Noir database.com Couch DB Redis Padrino Ring Compojure Java Scala Open Open Frameworks Open Languages Databases
  • 24. No Vendor Lock-in Procfile A simple, declarative way to define app process types, so they can be easily managed in unison. A text file in the root of your project containing a startup command & parameters
  • 25. Procfile examples Simple web server web: python -m SimpleHTTPServer $PORT Clojure web: lein with-profile production trampoline run -m my-clojure-website.web
  • 26. Procfile examples Java, Play framework & Postres web: target/start -Dhttp.port=${PORT} ${JAVA_OPTS} -DapplyEvolutions.default=true -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=${DATABASE_URL}
  • 27. What is Heroku ? See Everything
  • 28. logplex Unified logging • App operations • Administrative commands • All infrastructure messages Real time Dyno information
  • 29. Logplex time-ordered events aggregated from the output streams of all your app’s running processes, system components, and backing services. heroku logs
  • 30. heroku logs heroku logs --source apps heroku logs --source heroku heroku logs --source heroku --ps api
  • 31. Example of error in logs
  • 33. Effortless Scaling Web Worker Workload Diversity (Process types)
  • 34. Scaling your app $ cat Procfile web: java $JAVA_OPTS EmbeddedServer worker: java $JAVA_OPTS YourJavaClass $ heroku scale web=4 worker=10 Scaling processes... done
  • 35. Control apps via Heroku.com
  • 36. Controling Heroku - CLI $ heroku ps Process State Command ----------- ----------- ----------------------------- web.1 up for 6s java $JAVA_OPTS EmbeddedServer worker.1 up for 5s java $JAVA_OPTS YourJavaClass $ heroku restart worker.1 Restarting worker.1 process... Done $ heroku status === Heroku Status Development: No known issues at this time. Production: No known issues at this time. $ heroku sharing === enterprise-workshop Collaborators jstevenson@heroku.com steve@jobs.com
  • 37. Trust & Manage 24x7 platform monitoring Herokai know when there is trouble before you do!
  • 39.
  • 40.
  • 41.
  • 42.
  • 44. What else is there to Heroku ? Heroku add-ons
  • 45. Extensibility A range of Relational & NoSQL databases Monitoring for your app …and too much to cover here https://addons.heroku.com/
  • 46. Postgres as a service Powerful data storage Irrespective of if you app is deployed on Heroku
  • 47. Git Push Deploy Getting started with Heroku
  • 48. Setup your Heroku account Create an account on Heroku Download the Heroku Toolbelt Upload you public key heroku login
  • 49. Whats in the Toolbelt? Heroku command line tools create | logs | ps | releases | run | addons | config A Git client Foreman run apps locally as they would run on Heroku
  • 50. 5 steps to first deploy Create you app (using your build tool) Initialise a git repository for your project Create your heroku app Commit your files to the local repository Push your app to heroku
  • 54. Heroku Collaboration Add multiple developers to an app
  • 55. Heroku Collaboration All collaborators can: push updates & trigger deployment view and change app settings Only Owners can delete the app or transfer ownership to a different account
  • 56. Github – Social Coding Collaborate on public or private projects Collaborate 24/7 all over the world
  • 57. Add Github repo to your app Create a new repo on Github Add the repo to your project git remote add github git@github.com/account/my-repo.git Push you code to github git push –u github master
  • 58. Collaborative coding on Github Add people to your Github repo only those that you trust! Encourage pull requests allows collaboration around commits Facilitate code reviews
  • 61. Adding more environments Typically there are: production, staging, uat, testing , dev Create the environments you want heroku create my-app-staging heroku create my-app-uat heroku create my-app-testing
  • 62. Check your addons first Check which addons used before creating new environments heroku addons --remote heroku heroku addons --remote production
  • 63. More Envs = more repos Every time you create a new Heroku environment a remote git repository is added git remote –v
  • 64. Managing multiple repos Learn to love git log Configure it to use –graph Or get a good visual git tool SourceTree for MacOSX is great (and free)
  • 69. Travis-CI for open projects
  • 70.
  • 71.
  • 72. Managing Deployment Rolling back your applications
  • 75. View info about a release
  • 76. Rollback to a specific version

Editor's Notes

  1. Maybe a venn diagram to illustrate these definitions better?
  2. ----- Meeting Notes (16/01/2013 11:59) ----- Create a new app via the website & on the command line. Show the addon market place, apps control panel & the dev center.