Builder's Diary Vol. 6: Serverless and DevOps - a match made in heaven
Get insights into the day-to-day challenges of builders. In this issue, Vilius Kukanauskas from our partner DEMICON explains why Serverless and DevOps are a match made in heaven.
Here you go if you prefer a video or podcast instead of reading.
Do you prefer listening to a podcast episode over reading a blog post? Here you go!
cloudonaut: How has your career progressed? What were the most important steps?
Vilius Kukanauskas: I started my career as a software engineer implementing Vaadin and Spring Boot applications, for example. In 2019, I transitioned from a software to a DevOps engineering role and got in touch with AWS, Kubernetes, and Terraform. In January 2022, I took my career in a new direction and joined DEMICON as a consultant focusing on AWS and DevOps.
cloudonaut: What was your main motivation to apply for your role at DEMICON?
Vilius Kukanauskas: I learned to appreciate remote work during the pandemic. I was skeptical at first, but now I can’t imagine going to the office every day. I enjoy the free time that comes from not having to commute. And I’m convinced that I’m even more effective remotely. DEMICON is a remote-first company, so remote work is part of the culture. That was important to me.
cloudonaut: You have been with DEMICON for over a year. How have you experienced this time?
Vilius Kukanauskas: I like my role as an external consultant in projects. Until now, I had to change companies whenever I wanted to familiarize myself with a new technology. At DEMICON, I work on different projects with different customers and with different focuses. I learn a lot in the process, and I really like that.
For example, one of my first projects was to rewrite a monolithic application. Together with a small team, we used Lambda, Step Functions, and DynamoDB. For the implementation, we used TypeScript and CDK. I’m currently working on a project focusing on network infrastructure and Terraform.
cloudonaut: Back to your career, you mentioned that you transitioned from a software to a DevOps engineering role. Why?
Vilius Kukanauskas: Ever since I first came into contact with a computer, I have loved programming. When your code runs correctly and becomes visible in reality, or at least on the screen, it gives me an endorphin rush every time.
As a software engineer, I was interested in how my code gets into production. The CI/CD pipeline and infrastructure were new territories for me that I wanted to explore.
cloudonaut: How do you define the term DevOps?
Vilius Kukanauskas: I have a somewhat radical approach. For me, DevOps consists of two verbs: develop and operate. For me, it is important to get into action. It’s about developing software and also operating it.
cloudonaut: How to combine DevOps practices with Serverless architectures?
Vilius Kukanauskas: Serverless and DevOps is a match made in heaven. In my experience, application code and infrastructure as code converge when building Serverless applications. There is no longer a split between Dev and Ops.
cloudonaut: Can you give me an example of that?
Vilius Kukanauskas: I would love to. I mentioned before that I built a serverless application based on Lambda and Step Functions. For those, who have yet to hear about Step Functions, it is a workflow management service. By defining a state machine, you can orchestrate workflows. For example, you are able to invoke Lambda functions, parse results, and invoke other AWS services. Step Functions even supports conditions and loops in a workflow definition.
So here is what happens. Part of the application logic is written in code and executed by Lambda functions. But another component becomes part of the infrastructure, namely the workflow definition for step functions.
cloudonaut: Does this mean that application code and Infrastructure as Code fuse and end up in one repository?
Vilius Kukanauskas: Yes, exactly. We managed the TypeScript code for the Lambda functions and the CDK code in a single repository. So all things needed to deploy the Serverless application was stored in the repository.
cloudonaut: You’re evidently passionate about Serverless architectures. What advice would you give to developers and system administrators who want to explore this new technology?
Vilius Kukanauskas: Get out of your comfort zone.
Developers need to learn that there is a whole new approach besides frameworks such as Spring Boot. I admit it takes work to get familiar with Serverless, Lambda, Step Functions, DynamoDB, IAM, and so on. But it is worth it. As a developer, you have the advantage that you can build highly available and scalable applications with the building blocks that AWS provides for Serverless architectures on a level that was hardly reachable before.
System administrators bring valuable experience from operations, for example, in the area of monitoring and security. But, it is essential that system administrators learn a programming language such as TypeScript, JavaScript, Python, or Go. Again, it’s worth it. You can accomplish so much with these new skills.
cloudonaut: Thanks a lot for sharing your insights into Serverless and DevOps, Vilius!
Vilius Kukanauskas: Thank you as well. It was a pleasure.
Further reading
- Article Builder's Diary Vol. 1: Successful Cloud Migrations
- Article Builder's Diary Vol. 2: Serverless ETL with Airflow and Athena
- Article Builder's Diary Vol. 3: Infrastructure Pipeline with GitLab and Terraform Cloud
- Article Builder's Diary Vol. 4: Serverless Software Engineering
- Article Builder's Diary Vol. 5: ECS Anywhere
- Tag container
- Tag ecs