Simon Obetko, Dev @ Stacktape
March 11, 2024
Navigating the DevOps landscape feels like walking through a dense forest, doesn't it?
Between managing deployments, wrestling with configurations, and ensuring everything scales smoothly, it's a journey fraught with challenges. We've been there, and we get it. That's why we created and are excited to introduce Stacktape—it's our way of saying, " We see the hurdles you're facing, and we're here to help you leap over them."
Stacktape isn't just another tool in your arsenal. It's a developer-first platform designed to automate DevOps complexities, deployment, and use of AWS for developers and CTOs — a PaaS 2.0. With Stacktape, we're aiming to clear the path for you, making cloud-native application development on AWS not just easier but genuinely enjoyable.
We whipped up Stacktape as your go-to DevOps buddy that's got you covered for everything: from serverless functions, container services, CDNs, to load balancers, relational databases, MongoDB, Kafka, and yes, evenNext.js@Edge.
Do not be mistaken. Stacktape is not only about getting your workload up and running quickly on AWS. We will be talking:
and more... Throughout the next few days, we will break down what Stacktape really does and the features it brings to the table.
Every Stacktape project starts with a simple config file - a template. This is your app's single source of truth and its blueprint. Unlike other setups where you might juggle multiple config files for different tools, Stacktape brings everything into one place. You can write your template in YAML, TypeScript, or even Python. This means less clutter and more focus on your code.
The Stacktape config is straightforward. It's made to be human-readable, so anyone on your team can understand it, not just the developers. This cuts down on the time you spend managing infrastructure and lets you concentrate on building great apps. It's all about making your life easier, whether you're automating deployments or explaining your setup to a colleague.
resources:apiServer:type: web-serviceproperties:resources:cpu: 1memory: 2048scaling:minInstances: 1maxInstances: 5packaging:type: stacktape-image-buildpackproperties:entryfilePath: ./src/index.tsconnectTo:- mainDatabasecors:enabled: true
We understand the importance of having the flexibility to tweak and tailor your infrastructure to fit your specific needs.
Since Stacktape is built on CloudFormation, you get all the customization you might need. Want to tweak CloudFormation resources or mix in some CDK constructs? Go for it. Stacktape gives you the tools to tailor your environment exactly how you want, without making things overly complicated.
resources:mainDatabase:type: relational-databaseproperties:credentials:masterUserName: $Secret('prodDb.name')masterUserPassword: $Secret('prodDb.pass')engine:type: postgresproperties:primaryInstance:instanceSize: db.t3.micro# parameters not exposed by Stacktape abstractions# can be directly set/overridden in Cloudformation resourceoverrides:MainDatabaseDbParameterGroup:Parameters:max_connections: 5
We take great satisfaction in enabling users to deploy their applications easily while we do the heavy lifting on the background. Just take an example of our Next.js serverless resource. It only takes two lines for user to configure the resource and we take care of the rest. On the background, Stacktape takes care of building your app, creating tens of resources on AWS to run your app in AWS Lambda and delivering the app itself to the cloud.
Now you might say: Great, but this is already achievable using Vercel or other solutions. Why would I care?
Well besides this being dramatically cheaper at a scale ;)… can you use Vercel to deploy and control databases and other parts of your infrastructure? This is how easy it is to do with Stacktape — to create and connect serverless postgres database and third party serverless Upstash Redis to your Next.js app:
resources:myWeb:type: nextjs-webproperties:appDirectory: ./connectTo:- myDb- myRedismyDb:type: relational-databaseproperties:engine:type: aurora-postgresql-serverlesscredentials:masterUserName: $Secret('myDb.name')masterUserPassword: $Secret('myDb.pass')myRedis:type: upstash-redis
If you're interested in Next.js, check out our full-stackT3 Next.js App tutorial.
So, what is different about us?
We strive towards covering your app’s needs without the need to use different tools for each part of your app:
We aim to take care of your application as a whole from packaging and deploying to monitoring and alerting. To provide a platform with advanced features that you will not outgrow.
As we touched on earlier, we don't want to box you into our ways, and you are free to build and package your app your own way. But you know what is even easier than writing a Dockerfile or creating your own zip lambda function artifact? Letting Stacktape build and package your app for you.
Stacktape packaging is designed with versatility in mind, supporting a wide array of programming languages including Typescript, Javascript, Python, Go, and Java. This broad language support ensures that no matter what technology stack you're using, Stacktape can seamlessly integrate into your workflow, providing a unified solution for your code packaging needs.
Our build process is not just fast; it's also efficient, producing small artifacts that result in quicker deployments. For functions, we generate zip packages, and for container-based applications, we produce optimized images. This efficiency is key in minimizing deployment times and ensuring that your applications are up and running as quickly as possible.
One of the standout features of Stacktape's packaging process is its intelligent caching system. If we detect that an artifact has already been deployed and no changes have been made, we won't deploy it again. This not only speeds up deployments even further but also reduces unnecessary load on your resources, making your deployment process as efficient as possible.
We recognize that secure and custom domain management is a fundamental requirement for any online application. That's why Stacktape effortlessly takes care of it for you. From the get-go, your domains are TLS-secured, ensuring your applications are both secure and trusted, without any extra steps needed from your side.
resources:myWeb:type: hosting-bucketproperties:uploadDirectoryPath: ./buildcustomDomains:# easily attach a domain to your resource- domainName: my-custom-domain.com# or have custom subdomain parametrized by the stage of the environment- domainName: $Format('{}.my-custom-domain.com', $Stage())
Are you looking for a push-to-deploy experience? Or are you a terminal power user with a strong preference towards CLIs? With Stacktape, you're covered either way. We understand that every developer has their unique workflow and preferences, which is why we've designed Stacktape to be as versatile and accommodating as possible.
For those who appreciate the simplicity and automation of a push-to-deploy mechanism, Stacktape's console integration has got your back. Connect your repository directly within the Stacktape console, and set up a seamless push-to-deploy experience. This means every time you push your code, Stacktape takes care of the rest, deploying your updates automatically to AWS. It's hassle-free, efficient, and perfect for teams looking to streamline their deployment processes.
On the flip side, if you thrive in the command line environment and love the control and flexibility it offers, Stacktape's CLI binary is your playground. Deploy from anywhere, anytime, with just a few keystrokes. The CLI is packed with powerful features, offering you the full suite of Stacktape's capabilities right at your fingertips. Whether you're pushing a quick update or rolling out a major release, the Stacktape CLI makes it a breeze, ensuring you're always in command of your deployment process.
Thanks for reading till the end! We hope you enjoyed the updates for our first Stacktape Launch Week Day #1.
We are looking forward to seeing what you build with Stacktape, and your feedback to make it even better.
Let Stacktape transform your AWS into a developer-friendly platform.
Learn more