When small businesses and companies start to build and scale their cloud footprint, they often end up creating a lot of machinery from scratch. Whether you have a technical team or not, it's hard to avoid getting into the weeds on a project.
There are of-course tools and projects out there to make lives easier, many companies start by using smaller cloud providers & indie or hobbyist tools to build their MVPs. The challenge comes when you start to achieve product market fit, the need to handle a migration to a larger cloud provider like AWS, GCP or Azure can take time.
We believe that it's possible to use these larger cloud providers from day one. What's needed is a few templates and tools to help bootstrap your cloud environments. We also believe that SaaS is great but sometimes the high cost can be mitigated if you make use of the right tools in AWS (and use Cloud Components to deploy them correctly).
Our team of cloud experts are building out a series of CDK templates for solutions, product features and common architectures. These templates are based on what we've seen companies build from scratch in the past.
We understand that for most companies it's important to understand how a system is put together and operates, but when things need to move fast, it's nice to be able to quickly deploy a solution. In some cases you might want to add an additional feature to your existing product, but not overload your development team. Our components should be easy to deploy and well maintained.
The first focus is going to be AWS. This is where our existing skill-set lies and we believe it has the widest footprint on-which to build the components.
We're also making use of AWS Cloud Development Kit (CDK) and sticking to Typescript only templates. Why? Our core focus is to build out functionality and components. We don't want to be distracted too much by having to worry about implementation into different languages.
Why CDK instead of Terraform or AWS Cloud Formation? We've noticed that the AWS field teams are starting to standardize on CDK for many of their solutions & samples. We hope that this will add wind to our sails as we onboard more components and tools for businesses.
As we're standardizing on AWS to begin with, we'll also not need to think too much about "multi-cloud". Our team is also of the opinion that the abstraction levels of CDK actually makes for a faster development environment than the density of HCL.
We've scheduled to launch 5 cloud components before October 2024. We will be updating this article with the MakeOps cloud components that we've launched.
Read the launch article for Simple Audio / Video Transcription on AWS
Our first component! This cloud component helps deploy a transcription pipeline on AWS. Many of the AI application being built today require a step for converting audio into text. AWS has a cool tool called Amazon Transcribe that can help you do this.
We've created a little more around the Amazon Transcribe service to be able to manage transcription jobs, which are mostly asynchronous. We've added the concept of a user so that each user can have their own transcriptions - similar to how you would do in a SaaS application.
For the user interface (UI) we've created an optional stack to deploy an API to query the status of a job and if you'd like to use this as part of a Javascript frontend, we've included an optional integration into Amazon Cognito.
Read the launch article for Simple Python Webhook
Next we've taken some inspiration from the business automation industry. We've seen companies starting to build their own integration with tools such as LLMs. The challenge is often that you want some custom functionality to be triggered from an existing SaaS application such as Shopfiy, Zoho, etc.
We've created a cloud component that allows you to quickly deploy a python based webhook. We make use of container-based lambda functions to bundle the code into a function. This is exposed behind an Amazon API Gateway endpoint.
A number of solutions we've seen online use glue code that is written in Javascript. We make use of Poetry to manage python dependencies.
Read the launch article for Simple Multi-Architecture Container Build Pipeline
One thing our team has felt in the past is challenges migrating between AMD and ARM based machines. These days, there is a growing support for ARM based processors both in the Cloud (AWS Graviton) and locally (Apple M-Series). This creates problems when not everyone in the team has migrated or if you're still working to convert code to work on ARM.
When it comes to containers, you need to be at least a little conscious of the capabilities of the underlying OS. Languages like Golang support cross-platform deployments as first-class now.
We created a cloud component that deploys a multi-arch container build pipeline in AWS using AWS CDK. This solution provides a quick way to build your code for both platforms, allowing for a more seamless transition in either the ARM or the AMD direction.
If you'd like to get started deploying the MakeOps Cloud Components, we've made them available on GitHub.
As we are rolling these out if you have comments or feedback, feel free to reach out to us via the contact us form.
Our team helps businesses and startups build and scale their infrastructure using cloud technologies. If you're looking for Cost Optimization on your existing workloads or need an Architecture Review of a proposed workload we are here to guide assist.
You can contact us for a more info.