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

Vapor & Nodes - Using Vapor in production (Serv...

Vapor & Nodes - Using Vapor in production (ServerSide.swift)

Nodes loves Vapor. We are using Vapor since day one and want to share our experiences with our clients and partners but also a little bit of our history with Vapor.

This talk was held by Casper Rasmussen and Christian Weinberger at ServerSide.swift conference 2018.

https://www.nodesagency.com/
https://www.nodesagency.de/
https://engineering.nodesagency.com/

Avatar for Christian Weinberger

Christian Weinberger

September 14, 2018

More Decks by Christian Weinberger

Other Decks in Technology

Transcript

  1. Casper Rasmussen London / Copenhagen MSc. Eng, Digital Media CTO

    & Partner Nodes Agency First app 2009 Android since 1.5 PHP Cake / Laravel Server side Swift - Vapor Github: casperhr
  2. Christian Weinberger Berlin Technical Director Nodes Agency First app 2008

    iOS since 2.2 Server-side Swift - Vapor Github: cweinberger Twitter: _cweinberger Joined Nodes
  3. Berlin Office Founded April 2018 In the center of the

    city Co-working space (rent24) 7 Nodes Germany
  4. 10 Martin, Managing Director Christian, Technical Director Martin, Vapor Developer

    Nora, Marketing Android Developer iOS Developer Digital Consultant iOS / Vapor Developer joining Nov '18 joining Dec '18 joining soon YOU?
  5. 13 COMPLEXITY GREW 2012 Lead Mobile -> CTO 2012-2013 PHP

    with CakePHP 2.X 2014 CakePHP -> Laravel 2014-2016 Laravel 4 -> 5 & PHP 5.5 -> 7 2015-2016 Scouting for new web framework / language Project lifetime Project complexity 2000+ hrs 30 hrs 5+ years 1 month 2013 2012 2011 2010 2009 2014 2015 2016
  6. 15 WHAT IS NEEDED? • Slick & strictly typed language

    & compile time • Modern MVC / ORM • Open Source framework with great community • Running on Linux technologies • Ideally synergy with other teams (iOS/ Android) - Billable % / margins • High performance • It should attract talent • Fit the projects/clients we work for
  7. 16 WE'VE RESEARCHED SEVERAL CANDIDATES ... • PHP, Laravel /

    Symphony • Ruby, Ruby on Rails • Node.js, Express / Meteor • Java, Spring boot • C#, .NET • Python, Django • Go lang
  8. Pros • Extremely slick / modern language • High quality

    source code • Synergy with iOS team • Really good community • Linux • Fast (often performing top 3) • Powered by Apple Cons • “Young” language / framework 17 … AND ENDED UP WITH SWIFT & VAPOR.
  9. Feb 2016 Found Vapor on Github and contacted Tanner Mar

    2016 Meet with Tanner in Copenhagen May 2016 Invested into Vapor Rest of 2016 Playing around with beta and Vapor 1 Jan 2017 Starting in production … Sep 2018 25+ projects completed/in development in Vapor 30+ open source packages 8 Vapor developers (4 can iOS) 18 THE JOURNEY.
  10. 22 AND IT'S ALSO GOOD FOR RECRUITMENT • Cool stack

    • Being part of something bigger ◦ Open source ◦ Tech blogs ◦ Meetups • Awesome colleagues • Project(s) / Salary Amazing channel Developers are looking for ... • High skilled (seniors) • Big talent (young developers) • 50% has iOS knowledge • Willing to relocate to work with Vapor • 100% Increased unsolicited applications
  11. • Rich language (Swift) covered a lot of Laravel’s features

    (String helpers, Collections & filters) • Less unit testing needed. We could skip a lot, since the language is so strict. • Availability of threading allowed us to skip using beanstalkd / Gearman and other services. • Hosting costs for Swift / Vapor projects are a lot lower than PHP / Laravel (since they can run on <30mb memory) • PHP extensions. Nothing like this (gladly) • Synergy between iOS / Vapor teams is good, better than first expected • Less bugs, our Vapor projects have way less bugs in production 24 SOME LEARNINGS.
  12. 25 MORE LEARNINGS. • Foundation is lacking Linux support for

    some classes/methods, try to avoid it or add this to your bookmarks: https://github.com/apple/swift-corelibs-foundation/blob/master/Docs/Status.md • Missing libraries. PDF / Excel export, ... • No Swift package manager for iOS
  13. 27 Client arguments for classic (read: legacy) stack • Legacy,

    old code base • Synergy (in house teams) • CTO opinionated by blog / conferences / old habits • Cost savings / Hybrid solutions -> We push hard for native • Find a weakness / problem with their stack and provide a solution with your stack.