1. How did you come up with DNS Spy idea? Was it internal need and tool for your own agency, which you then decided to release as a SaaS product? To answer that question, let me give a really quick intro in what I do and where I work. I'm the Support Manager at Nucleus, a Belgian managed hosting provider. We're responsible for a few thousand servers and the websites and applications they host. It's our task to deliver uptime-as-a-service, our clients rely on us to keep their online business running, 24/7. Think of us as the Belgian Rackspace, focussing on Belgium, the Netherlands and Luxemburg (BENELUX). Coming back to DNS Spy, the first version I ever created was the most basic form of DNS monitoring you could have: every time a domain I cared about changed IP, it would send me an e-mail. I built it as a quick hack to stay informed whenever projects I was working on would go live. Normally, a go-live is scheduled, requires a bit of communication & final checks, but I learned quickly that it doesn't always go this way and agencies or clients decide on a whim to launch things. :-) [caption id="attachment_1515" align="alignnone" width="740"] You can scan your domain right from the homepage![/caption] It also worked the other way around, if clients would migrate away from us - their right, of course - we often don't notice it straight away. Monitoring still reports the website to be up, it's just no longer hosted with us. Monitoring the DNS stack gave me instant notifications when a client changes hosting provider. That first version was made somewhere in 2012, a little over 5 years ago. After all these years, I still heavily relied on it for notifications and alerting, on top of our existing monitoring stack. Not just for our own clients, but also to keep an eye on our competitors and see what they were up to. And then suddenly, mid 2016, Laravel Spark was released and I finally found a way to make a commercial SaaS app out of it. Without Spark, it would have taken way too long to ship a first version and it never would've been made.
2. DNS Monitoring is not an everyday task for people, do you need to educate your potential clients about why they should care about DNS? Or your audience understands that without questions? I think most people understand the basics of DNS: a name turns into an IP address. The subtle nuances are lost to most, but that's probably OK. Usually, it's your DNS provider that abstracts those away behind a fancy GUI, for your own convenience. DNS Spy will never be a tool for the masses. Not enough people care about their DNS enough for that. I think I'm in a strong position to emphasize the importance and critically of DNS though, so I'm trying to push that most in my communication and marketing. But I strongly believe that DNS is one of our weakest areas of the modern internet. It's taken for granted that it "just works", without thinking through the consequences: is all your DNS hosted at a single provider? On the same network? Behind the same domain? What if any of those components break, are your applications still online? We focus so much on redundancy in terms of geographical hosting, load balancing, SQL clusters, ... that we fail to think of the lowest layers of the stack: DNS. For many websites, their DNS stack has several Single Points of Failure (SPOF) in them. I'm using the website and the public scoring system to raise awareness of the weak areas of a domain, in the hope that users will take these warnings seriously. And as their DNS stack improves in terms of resilience, speed & reliability, they'll consider proper DNS monitoring with DNS Spy.
3. I know that DNS Spy was built on Laravel Spark. What are your impressions about the platform? Easy to use and customize? If you had to choose again now, would you use Spark? Laravel Spark can easily be summarized: without Spark, DNS Spy wouldn't exist. Period. I'm a decent coder and sysadmin. This combination allowed me to invent and build DNS Spy. But I really don't like the whole user management, billing & payment aspect of online applications. It's a time sink, very sensitive to errors and very frustrating to build. Spark took care of that for me from day 1, so I could focus on what matters: my app. I haven't had to expand it all that much, because the basic features are all their and easily configured through the SparkServiceProvider. Free trials or not? A boolean. Credit card required on sign up? A boolean. Two factor auth? A boolean. Switch from USD to EUR currency? A variable. For bootstrapping an app, I think Spark is the best investment I ever made. Maybe, one day, it'll outgrow the abilities of Spark. If that ever happens, I hope it generates enough revenue to take care of that.
4. DNS Spy is already half-year old, how’s it going? Do you have paying customers? Are you generally satisfied with the results and numbers so far? It's been in private beta for 3 months and in public beta (free for all to register) for the last 2 months. All communication so far has been screaming "beta" and "provide feedback", causing it to feel unfinished and unstable. Yet, despite that, I currently have around 10 paying customers already and I haven't done any marketing beside blogging or tweeting about it. For an unfinished beta, having paying customers is good validation of the product to me. My plans are remove the beta label in the next days/weeks and publicly promote it as a solid, reliable DNS monitoring solution. I think it's ready for prime time.
5. You’re pretty active in Laravel community, but more from the DevOps side. What tips could you give to Laravel developers to setup/maintain their server environments more effectively? The thing that's caused me to learn the most about being a Dev or Ops person, is to switch sides for a few months. If you're a full-time Dev, try setting up and maintaining your own server. If you're an Ops, try building a small (PHP) app to learn the basics of development. [caption id="attachment_1522" align="alignnone" width="740"] Check out Mattias's Twitter accounts for tips like these[/caption] It's eye opening what we take for granted from both sides and the knowledge we can transfer between Devs & Ops. For instance, it's only relatively recently that the Ops side embraced continuous delivery/integration & unit testing, something that's been a common practice among Devs for years. If you're looking for a concrete tip: learn the HTTP protocol. A large amount of developers don't know how HTTP works, the concept of cookies & session cookies, the semantics of a POST vs GET vs PUT vs PATCH. The HTTP protocol is quickly evolving, but the basics - so far - remain the same. Invest some time in learning how HTTP headers work, how caching can be implemented, how cookies get stored and transferred, ...
6. As DevOps professional, what do you think about Laravel Forge and Envoyer.io as solutions for Laravel server management and deployment? Would you recommend them? (or alternatives?) I think Taylor really nailed it with both services. The biggest hurdle of any dev is getting things online in a quick, reliable & repeatable way. Both Forge & Envoyer handle that. I haven't used Forge yet, but we've been on the receiving end of Envoyer multiple times - where clients deploy code to our servers. [caption id="attachment_1524" align="alignnone" width="740"] You should check out Envoyer, we're using it at LaravelDaily Team, too![/caption] The directory structure, SSH keys, built-in Artisan migrations, ... are rock solid. We've long had issues with devs creating their own deploy scripts that don't handle timeouts or failure, but haven't had a single issue with clients using Envoyer.
7. Finally, quick one: Digital Ocean, Linode or AWS? Why? If you're looking for cheap, unmanaged, hosting: I think either one of those 3 is just fine. Each has its strengths & pricing. I don't think you can do wrong with any of them. But I want to emphasise the unmanaged part: you're responsible for your own uptime, monitoring & patching. In an age where server exploits get discovered and abused in a matter of hours or days, you need to be on top of your game and be able to react accordingly. If want more peace of mind, I recommend a managed hosting provider with PHP & Laravel experience to take care of your 24/7, like Nucleus. :-)
Thank you, Mattias, for really detailed answers, was a real pleasure. If you want to follow his work online, here are three links: