Sapphire Venture Joins Iron.io Investor Syndicate, Adds Fuel to our Enterprise Rocketship

iStock_000002843265_Large

Today, we’re getting an additional spark that will accelerate our push into the enterprise market. We are excited to announce an extension of our Series A round which now equals $11.5 million; and welcome Sapphire Ventures, to our list of investors – Baseline Ventures, Bain Capital Ventures, Divergent Ventures, Ignition Partners and Cloud Capital Partners. Sapphire Ventures focuses in expansion-stage financings for innovative software companies looking to scale globally. This is a great match for Iron.io’s revenue-growth current stage.

Business Insider just referred to Sapphire Ventures as “The Best Venture Capital Firm You’ve Never Heard Of” and I couldn’t agree more. In addition, to their phenomenal track record (7 IPO’s since 2014), from the first meeting on I could tell they had one of the most impressive grasps of the emerging modern enterprise tech stack on Sand Hill Road. I’m confident that with the assistance of Sapphire Ventures’ global enterprise network, experience, and expertise in the space, we’ll be able to advance our growth.

(more…)

Microcontainers – Tiny, Portable Docker Containers

microwhale-vs-bigwhale

Docker enables you to package up your application along with all of the application’s dependencies into a nice self-contained image. You can then use use that image to run your application in containers. The problem is you usually package up a lot more than what you need so you end up with a huge image and therefore huge containers. Most people who start using Docker will use Docker’s official repositories for their language of choice, but unfortunately if you use them, you’ll end up with images the size of the empire state building when you could be building images the size of a bird house. You simply don’t need all of the cruft that comes along with those images. If you build a Node image for your application using the official Node image, it will be a minimum of 643 MB because that’s the size of the official Node image.

I created a simple Hello World Node app and built it on top of the official Node image and it weighs in at 644MB.

That’s huge! My app is less than 1 MB with dependencies and the Node.js runtime is ~20MB, what’s taking up the other ~620 MB?? We must be able to do better.

What is a Microcontainer?

A Microcontainer contains only the OS libraries and language dependencies required to run an application and the application itself. Nothing more.

Rather than starting with everything but the kitchen sink, start with the bare minimum and add dependencies on an as needed basis.

Taking the exact same Node app above, using a really small base image and installing just the essentials, namely Node.js and its dependencies, it comes out to 29MB. A full 22 times smaller!

pasted_image_at_2016_01_22_11_20_am

Regular Image vs MicroImage

Try running both of those yourself right now if you’d like, docker run –rm -p 8080:8080 treeder/tiny-node:fat, then docker run –rm -p 8080:8080 treeder/tiny-node:latest. Exact same app, vastly different sizes.

(more…)

The Next Frontier: Learning Microservices in the Classroom

working

As a Customer Success engineer here at Iron.io, I’ve been fortunate enough to see people using Iron.io in ways I never thought about. It’s actually one of my favorite parts of my job.

Recently, I was chatting with a customer who mentioned his students were using Iron.io in their final project. This peeked my interest, so I interviewed Soumya Ray, an associate professor at National Tsing Hua University in Taiwan, about his experience. Professor Ray’s  Service Oriented Architecture class is an 18 week course that takes students from idea creation to final product. And, as a cherry on top, the class has students create the building blocks of their own startup with zero dollars spent. (more…)

Is Open Source Eating The World?

Is Open Source Eating the World?

Thanks to Dominic Alves for the base image! CC BY 2.0

The phrase, “Software is eating the world,” first showed up in 2011. In 2015, open source took its rightful seat at the table.

“If the theory pervades deeper – and software does eat the world – then surely open source software will swallow it, right?” Forbes hesitantly prodded in early 2015. Later in the year they more confidently thrusted with a piece titled It’s Actually Open Source Software That’s Eating the World.

This isn’t a movement spearheaded by a single voice. Wired joined with articles like, Open Source Software Went Nuclear This Year. Replete with quotes like: “This is not just a turning point, but a tipping point,” says Brandon Keepers, the head of open source at GitHub.

This was also echoed at events like Defrag2015. I attended a talk titled, “Open Platforms and Strategies – Why your platform should be open.” Wherein I heard strong conjectures such as: In about five years most products will be shipped as open source, on a platform like GitHub.

Is open source software eating the world? Is the future all GPLs, MITs, and Apache licenses? Of course not. Linux, Netscape and Apache httpd have all been hungry in the name of FOSS for a good long while.

If that’s the case, why the rush of excitement in 2015?

(more…)

Case Study: Astro Digital – DropCam for Space

Astro Digital a case study from space

Thanks to Eutelsat_SA for the base image! CC BY 2.0

Space, the final frontier. If only we could take selfies. Wait, what? We can? This is the service Astro Digital provides. A selfie-stick from space is my crude analogy. Turns out, there are better analogues.

I had the pleasure of catching up with Bronwyn Agrios, head of product at Astro Digital, to learn how it works. In Bronwyn’s (much more refined) words, Astro Digital is kind of like DropCam for space. Just pick a spot to monitor. When new images are snapped, Astro Digital runs some fancy image processing algorithms, and boom! You’re notified of new space-selfies.

