• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Heyo on Software Deployment

Heyo on Software Deployment



Overview of how Heyo deploys software quickly and reliably.

Overview of how Heyo deploys software quickly and reliably.

By Rishi Ishairzay



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Experienced developers, most important part of startup – be agile, fastest route.Break things often, small scale, nothing is critical yet
  • Paradigm shift in development of software and how products/companies are being built is occurring right nowperiodic releases -> continuous deploymentparallel shift in desktop applications -> internet applicationsPeriodic ReleasesSlower to get feedbackBugs remain exposedDeploys are a significant event with overheade.g. Microsoft Office 2007 -> 2010Continuous DeploymentInstant feedbackQuick features are easy to add/remove (and test) reliably Increased control over what’s pushed out to userse.g. Google Docs
  • Technology StackPHP, MongoDB, Redisgit + githubRackspace cloudWhat we use it forHeyo API - communicates with mobile appsHTTP inputJSON outputAPI endpointsOnce app is deployed endpoints are fixedEndpoints can only be added/enhanced/fixedUse PHPUnit for Functional Testing as opposed to Unit Testing Lowest hanging fruitSame concept, except higher levelDon’t test every internal function, just test exposed endpoints and overall system behavior
  • write code locallywrite tests locallyrun new tests locallycommit codedeploy to development serverrun all tests on development serverdeploy to production serverrun common sense test on production serverTest client against dev server, anything that touches an external APIDev + client work togetherDeploying clients and servers don’t have to be in sync
  • Instantaneous benefits When you run tests, you’re testing everything, not just code you just wrote Sure that it’s reliable – anybody can write tests saying “small => big”, small pushes, easy to find problems, easy to rollbackShowgit commit log – small changes, problems
  • Iphone appDrawbacks/challenges Not possible with mobile appsAn app that gets updated often, gets annoyingExample of native apps that are doing cd natively (chrome)Challenging to test against external APIs (ieFacebook connect) No way of knowing that 3rd party will adhere to your specsNot all code reviewed before deployed
  • How it has affected our workflowBug fixesWrite test that exposes bugResponsible developer gets notified and fixes the relevant code until the test passesNever being a bug againStart with tests that test core functionality, then as problems arise, continuously build up test suiteStarted with a dozen tests and as we found more bugs, build it as you need itTesting suite becomes the spec simple api, json outputServer code built to conform to testsGot ahead ofClient code uses tests as design spec
  • Focus on fast, working codeHTTP/JSON – easy for testingEvery language has frameworks e.g. selenium,junit
  • RecapFocus on fast, working codeHTTP/JSON – easy for testingEvery language has frameworks e.g. selenium,junitTeam city

Heyo on Software Deployment Heyo on Software Deployment Presentation Transcript

  • Deploy Code Like It’s Your Job.
    Rishi Ishairzay
    Co-Founder of Heyo
    [root@HeyoDev ~]# deploy
    3 Commits Pushed to Development
    Deployment Successful
  • The New Era of Software
    Periodic Releases
    Desktop Apps
    Continuous Deployment
    Web Applications
  • Heyo + Continuous Deployment
    Heyo JSON API
    PHP, MongoDB, Redis
    Git + GitHub, Rackspace Cloud
    Functional Testing
    Customized PHPUnit
    Passing tests =
  • demo
  • Our Process
    Local Development
    Dev Server
    Production Server
    Commit + Push
  • Instant Benefits
    Thorough Testing
    Fast Deployment
    Small Changes, Small Problems
  • Drawbacks with Heyo’s Method
    Native applications
    Not everything can be tested
    No formal code reviews
  • Changes in Workflow
    Bugs become Tests
    Testing Suite becomes the Spec
  • So…
    Every language has a framework
    Best for fast, reliable code
    Not best for mission critical code
  • Thanks!
    Heyo hires hackers!