The latest in our #DevOpsQ&A, we had the pleasure of speaking with Yan Cui – who has extensive experience as an architect and lead developer, as well as working with AWS. Yan discussed his career in DevOps ecosystem, how he got to where he is today, and where the future of the industry is heading.
Third Republic (TR): Can you give us an overview of your background and how you got into DevOps?
Yan Cui (YC): As a developer, I have had to learn and take on a lot of traditional ops responsibilities in my career simply because I have spent most of it working in start-ups; where you just have to do everything yourself, and this has helped me foster a wide range of skillset and broadened my perspective. I have followed the Amazonian mantra of "you build it, you run it" where developers are expected to own their software end-to-end, and not just write the business logic and then throw their code over the wall for someone else to take care of. That means you need to understand how your software is built, deployed and run, how to operate it in production, and perhaps most importantly, be on-call for it when things go wrong!
TR: What have you learnt during your career?
YC: Automation and tooling are all great, and they are essential for maintaining quality while going fast. But, having developers experience the full impact of quality issues in their work is the best way to improve quality, consistently. You're incentivised to improve quality and make more robust systems when you're the one who has to wake up at 3am to fix problems! No matter what organization you work in, you need to add developers to the on-call rota; they don't have to be the only ones who are on-call, but they need to have skin in the game and take responsibility for their work.
TR: Over the past 10 years, what are the biggest changes you’ve seen in the industry?
YC: The cloud. 10 years ago, I was working in investment banks, sitting in huge meetings to discuss how many servers we need to order and how it was going to take 3 months for them to be delivered, installed and added to our cluster. Now, waiting 500ms for a new container to spawn up and run my Lambda function feels like a lifetime! All that happened because of the cloud, and how it's allowed us to continue moving up the abstraction layer.
TR: So, looking forward, what emerging trends are you excited about and why?
YC: Serverless, and more specifically, managed Function-as-a-Service (FaaS) services such as AWS Lambda. This moves me further away from the undifferentiated plumbing that I have spent much of my career doing, patching OS's, provisioning servers, setting up load balancers, etc. and in turn, it lets me spend more time understanding my users' needs and deliver what they need quickly. It's simple; the less I have to do myself, the faster I can build the things my users need.
TR: Where do you predict DevOps will be in 6, 12 and 36 months?
YC: My understanding of DevOps is that it's a set of principles and practices that helps we go fast, while maintaining quality. Who wouldn't want that? I think that the tools will continue to involve and adapt around the popular technologies of the day - Kubernetes, Serverless, and what have you - but I think that the principles are here to stay.
TR: Where do you think that serverless technology is headed?
YC: It will become the primary way we build and run software in the near future. All the managed platforms today have a number of issues that pretty much prohibits a number of common use cases such as long running tasks, or applications with hard real-time requirements, like real-time gaming. For everything else it's such a no-brainer - you let the cloud provider take care of all the plumbing and just focus on delivering business values, quickly. Containers would continue to be an important part of the ecosystem, but ultimately, it's not the layer of abstractions that developers should be working at. In the same way that hypervisors are ubiquitous in the cloud, because pretty much everything runs on them, but it's just not something developers care about, and nor should they!
TR: Do you think anything is going to crop up in the industry that can compete with serverless technology?
YC: As technologies like Fargate becomes more mature, and as managed platforms like Lambda allow customers to have more control of the execution environment, I think that the line between containers and serverless would continue to blur and - eventually - it'll make very little practical difference to you, as a developer, whether you use containers or serverless.
TR: How do you see DevOps fitting into digital transformation?
YC: I think that you can't transform an organization's product without transforming how the organization works, and DevOps is a big part of that - breaking down traditional silos and encouraging greater collaboration and trust across the organization. I hear this "agile" thing also talks about "individuals and interactions over processes and tools" ;-)
TR: Finally, with all of the changes we’ve discussed, what makes a successful DevOps professional today?
YC: I would say focusing on collaboration and delivering value as a team, and not obsess about tools.