Click to enlarge the Astro Digital infographic:

(more content below)

(more…)

The E.T. in ETL

The E.T. in ETL

Thanks to JD Hancock for the base image! CC BY 2.0

Anyone who’s ever done ETL knows it can get seriously funky. When I first started working on ETL, I was parsing data for a real estate company. Every once in awhile roofing data would appear in the pool field. “Shingles” isn’t a compelling feature for swimming pools. Go figure.

Thankfully, Node.js gives us a lingua franca for sharing cool solutions. A search for data validation shows there are more than a few options. For ETL, let’s take a look at just one of those options.

(more…)

Introducing Custom Docker Images, Private Docker Repositories and Environment Variables

customcontainer

We’re happy to announce three awesome new IronWorker features:

  • Custom Docker Images for all and Docker is now the default code packaging mechanism
  • Support for private Docker images on any Docker Registry, including Docker Hub
  • Support for custom environment variables

I’ll explain each of these features in more detail below.

Custom Docker Images for All!

Previously only available to customers on dedicated plans, this is now available to everyone! You can create custom Docker images and run them at scale on the Iron.io Platform. And as usual, you don’t need to think about servers or scaling or managing anything, you just queue up jobs/tasks. Jobs are executed using your Docker image + a message/payload that defines that job. 

To read how to make your own Docker Worker using the language of your choice, please see our Docker Worker GitHub repository for full documentation for most languages. 

There is a size limit to custom images on our small/free plans of 200MB so you’ll definitely want to use our iron/x base images that we use in our examples to keep them small. If you need bigger images, you can upgrade your account. 

Once you’ve pushed your image to Docker Hub, simply let Iron.io know about it:

Then you can start queuing up jobs for it.

You can see the full API here and client libraries for the language of your choice here.

Private Docker Repositories

Not only can you use your own custom images, you can store those images privately and still use them on IronWorker. Obviously you don’t want other people to access your code inside your image or any type of config files you might have put in the image (although we recommend using environment variables for that, see next section) so you can use a private Docker repository to keep it private.  

To use your private images on Iron.io, you need to login like you do with Docker:

Then just do everything else like normal.

Environment Variables

Instead of uploading a config file as json, we’ve added support for custom environment variables that will be passed into your Docker container at runtime. This allows you to set options that you don’t want to include in your Docker image, such as database credentials or variables that might change based on the environment (development vs production for instance). 

These are set by using -e flags on iron register, for example:

That’s it for Now

These new features give you full capability to use Docker to it’s full potential. Now that this is in place, there’s a lot of exciting new things to come that will build on this.

How To Build Your Own Docker Images

Build Your Own Docker Images

Thanks to Ugur Ceylan for the base image! CC BY 2.0

What’s with the Docker community’s love affair with Alpine Linux? Tiny containers means more compute resources left over for actual… computing! Alpine Linux is particularly tiny. It says so, right on the tin: “Alpine Linux is a security-oriented, lightweight Linux distribution based.”

Do you like saving money? I like saving money. Better resource utilization means happy bank accounts.

Let’s take a closer look at Alpine Linux on Docker. Heck, while we’re at it let’s build our own image.

(more…)

Case Study: OutCast – A Mobile App for Marine Weather Forecasts

We recently joined the OutCast team to chat about their app! What does it do, how does it work, and why is it so dang popular?

OutCast is a mobile weather and marine forecast application that is used by boaters, fishermen, divers, and other marine users to stay in touch with local weather and water conditions. What started as a personal project for the creators – Ed Gonzalez and William Kennedy from Ardan Studios – has turned into a well-regarded and essential app even among professionals who spend most of their time on the water.

Outcast.io brings together all the data that is needed to view and forecast marine conditions in a convenient and intuitive format. Whereas some weather apps may provide basic tidal information, the Outcast app goes many steps further by including real-time data from observation stations, buoys, radar imagery, air quality metrics, and more to provide a more complete picture of what’s happening in marine environments.

outcast dot io

(more…)

Best Practices and Anti-Patterns for Workers and MQs

Best Practices and anti-patterns for workers and message queues

Thanks to Ruth Hartnup for the base image! CC BY 2.0

If you’ve been programming for a while, it’s probable that someone, somewhere, has recommended the Gang of Four book.

The book dissects Object Oriented programming. It lists numerous ways of royally messing things up, but it’s claim to fame is that it also lists ways to do it right! These well tested paths to success often come with explanations for when to use them and why they’re good at avoiding common pitfalls.

These are design patterns. They’re embedded in the culture of programming, and they’re an amazing way to learn from others’ mistakes. At the outset of any project, a lot of paths are open to you. Design patterns illuminate the dark paths from the healthy, low stress approaches.

Today, we’re releasing our very own set of best practices and anti-patterns in the form of a white paper. It’s a quick read and will save you time as you tinker on your own workers and message queues. So, what do you have to lose?

(more…)