alphaspirit - Fotolia
Brace your infrastructure for a microservices approach
Before transitioning to microservices, it's crucial to consider the effects on your underlying infrastructure and network -- and to plan ahead.
Microservices allow enterprises to develop a single application as a suite of smaller services. And while this has become a popular approach among major organizations, such as Netflix and Nike, it's important to consider microservices' overall impact on a network and underlying infrastructure.
Microservices can change virtual networks' speed and composition, as well as the services that support them. Operations teams and developers must think about how to decompose network services into those that are more application centric -- load balancing, caching, performance, monitoring and app security -- and those that are not -- DDoS protection, VPNs and more, said Lori MacVittie, principal technical evangelist at F5 Networks, an application infrastructure provider.
Those services that are more application centric become tied to the application, which results in a per-application service model. In essence, every microservice can be provisioned with a set of application services that go along with it. Enterprises need to provision and configure that bundle of application and application services during the release process.
"Coordination between dev and ops has to ramp up to make sure that when the microservice is ready to be released, so are its services," MacVittie said.
Provisioning these microservices to the cloud also raises questions of predictability. When applications run into problems, most public providers are not upfront at sharing details about their network infrastructure with customers, MacVittie said.
Enterprises also need to consider security when planning operations infrastructure. Every malicious request that a security service stops is one that is not causing undue stress on the application and, in turn, hindering Application performance. This is probably the least often considered variable for application performance that can be remedied by specifying the right security service.
Implement service discovery
Loose coupling is a key principle of microservice architectures. Individual components need a separate service discovery infrastructure to find the IP address of the service to which they need to connect. The service discovery layer must be just as dynamic as the infrastructure in a cloud environment, where VMs are frequently created and destroyed.
"You can think of a service discovery tool as the connective webbing of your infrastructure," said Kevin Fishner, director of customer success at HashiCorp, a data center management tool provider.
Good service discovery tools include Consul, etcd and Zookeeper. To help configure dynamically provisioned services, there are automation tools such as Puppet, Chef, Ansible and Salt.
Organizations should also consider infrastructure creation and management tools such as Terraform, CloudFormation and Heat, Fishner said. The rise of containerization tools such as Docker will require new kinds of schedulers, from Mesos and Kubernetes, to sit on top of infrastructure management tools.
Plan for success
Transitioning to microservices is not necessarily easy, so developers and operations teams need to work together to succeed.
"While the theory of microservices is about giving each team that owns the service the ability to independently deploy their service as long as they adhere to their contract, that rarely happens," said Tyler Jewell, CEO of Codenvy, a cloud-based integrated development platform that uses microservices.
Codenvy's users interact with an application that is a single system that depends upon dozens of microservices. When they release functionality to the end user, that functionality depends upon a variety of microservices, many of which also need to evolve their capabilities. This requires that the collective set of capabilities -- application and microservices -- must deploy simultaneously.
"Because of this, we do have to invest in planning and release coordination; it's not quite as easy as a free for all of any deployment at any stage," Jewell said.
About the author:
George Lawton has written over 3,000 technology news stories over the last 20 years. He lives in the San Francisco Bay area. You can reach him directly at [email protected] or follow him on Twitter @glawton.
Going reactive with microservices
Key things to consider when it comes to microservices governance
The best way to make your Java code cloud native