Welcome!

Microservices Expo Authors: Stackify Blog, Elizabeth White, Pat Romanski, Liz McMillan, Yeshim Deniz

Related Topics: Microservices Expo, Java IoT, Containers Expo Blog, @CloudExpo, @DevOpsSummit

Microservices Expo: Blog Post

PaaS and #Microservices By @bcferrycoder | @DevOpsSummit #DevOps #PaaS

Part 5 - Advice for individuals, teams, and organizations considering a move to microservices

In the first four parts of this series I presented an introduction to microservices along with a handful of emerging microservices patterns, and a discussion of some of the downsides and challenges to using microservices. The most recent installment of this series looked at ten ways that PaaS facilitates microservices development and adoption.

In this post I'll cover some words of wisdom, advice intended for individuals, teams, and organizations considering a move to microservices. I've gleaned this advice from the various articles and meetups mentioned above, from dozens of discussions with architects and developers at a handful of organizations who are moving forward with microservices, as well as from my experience building a couple microservices-based systems before microservices was a thing.

Words to the Wise / Words to the Weary
Start small, move fast
Don't expect to "pull a Netflix." What I mean by this is that you throw millions of dollars and buildings - full of smart engineers and architects, with buy-in from the top of the organization, at a rapid corporate-wide metamorphoses from monolithic apps to microservices apps. That's just not realistic for most organizations today. Dramatic changes to the org-chart are almost impossible. Change needs to be small, with minimal investment, and rapid results. With enough measurable success, the slow transition to a microservices-based approach is more within reach.

Choose the right project
Ideally, for your first foray into microservices, choose a project with some of these characteristics:

  • Short-lived
  • Internal
  • Non-production
  • Non-mission critical
  • Small
  • Greenfield, if possible

By focusing on these types of projects you minimize risk while you get the tooling, the process (more accurately, lack of process), and knowledge in place as a foundation for further microservices efforts.

Consider hackathons and lab projects
Taking the lead from Mozilla, consider lab projects as the first steps into microservices. Hackathons and developer contests are particularly well suited. These are short-lived, with participation from passionate and energetic early-adopter-type developers who like to experiment.

Eliminate IT barriers
I can't emphasize this enough: Go to any lengths to eliminate any IT barriers currently impeding app development. Do not, I repeat, DO NOT force a developer to submit a service ticket to provision a resource (VM, data service...). Doing so defeats many of the advantages of microservices and maintains the destructive hierarchy that commonly exists between developers and IT.

However, many organizations might find that disrupting their current ticket-based process to obtain resources is too much of a stretch. If so, find another way. Use an external cloud, such as AWS or Rackspace or HP Helion Public Cloud, for early microservices development. Or, if that's not permissible, build up three Linux PCs and put them under someone's desk. I'm serious here - with today's modern tooling (read PaaS) it's trivial to build a fully functional cloud out of a handful of PCs and with the same tooling; it's equally trivial to move a complex microservices-based application from an under-the-desk cluster to an enterprise data center once the app is ready for prime-time. The point is, go to almost any lengths to make sure there's no ticketing system or other process to interfere.

Allow devs to push to production
A developer who can push to prod is often empowered, and incented to produce higher quality code. This has countless advantages, probably the most significant of which is improved employee retention.

Be ready to throw it out
Do not overthink the early microservices you build. You can easily get mired in the weeds, designing naming schemes, service discovery mechanisms, and inter-service communication protocols. Instead of all that, just roll up your sleeves and dive right in. Build a handful of small microservices and be prepared to rewrite them. One major advantage of building isolated independent microservices is that it can be rewritten rapidly. Take advantage of this.

Identify internal proponents early
Not everybody will be on board with microservices from the start. But some will, and it's helpful to identify these folks as they'll be invaluable for a wider drive to microservices in the future.

Quantify success
The success of a technology change is meaningless and wasted if the benefits are not measurable or measured. Identify a handful of metrics that you can quantify, metrics that microservices will improve. Here are some examples:

  • How long does it take to push out a new feature?
  • How many service desk tickets are required to build a new app?
  • How many days/weeks does it take to onboard a new developer?

Come up with your own, and track them, with the goal of demonstrating the improvements that microservices bring to the table.

Scale from day one
Scaling is an important motivator for moving to cloud computing, and you should be able to scale microservices effortlessly. Make sure the tooling is in place to instantly, automatically, and elastically scale your microservices in response to system load.

Monitor from day one
Similarly, it's important to monitor the overall operation of the system and each microservice that's part of the system. Wire in monitoring tools to each microservice you build before you even write a single line of code for the microservice. Monitoring should not incur additional design and implementation overhead - it must be built into the platform.

