1M msg/sec: IronMQv3 Hits Dos Commas

IronMQ now has doors that go like this:

Doors

Nearly two years ago, we set out to build a more friendly message queueing service that still keeps up with the big boys. In previous posts we have only shown the performance of the single server version, but now it’s time to take the gloves off and showcase the production ready, clustered version of IronMQv3.

 

The de facto performance posts for distributed databases, message queues and the like are x can do a million/second y with z number of machines. I just wanted to do a million of something per second to compensate for always coming in last for the mile run in elementary school.

 

Lingering childhood issues aside… Continue reading “1M msg/sec: IronMQv3 Hits Dos Commas”

It’s Bugging Me – Debugging in Unknown Languages

Debugging-in-Unknown-Languages

I’ll admit it, for one reason or another, I never really learned .NET. I think it just wasn’t very popular when I started my career and none of the places I’ve worked at have needed it.  It somehow never crept into my list of languages to learn, so here I am. For the record (and to keep the comments nice) I have nothing at all against .NET.

Everyone has languages that they just never got around to learning (if this doesn’t describe you, tweet me, I have a job waiting). If you work in the services side of your company like me, from time to time, these gaps in your knowledge can really have you scrambling to see why something’s not doing what it should. Hopefully, there’s a friendly coworker available to help, but not always. What if, you’re the coworker people go to for help. What can you do then? Continue reading “It’s Bugging Me – Debugging in Unknown Languages”

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.

Continue reading “Sapphire Venture Joins Iron.io Investor Syndicate, Adds Fuel to our Enterprise Rocketship”

Microcontainers – Tiny, Portable Docker Containers

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.

Continue reading “Microcontainers – Tiny, Portable Docker Containers”

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. Continue reading “The Next Frontier: Learning Microservices in the Classroom”

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.

See How Untappd Processes 100s of 1000s of Updates a Night

Ironio_web_HeroBanner_Untappd_V3_twitter

Untappd, a mobile check-in app for beer lovers, helps beer lovers share their passion with friends and other beer lovers from around the world.

With millions of users checking-in, tracking and sharing newly discovered beers and beer drinking locations, as well as earning points for coveted badges, the Untappd app’s processing power is tested daily.

Watch the Untappd video to see how the team was able to make the app an integrated part of many beer lovers night out. Continue reading “See How Untappd Processes 100s of 1000s of Updates a Night”

The Easiest Way to Develop with Go — Introducing a Docker Based Go Tool

Via Medium

While trying to make a drop dead simple example for running Go programs on IronWorker, I realized there’s just no simple way to for us to point someone at an example repo with Go code and have them up and running in a few minutes. This can be done in other languages fairly easily because they don’t have special requirements like a GOPATH, a specific directory structure, and they typically have easier dependency management.

Continue reading “The Easiest Way to Develop with Go — Introducing a Docker Based Go Tool”

What is a Worker???

what is worker drawingToday, Iron.io sales engineer/teacher Yaron Sadka continues our FAQ video series by answering IronWorker related questions. In the following two videos he guides us through: What is a Worker? and What you use a Worker for?

Stay posted for more of these FAQ video to come.  Click here if you have any questions or want to take a deeper dive into what Iron.io does. Continue reading “What is a Worker???”

Iron.io Launches New FAQ Video Series

FAQ-Series-Iron.io-Yaron-SadkaLately, we have been getting a lot of questions like “what is message queue?” and “how can IronMQ help my business?”  Although we’ve been more than happy to address these questions individually, we figured how great would it be to create a video series that touched on a lot of these frequently asked questions.  

Our very talented (and brave) sales engineer Yaron Sadka, took the time to sit down and explain some of these often heard questions.  Kick back and enjoy our first two videos of the series entitled What is a Queue? and What is a Message Queue Used For?.  
Continue reading “Iron.io Launches New FAQ Video Series”