Microservices are great! Or, at least that’s what the internet keeps telling me. There are a lot of upsides, but there are more than a few challenges too.
For example, microservices are a polyglot’s dream. Have a Rails app and a use case where Ruby seems a bit too slow? No problem, microservices and Go are a good starting point.
As you might imagine, it’s a nightmare keeping track of style guides and best practices on a per service basis. If only there were a tool to help manage this mess. Oh, hey there pre-commit!
Thanks to Thomas Leuthard for the base image CC BY 2.0
Microservices are difficult. Don’t believe me? Let’s read a quote from Chris Richardson, the founder of CloudFoundry:
When developing the first version of an application, you often do not have the problems that [the microservices] approach solves. Moreover, using an elaborate, distributed architecture will slow down development. This can be a major problem for startups whose biggest challenge is often how to rapidly evolve the business model and accompanying application.
As microservices continues to spread through the industry as a dominant pattern for building modern cloud applications, marquee examples from large-scale companies such as Netflix and Twitter may appear daunting to companies still on a growth path. When powering through agile cycles to release new features at a rapid pace, the last thing on your mind is maintainability. Well, maybe not the last thing, but it is a lesser concern.
It’s rare to have the foresight to recognize future bottlenecks early on, so when we came across a series of blog posts by Tom Watson, the CTO and Co-founder of Hubble who did just that, we took notice and had a quick chat to discuss his experiences. As it turns out, taking a moment to reflect on how things scale as they grow actually put them in a position to release features quicker and more effectively by injecting a lean methodology of focused microservices development patterns and operations.
We came across a great tech post the other day by developer and writer Alfred Nutile. His post describes a simple process for doing background processing and creating microservices within Laravel, a fantastic PHP framework for modern web developers.
Chad Arimura, CEO and Co-Founder of Iron.io, will be speaking at IoT StreamConf conference in April. We’re also sponsors of the event.
This conference will bring together architects and builders to discuss best practices and the emerging IoT technology stack. If you want to collaborate with hands-on people solving real IoT challenges, IOT Stream Conf is the place to be.
Here’s a description of Chad’s talk:
Thur, 11:00am (Apr 23) Harnessing Microservices and Composable services for Agility and Scale in IoT Applications
Fast-moving, agile organizations such as Netflix, Gilt and Untappd are embracing microservices as the new foundation for software development – a direct response to monolithic approaches of the past. A composable services architecture breaks application development into discrete, logical tasks that are better suited for handling event-driven workloads within distributed cloud environments.
This session will review the best practices for developers who must address the challenges of deploying and managing service-driven architectures for IoT and stream-oriented workloads.
The conference is hosted and organized by PubNub and is on Thursday, April 23 at the Bentley Reserve in San Francisco, CA. Other speakers and sponsors are from companies that include GE, Cisco, Intel, Microsoft, AT&T, Softlayer, Ericsson, and others. If you’re at the conference, be sure to come up and say hello.
The use of microservices is a growing trend in application development because it provides an answer to the overhead incurred by monolithic applications. The practice of breaking apart application components into independent services introduces more moving parts to manage, however, requiring a robust communication method in order to keep services and data in sync. The idea is to decouple services without derailing your application.
When using the word ‘ephemeral’, it’s hard not to think of Snapchat these days, however the concept applies to the on demand computing pattern we promote here at Iron.io with our task processing service IronWorker. At a glance, each Docker container in which a task runs is only alive for the duration of the process itself, providing a highly effective environment for powering applications that follow the microservices architectural style. Continue reading “The Ephemeral Life of Dockerized Microservices”