Automate everywhere
As discussed previously, eliminate, as much as possible, any need for human intervention for a microservices operation. Almost everything should be automated. This includes monitoring, scaling, logging, rollback, failure detection, testing, and deployment. Again, the right tooling is essential here.

Explore toolsets, understand patterns
The use of microservices is evolving fast, but some established patterns are emerging now, and will continue to emerge. Keep your eye on these, and experiment with them. Learn about ways to support graceful degradation and fault tolerance. Get a handle on the circuit breaker pattern, and explore the Netflix tools that they have generously made freely available. Tools like Chaos Monkey and Hystrix are worth looking at, and possibly adopting. Additionally, it's helpful to understand containerization, and especially recognize the limitations of containers for cloud application development.

And definitely, get a solid grasp of Platform-as-a-Service, the essential foundation for serious and successful microservices deployment.

Expect to fail
Failure is okay. At least, with a small targeted non-mission-critical microservice, failure is okay (and that's kind of the whole point). Learn from the failures, keep calm, and carry on.

Step away from the infrastructure
Do not build anything that's tied to a particular infrastructure. For example, if you do decide to deploy a microservice to AWS, don't hard-wire the microservice to use AWS APIs and facilities. Instead write to an abstraction layer (read PaaS) so that the microservice can be moved to any cloud at any time in the development and delivery cycle.

Just as important, don't get mired in the plumbing. Get out of the IaaS weeds. Allow the PaaS to take care of the underlying details so you can focus on what's important: the functionality, the interface, and the service level agreements.

Determine where you're using Microservices today
You might already be using microservices, at least as a consumer. Do you use Google's geocoding API to convert addresses to locations, or Twilio to send text messages, or Weather Underground to determine weather conditions at your customer location? These external services can be considered microservices, in the sense that they're isolated and loosely coupled from your application codebase, and they can evolve independently.

By looking at places you're using external microservices, you will be able to identify functionality of your existing internal applications that can be split off into microservices, leveraging all the power of microservices in a small, contained service. Again, take small steps.

Use the right PaaS for the job
Look carefully at the license agreements for the tools and services you adopt. Some PaaS offerings, for example, base their licensing costs on number of applications (microservices) deployed to the PaaS. This model is an impediment to a successful microservices adoption since a penalty is incurred for each additional service that's deployed. Others, like Stackato, use a memory model where license fees (if any) are charged based on the overall amount of memory making up a PaaS cluster. The memory pricing model makes much more sense for a microservices deployment: you can construct your application from as many microservices as you like, without incurring additional cost for each individual microservice, other than the memory it consumes.

Get started now
I recommend you get your feet wet now, by downloading the latest Stackato Micro Cloud from ActiveState, deploying a simple service, and discovering the many features of PaaS that ease the journey from a monolithic to microservices approach.

The post Microservices and PaaS - Part V appeared first on ActiveState.

More Stories By John Wetherill

Originally from Canada, John has spent much of his career designing and building software at a handful of startups, at Sun Microsystems, NeXT Inc., and more recently in the smart grid and energy space. His biggest passion is for developer tools, or more generally any tool, language, process, or system that improves developer productivity and quality of life. Without question, Stackato is one such tool and the reason why he is here. No stranger to technology evangelism, John spent several years in the late 1990's on Sun's Technology Evangelism Team spreading the Java Gospel across the globe and focusing on the prolific number of Java technologies. Now John is now returning to his roots, as a technology evangelist working for a Canadian company, albeit remotely from Santa Cruz.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@MicroservicesExpo Stories
It has never been a better time to be a developer! Thanks to cloud computing, deploying our applications is much easier than it used to be. How we deploy our apps continues to evolve thanks to cloud hosting, Platform-as-a-Service (PaaS), and now Function-as-a-Service. FaaS is the concept of serverless computing via serverless architectures. Software developers can leverage this to deploy an individual "function", action, or piece of business logic. They are expected to start within milliseconds...
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point where organizations begin to see maximum value is when they implement tight integration deploying their code to their infrastructure. Success at this level is the last barrier to at-will deployment. Storage, for instance, is more capable than where we read and write data. In his session at @DevOpsSummit at 20th Cloud Expo, Josh Atwell, a Developer Advocate for NetApp, will discuss the role and value...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know that not all workloads are suitable for cloud. You know that you want the kind of ease of use and scalability that you get with public cloud, but your applications are architected in a way that makes the public cloud a non-starter. You’re looking at private cloud solutions based on hyperconverged infrastructure, but you’re concerned with the limits inherent in those technologies.
Regardless of what business you’re in, it’s increasingly a software-driven business. Consumers’ rising expectations for connected digital and physical experiences are driving what some are calling the "Customer Experience Challenge.” In his session at @DevOpsSummit at 20th Cloud Expo, Marco Morales, Director of Global Solutions at CollabNet, will discuss how organizations are increasingly adopting a discipline of Value Stream Mapping to ensure that the software they are producing is poised to o...
DevOps at Cloud Expo – being held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real r...
Cloud promises the agility required by today’s digital businesses. As organizations adopt cloud based infrastructures and services, their IT resources become increasingly dynamic and hybrid in nature. Managing these require modern IT operations and tools. In his session at 20th Cloud Expo, Raj Sundaram, Senior Principal Product Manager at CA Technologies, will discuss how to modernize your IT operations in order to proactively manage your hybrid cloud and IT environments. He will be sharing bes...
SYS-CON Events announced today that CollabNet, a global leader in enterprise software development, release automation and DevOps solutions, will be a Bronze Sponsor of SYS-CON's 20th International Cloud Expo®, taking place from June 6-8, 2017, at the Javits Center in New York City, NY. CollabNet offers a broad range of solutions with the mission of helping modern organizations deliver quality software at speed. The company’s latest innovation, the DevOps Lifecycle Manager (DLM), supports Value S...
SYS-CON Events announced today that Peak 10, Inc., a national IT infrastructure and cloud services provider, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Peak 10 provides reliable, tailored data center and network services, cloud and managed services. Its solutions are designed to scale and adapt to customers’ changing business needs, enabling them to lower costs, improve performance and focus intern...
DevOps is often described as a combination of technology and culture. Without both, DevOps isn't complete. However, applying the culture to outdated technology is a recipe for disaster; as response times grow and connections between teams are delayed by technology, the culture will die. A Nutanix Enterprise Cloud has many benefits that provide the needed base for a true DevOps paradigm. In his Day 3 Keynote at 20th Cloud Expo, Chris Brown, a Solutions Marketing Manager at Nutanix, will explore t...
This talk centers around how to automate best practices in a multi-/hybrid-cloud world based on our work with customers like GE, Discovery Communications and Fannie Mae. Today’s enterprises are reaping the benefits of cloud computing, but also discovering many risks and challenges. In the age of DevOps and the decentralization of IT, it’s easy to over-provision resources, forget that instances are running, or unintentionally expose vulnerabilities.
There are two main reasons for infrastructure automation. First, system administrators, IT professionals and DevOps engineers need to automate as many routine tasks as possible. That’s why we build tools at Stackify to help developers automate processes like application performance management, error monitoring, and log management; automation means you have more time for mission-critical tasks. Second, automation makes the management of complex, diverse environments possible and allows rapid scal...
One of the biggest challenges with adopting a DevOps mentality is: new applications are easily adapted to cloud-native, microservice-based, or containerized architectures - they can be built for them - but old applications need complex refactoring. On the other hand, these new technologies can require relearning or adapting new, oftentimes more complex, methodologies and tools to be ready for production. In his general session at @DevOpsSummit at 20th Cloud Expo, Chris Brown, Solutions Marketi...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual ...
SYS-CON Events announced today that Linux Academy, the foremost online Linux and cloud training platform and community, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Linux Academy was founded on the belief that providing high-quality, in-depth training should be available at an affordable price. Industry leaders in quality training, provided services, and student certification passes, its goal is to c...
SYS-CON Events announced today that Fusion, a leading provider of cloud services, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Fusion, a leading provider of integrated cloud solutions to small, medium and large businesses, is the industry’s single source for the cloud. Fusion’s advanced, proprietary cloud service platform enables the integration of leading edge solutions in the cloud, including cloud...
SYS-CON Events announced today that HTBase will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. HTBase (Gartner 2016 Cool Vendor) delivers a Composable IT infrastructure solution architected for agility and increased efficiency. It turns compute, storage, and fabric into fluid pools of resources that are easily composed and re-composed to meet each application’s needs. With HTBase, companies can quickly prov...
@DevOpsSummit at Cloud taking place June 6-8, 2017, at Javits Center, New York City, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long developm...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, Cloud Expo and @ThingsExpo are two of the most important technology events of the year. Since its launch over eight years ago, Cloud Expo and @ThingsExpo have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, I provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading the...
The purpose of this article is draw attention to key SaaS services that are commonly overlooked during contact signing that are essential to ensuring they meet the expectations and requirements of the organization and provide guidance and recommendations for process and controls necessary for achieving quality SaaS contractual agreements.
SYS-CON Events announced today that OpsGenie will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 2012, OpsGenie is an alerting and on-call management solution for dev and ops teams. OpsGenie provides the tools needed to design actionable alerts, manage on-call schedules and escalations, and ensure that the right people are notified at the right time, using multiple notification methods.