Presentation: No Microservice Is an Island
Share this on:
What You’ll Learn
- Learn the key components required to operate Microservices successfully.
- Understand tooling and people needs for the successful operation of Microservices.
- Walk away with a checklist of specific changes required for operation, security, resiliency, and scalabilit.y
Abstract
You don't deploy a single microservice. The journey to microservice architecture involves more than how code is written or applications are packaged. It's about creating an interconnected ecosystem that keeps things running. Infrastructure and tools have only grown in importance as microservices have emerged as a dominant architecture pattern. Deploying, scaling, and monitoring are more important for microservices than they ever were before. Attendees will leave this session knowing the basic infrastructure and tooling needs for microservices to be successful.
You worked at Capital One first and then switched over to Square. So what were you working on at Capital One?
At Capital One, I was working on the first layer of services that our mobile app and website hit. Any new mobile or web request would first reach the service owned by my team. This service implemented security and customisation logic and then made a server request to the broader Capital one ecosystem. Capital One has a lot of microservices.
QCon: And what do you work on now at Square?
At Square, I am working specifically on Capital’s underwriting service. If a merchant on Square wants a loan, this is the service which decides the loan eligibility of the merchant and manages the entire flow till loan approval.
Was the stack you worked on at Capital One JVM based or Node?
There were a lot of people at Capital One who worked on Java, but I was working on Node there. At Square I am working on a ruby on rails monolith and we are working towards a microservices based architecture.
What is the motivation for your talk on microservices, what is the intended audience and how deep is the talk?
It is a very broad talk for people who may not necessarily have worked much on microservices. My team at Capital One was the first team to implement microservices. We addressed a lot of pain points initially and there was not much guidance then. We learned a lot through this experience. We learned about infrastructure needs, operational changes and monitoring required. The talk gives a holistic view of infrastructure needs and then dives into specific changes required for operation, security, resiliency and scalability. The audience would take-away something like a checklist, that they could use when implementing microservices.
Is this talk intended for people who are considering adoption of micro-services or for those who have already implemented it to some extent and do not know how to proceed?
It is intended mainly for people who have already started the journey towards implementing microservices. They may not understand all the intricacies at the moment but the talks would prepare them on what to expect in the future, when the number of microservices grows and they may run into problems. For example, at Capital One, there were times when it took days to resolve issues because we did not know who was the responsible team for a particular service.
Can you give us an example of one of the intricacies you mentioned?
The first example I can think of is that people don’t realise they are going to be scaling their systems. One of the benefits of microservices is that you can scale your services up or down based on the load on different parts of the system. So when building their initial deployment tooling, people need to realise that it may be reused in the future when they scale. Otherwise, they may end up maintaining two separate ways of deploying servers, one which is manual and another that is easy to scale.
What do you feel is the most important trend in software in right now?
I think the most important trend is working towards automation. Automation is widely applicable to so many different parts of the industry from computerisation projects to building automated cars. Irrespective of the application, you need to identify the steps required for moving from a manual to an automated process where you might not need a human anymore to perform some of the actions.
Similar Talks
Tracks
-
Microservices: Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Developer Experience: Level up Your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand. Tools, techniques, and trends.
-
Modern Java Reloaded
Modern, Modular, fast, and effective Java. Pushing the boundaries of JDK 9 and beyond.
-
Modern User Interfaces: Screens and Beyond
Zero UI, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Practical Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, Caffe, & more
-
Ethics in Computing
Inclusive technology, Ethics and politics of technology. Considering bias. Societal relationship with tech. Also the privacy problems we have today (e.g., GDPR, right to be forgotten)
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, Goldman Sachs
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probalistic programming
-
Container and Orchestration Platforms in Action
Runtime containers, libraries, and services that power microservices
-
Finding the Serverless Sweetspot
Stories about the pains and gains from migrating to Serverless.
-
Chaos, Complexity, and Resilience
Lessons building resilient systems and the war stories that drove their adoption
-
Real World Security
Practical lessons building, maintaining, and deploying secure systems
-
Blockchain Enabled
Exploring Smart contracts, oracles, sidechains, and what can/cannot be done with blockchain today.
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Empowered Teams
Safely running inclusive teams that are autonomous and self-correcting