Wing Cloud provides solutions that unify infrastructure and application code into a single programming and operational model. In this episode of TFiR: T3M, Wing Cloud Co-Founder and COO Shai Ber shares his insights on Infrastructure as Code (IaC) and how these tools enable teams to deliver software faster and more securely.
On Infrastructure as Code:
- It is basically a way to organize all the infrastructure by using tools that we use to develop code. Instead of doing ClickOps to define everything, files with written code and/or configuration definitions are used.
- This allows DevOps engineers and even developers the ability to reproduce the infrastructure definitions and reuse some of the code that they’ve already created in order to spawn new environments or to modify existing environments without having to redo everything with clicks.
- Almost every company that’s on the cloud today uses some form of IaC.
Current IaC solutions in the market:
- IaC tools used to be more like configuration files. Modern solutions are now actual code using modern programming languages.
- These tools are starting to also handle the applicative part of the application and the connection between the application and the infrastructure. They allow developers to write the applicative code and then have some system platform or compiler that deduces the infrastructure needed to run that code.
- There are other solutions that are more general purpose where they try to hide the infrastructure altogether, e.g., Janitor AI where you just define the desired application or desired infrastructure, and then these tools generate the infrastructure.
- There are tools like Winglang, a general-purpose programming language that Wing Cloud created, that allows you to express your infrastructure and your code. Infrastructure is not hidden because developers want to understand the code for a distributed system and to write their application code accordingly.
- There are solutions where you don’t define the business name, but you define the infrastructure. Ber has not yet seen a production-ready solution where you just say, “I want to create this application,” and it will create the perfect code for it, or even just the infrastructure part that is scalable and secure.
- There are too many IaC tools to choose from, which is part of the problem for companies. The most common ones are Pulumi and TerraForm, but there are more specialized tools for distinct use cases.
On company culture:
- Many companies divide their application work: they have developers (DevOps) that handle infrastructure and they have developers that handle the business logic of the application. With modern clouds, there is a big mix. It’s very hard to say which specific services are just infrastructure and which are just part of the application.
- When you have different developers handling different aspects, they find themselves oftentimes having to depend on each other and work very closely together. This can create friction and problems.
- It forces them to separate their application into two different parts that they then need to stitch manually together.
How Wing Cloud helps companies:
- It allows developers to have a single code base with a single programming model where they write both infrastructure and applicative code.
- Developers can compile it to different provisioning engines or different platforms.
- Developers can work at a higher level of abstraction, and then decide later which cloud providers, which provisioning engines, and which security and other policies they want to enforce.
- Operations people will not actually set up these tools, but they’re going to configure them.
Advice for companies wanting to use infrastructure as code:
- Understand your business needs, both immediate and projected.
- Look at your developers and see what they know. If you can have a team that is full stack in the sense that every developer is their own DevOps, that will be beneficial.
- Understand your cloud needs, e.g., one cloud or multi-cloud setup, single or multi-tenant, single tenant, etc. These will dictate what IaC tools you need and what philosophies you should follow.
- Look at your technology stack.
- Educate yourself on the IaC tools that are available out there and pick the right one for your needs.
This summary was written by Camille Gregory.