Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How we built our own secure, flexible and high ...

uaMobiTech
November 14, 2015

How we built our own secure, flexible and high performing CI system instead of using a Cloud one.

By Maksim Usenko - https://www.facebook.com/maksim.usenko.92
CI is essential part of development which prevents issues in code. Pros and cons of XCode Server services, its main application fields. Optimal settings of XCode CI and its usage agility comparing to another services. XCode CI pitfalls. Cloud services comparison (Travis, TeamsCity, Ship.io) with XCode CI.

uaMobiTech

November 14, 2015
Tweet

More Decks by uaMobiTech

Other Decks in Programming

Transcript

  1. Maksim Usenko iOS Software Engineer at Yalantis Continuous Integration How

    we built our own secure, flexible and high performing CI system 
 instead of using a Cloud one.
  2. At a Glance • What is Continuous Integration and why

    we should use it • OS X Server overview • CI work flow • Difficulties faced • Optimal CI configurations • Own server vs a Cloud one • Cost comparison
  3. Continuous Integration • catching problems quickly • detecting deprecated API

    methods per each integration • decreasing time for archiving and submitting builds to the QA department • flexible integration into existing process • supporting test coverage • statistics over time
  4. CI is the process that can be used to •

    automate testing • analyse code • archive and deploy • provide fast feedback • increase level of software quality
  5. OS X Server provides the following features: • File Sharing

    • Profile Manager • Caching Server • Time Machine • Wiki Server • Xcode Server
  6. Hardware update 0 5 10 15 20 Project 1 Project

    2 Project 3 Project 4 16.68 6.76 5.72 6.72 19.63 9.13 5.78 7.73 archive time in minutes
  7. Nightly builds • updating remote SDKs • caching • pulling

    resource code • project building • sending ipa to QA • running Unit Tests
  8. • convenient QA collaboration • executing integration at any time

    from IDE (dev) or Browser (QA) Nightly builds advantages • builds automation • early feedback • automatic distribution to TestFlight/Crashlytics
  9. Nightly builds 0 4.5 9 13.5 18 Project 1 Project

    2 Project 3 Project 4 13.77 5.59 4.86 5.43 16.68 6.76 5.72 6.72 archive time in minutes
  10. Optimal configurations save time 0 10 20 30 40 20.85%

    13.76% 34.61% archive time in minutes
  11. Cloud or Server? That is the question • Easy setup

    • Subscription pricing • Hosted in the cloud • Distributed collaboration Cloud benefits: • Extreme customisation • One-time purchase • Host on your own hardware • Complete application control Server benefits:
  12. Cloud services Travis CI Codeship CircleCI Easy to get started

    Unit testing Deployment Repositories Heroku AWS GitHub Bitbucket GitHub AWS Heroku GitHub Heroku
  13. Cost comparison Travis CI Codeship CircleCI OS X Server Jenkins

    Hardware: i7 4x 2.6 - 3.0 16Gb 1Tb $1 300 $30 Free $120/month $99/month $50/month
  14. VS Cloud • gives you less control and security •

    you give your code to 
 a third-party service • faster for setup • cheaper at start • flexible configurations • cheaper in the long run Server • any source repository • secure • timely software updates