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

Heyo on Software Deployment

1,257 views

Published on

Overview of how Heyo deploys software quickly and reliably.

By Rishi Ishairzay

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,257
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 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 -&gt; continuous deploymentparallel shift in desktop applications -&gt; internet applicationsPeriodic ReleasesSlower to get feedbackBugs remain exposedDeploys are a significant event with overheade.g. Microsoft Office 2007 -&gt; 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 =&gt; 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

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

    ×