We sat down with Tony Pujals, Director of Cloud Engineering at Appcelerator, to better understand the microservices trend and where it is headed. In this third installment of Q&A discussions, Tony talks about how developers can prepare to adopt this new architectural approach.
What changes can developers expect to see when switching from monolith to microservice? How can they plan for these changes?
If you go from managing a single deployment pipeline to managing many deployment pipelines and you’ve got a small team who will be responsible for all deploying and monitoring the services anyway, then the team’s workload has increased, not decreased. The way to mitigate this is through a commitment to automation. Automation is really a mandate even for larger teams with more devops personnel, however; it’s the only sane way to ensure repeatable, reliable deployments.
It will also be vital to plan to have a unified, centralized solution for logging, monitoring, and alerting. It isn’t pragmatic to have separate systems in place that don’t provide a cohesive picture to let you visualize how things are going in production.
You probably won’t be able to catch all the issues you could in the past for monolithic deployments with traditional testing pipelines. It becomes more important to implement limited rollouts (such as canary updates) with the ability to roll back immediately if there are any issues. As the confidence score increases during these rollouts, the number of users with access to the new service version should be automatically increased. The new Docker 1.12 update includes support for this with application-specific health checks used in the decisions made with this strategy.
Where do you see microservices going in the future? How will use cases continue to evolve?
A lot of what we’re able to do right now is thanks to changes in the technology available. The emergence of Docker really contributed to making a microservice strategy feasible and pragmatic. Docker rewrote the book for everyone by democratizing container technology for developers.
In the near future, I expect to see a lot of growth in microservice development thanks to Docker updates. The Docker 1.12 from this year’s DockerCon is a real game changer. It addresses challenging orchestration issues at the core engine layer.
In the project I lead—AMP, or Axway/Appcelerator’s Microservice Platform—we are exploiting Docker to provide very sophisticated support to teams for addressing the challenges we noted earlier by providing a seamless and unified environment for deploying, scaling, measuring, and monitoring microservices built with their own preferred programming stacks.
In addition to being able to deploy microservice-based APIs, we see the use cases evolving for our customers with the ability to deploy on-demand, event-based, and scheduled workers. We want our customers to be able to focus on functionality without having to think of infrastructure. We definitely see the intersection of “serverless computing” — the ability to run code without provisioning or managing servers — and microservices and microtasks as vital to supporting the use cases we can think of today as well as those we haven’t even conceived of yet but become possible when the technology is available to be exploited.
Tony Pujals is our Director of Cloud Engineering. At Appcelerator, Tony plays a key role in improving the process of building, deploying, orchestrating and monitoring containerized microservices. He is a member of the Docker Captains team as well as a dedicated user of the Node platform and the co-founder of the third-biggest meetup for Node developers globally.