Recently, a few folks from CenturyLink Cloud spoke with Dave Persing, director of engineering at Nebari Software. Nebari is an agency focused on custom development for Internet of Things (IoT) apps and other verticals. The company was an early adopter of CenturyLink’s AppFog service.
This post is an excerpt of a recent conversation about their usage of AppFog and how it’s influenced their approach to client projects.
CTL Cloud: Your company is a lean-and-mean software development shop. How would you characterize your clients?
Nebari: We work with clients large and small. They want to try out new tech, and see how it can be used to support their brand. They turn to us because we can get things done faster, and we have expertise in the cutting edge. Our work can be a PoC, prototype, or something running in production. Our end deliverables are often used to “sell” a larger investment in a certain area of tech.
CTL Cloud: Sounds like a lot of these projects “come in hot” so to speak.
Nebari: That’s right, rapid delivery is the name of game. That’s how it goes for any dev shop these days. For us as an agency, it means a direct hit to our bottom line if we’re not efficiently going about our work.
CTL Cloud: Is that why you started talking to us about AppFog and application services in the first place?
Nebari: We’d prefer not to manage a customer's infrastructure - but when we do, it needs to be as easy as possible for us to work with.
Maintaining servers is fun in your spare time on a home box. But it’s different when you’re live in production, running an app for one of the largest brands in the world! In fact, it’s a little terrifying to have to deal with all of the responsibilities that come with running your own infrastructure.
After a while, we had a bit of an epiphany. We started to ask ourselves some key questions, like ‘Do we want to be in the business of operations?’ ‘Do we want to manage our clients’ servers?’ ‘Do we want to create patch cycles and deal with all of the overhead?’
This kept me up at night. I just didn’t want to do it anymore. Keeping servers running and patched didn’t directly affect the success of our projects or the quality of our deliverables.
CTL Cloud: Even with public cloud, there’s still a lot of configuration management that devs have to do.
Nebari: That’s our experience too. We’ve used Microsoft Azure, a lot of us in the company have familiarity with those services. I’ve written a whole bunch of Ansible playbooks to help us with operating there. I am by no means a System Administrator, but this has been our reality.
We found that scale on Azure can be automated, but it still needs configuration. We used Ansible playbooks for that. But even then, we quickly ran into provisioning and configuration issues.
Deployment required a bastion host due to an Ansible limitation, and each step of the deployment process required custom scripting. Of course, there was still all the patching to do as well. Like I said earlier, we’re not Sys Admins, and don’t want to be.
CTL Cloud: Then you looked at Docker, right?
Nebari: Yeah, Docker is awesome for lots of things.
For us though, we determined that it still requires some configuration for linking multiple images. We still would need to host our images in-house. Setting up a private Docker Registry is easy, but requires more maintenance from us.
And deployment pipelines still need to be implemented, outside of building the images.
CTL Cloud: You guys have been using AppFog, the CenturyLink service based on Cloud Foundry, for a while now. What was it like to get started?
Nebari: When we heard about AppFog, there was the promise of 'just launch your node app with a MySQL instance.' The service would do all that management for you. There would be no tuning, no security patching. The elasticity of the service makes it super easy to scale up and down.
So we set Ansible aside, and started to focus on AppFog. It was really easy! We setup our dev, staging, and prod environments quickly, and we got continuous delivery going fast. And the 12-factor approach for “Cloud Native” applications is easy to adhere to in AppFog.
We just did our first blue-green deployment with zero downtime. One of the things I really liked was that I can have two different apps routed to and from the same URL so I don’t have to manage DNS entries or routing infrastructure in front of my applications. It’s really easy to go in and bind a service to an app, and have two different apps that pull data from the same database. That made continuous deployment very easy to automate.
CTL Cloud: Earlier you were talking about getting out of the infrastructure business totally.
Nebari: Devs think differently from Sys Admins. Our mindset is: ‘don’t make me pay’, that is, ‘don’t make me spend my time on stuff that’s not code’. I just want to deploy my app, I don’t want to think about anything else. And with AppFog, this is what happens. I don’t have to think about patching, the OS, network routes, or anything that’s traditionally associated with running servers.
CTL Cloud: What has this approach meant for you on the business side? Has it had any relevance with your clients?
Nebari: We are primarily a consulting shop and try to target smaller scale, reasonably short-term contracts. We like to think of ourselves as a SWAT team – we can come in, bang stuff out, and ship something that’s functional, looks good, and performs well in a short amount of time.
AppFog fits in really well. The barrier to entry for setting up an environment is not a three or four day process of running playbooks over and over again, running Chef recipes, and having to make sure that all of your connectivity is up, and everything is configured correctly.
We can now hit the ground running and stand up development environments quickly for our projects. That’s huge. AppFog helps streamline our project workflow since we can start development immediately, and share a link to our clients earlier. Our clients obviously like the quick turnaround.
Our wheelhouse is doing dev work, not managing infrastructure. The more we can spend time on software development, the more bang for the buck our clients actually get. That’s one of our goals: we want to be transparent, and help out our clients as much as humanly possible. AppFog allows us to do more coding, and less operations stuff.
There’s the pricing sensitivity of our clients too, especially for smaller companies. These guys are on a tight budget. We’re very open and honest on our pricing, and we go line-by-line to try and help them reduce costs if that’s what’s needed.
AppFog is a lot cheaper than other services we’ve looked at. That’s a major draw for our clients, as well. With AppFog, we can save them money and time on infrastructure setup. Rather than a week of setup, with AppFog, it’s a day at the most. You are glad to have those days back as deadlines approach!
It helps being able to make sure our engineers are focused on code and not infrastructure management…everyone can focus on what they’re good at. AppFog relieves a lot of pressure this way.
CTL Cloud: You have integrated some 3rd party services into your applications running on AppFog. Can you describe what you’ve done?
Nebari: We plugged in Papertrail for logging. There’s a couple of tutorials online to create a user-provided service for AppFog. You can see the logs live on Papertrail and search through them. It was really easy to setup. It’s just another bound service in the application manifest file. You bind it there, and every time you deploy, your services are bound automatically to your application.
AppFog made this much easier than other services we have tried to use.
CTL Cloud: Where would you like to see AppFog go from here?
Nebari: We’d like to view more stats on the dashboard. You can get some of this with the command line, but it would be nice to see visuals of throughput numbers, CPU, and memory. An integration with a 3rd party monitoring tool could be really helpful, as well.