Skip to main content

13 posts tagged with "NoDevOps"

View All Tags

· 3 min read

Defang Compose Update

Hi everyone,

We are a little late getting our monthly update out this time, but we did ship a number of important updates in October that we would like to inform you about. And more is coming… stay tuned for that!

  1. New CLI version 0.6.5: this was a big release with a number of improvements and bug fixes. You can find details in the release notes here, but to highlight a few:

    • defang --provider aws shows improved error message if unauthenticated
    • Added --wait and --wait-timeout flags
    • Improved generate menu: all samples shown (previously these were restricted by language), and we moved the "Generate with AI" option to now be shown in the search filter.
  2. AI Debug for BYOC: AI Debug feature is incredibly useful in helping users find and fix issues when something goes wrong. Our initial version only worked on Playground, but now we have extended this to BYOC environments. We hope this makes it even easier for you to deploy your apps to AWS, DigitalOcean, etc.

  3. A range of other improvements, including

    • Network aliases support
    • GDPR Delete Me: You can now delete your Defang account from the Defang Portal
    • 30min time-out for the deployments to avoid runaway tasks in your account
    • Allow Postgres major version upgrade, e.g. changing the image frompostgres:14 to postgres:16 in your Compose file (Currently, we only support this in --mode development, we will explore ways to support in other modes in the future.)
    • More feedback logs when containers exit, e.g. failing health-checks
    • Fixes for multiple BYOD domains in a single account

Events and Adoption

In October, the Defang team was actively involved in a range of exciting events. We participated in MLH Cloud Week, StormHacks, and hosted a DevTools Vancouver meetup, bringing together local DevTool founders, engineers, and enthusiasts. It was inspiring to see Defang in action, helping these hackers build their amazing projects.

DevToolsMeetup

When we shipped our Public Beta earlier in 2024, we had a goal to reach 1000 users by end of year. We are pleased to announce that we have already reached this milestone a couple of months in advance! We are excited to see the momentum behind the product and how our users are using Defang for developing and deploying a variety of different applications. Thank you for your support!

The Road Ahead

The team is now heads-down dotting the i’s and crossing the t’s so we can release Defang V1 before end of year. This will enable customers to use Defang for production workloads. We look forward to sharing more in our next monthly update.


CoffeeChat

Defang Coffee Chat ☕

If you're excited about what's coming next and want to hear more about our vision for the future, join us for our Coffee Chat on November 27th. We'll be sharing more about our roadmap and what we're working on next.

Register here!


As always, we appreciate your feedback and are committed to making Defang the easiest way to develop, deploy, and debug your cloud applications. Go build something awesome! 🚀

· 4 min read

About the author: Linda Lee is an intern at Defang Software Labs who enjoys learning about computer-related things. She wrote this blog post after having fun with hardware at work.

My Story of Embedded Systems With Defang

Have you ever looked at a touch screen fridge and wondered how it works? Back in my day (not very long ago), a fridge was just a fridge. No fancy built-in interface, no images displayed, and no wifi. But times have changed, and I’ve learned a lot about embedded systems, thanks to Defang!

smart_fridge

From my background, I was more into the web development and software side of things. Buffer flushing? Serial monitors? ESP32-S3? These were unheard of. Then one day at Defang, I was suggested to work on a project with a SenseCAP Indicator, a small programmable touch screen device. Everyone wished me good luck when I started. That’s how I knew it wasn’t going to be an easy ride. But here I am, and I’m glad I did it.

What is embedded systems/programming? It’s combining hardware with software to perform a function, such as interacting with the physical world or accessing cloud services. A common starting point for beginners is an Arduino board, which is what the SenseCAP Indicator has for its hardware. My goal was to make a UI display for this device, and then send its input to a computer, and get that data into the cloud.

hand_typing

The Beginning

My journey kicked off with installing the Arduino IDE on my computer. It took me two hours—far longer than I expected—because the software versions I kept trying were not the right ones. Little did I know that I would encounter this issue many times later, such as when downloading ESP-IDF, a tool for firmware flashing. Figuring out what not to install had become a highly coveted skill.

The next part was writing software to display images and text. This was slightly less of a problem thanks to forums of users who had done the exact same thing several years ago. One tool I used was Squareline Studio, a UX/UI design tool for embedded devices. With a bit of trial and error, I got a simple static program displayed onto the device. Not half bad looking either. Here’s what it looked like:

ui_static

The Middle

Now came the networking part. Over wifi, I set up a Flask (Python) server on my computer to receive network pings from the SenseCAP Indicator. I used a library called ArduinoHTTPClient. At first, I wanted to ping the server each time a user touched the screen. Then came driver problems, platform incompatibilities, deprecated libraries…

… After weeks of limited progress due to resurfacing issues, I decided to adjust my goal to send pings on a schedule of every 5 seconds, rather than relying on user input. I changed the UI to be more colorful, and for good reason. Now, each network ping appears with a message on the screen. Can you look closely to see what it says?

ui_wifi

This is what the Flask server looked like on my computer as it got pinged:

local_server

Hooray! Once everything was working, It was time to deploy my Flask code as a cloud service so I could access it from any computer, not just my own. Deployment usually takes several hours due to configuring a ton of cloud provider settings. But I ain’t got time for that. Instead, I used Defang to deploy it within minutes, which took care of all that for me. Saved me a lot of time and tears.

Here’s the Flask deployment on Defang’s portal view:

portal_view

Here’s the Flask server on the cloud, accessed with a deployment link:

deployed_server

The End

After two whole months, I finally completed my journey from start to finish! This project was an insightful dive into the world of embedded systems, internet networking, and cloud deployment.

Before I let you go, here are the hard lessons from hardware, from yours truly:

  1. Learning what not to do can be equally as important.
  2. Some problems are not as unique as you think.
  3. One way to achieve a goal is by modifying it.
  4. Choose the simpler way if it is offered.
  5. That’s where Defang comes in.

Want to try deploying to the cloud yourself? You can try it out here. Keep on composing up! 💪

· 3 min read

Defang Compose Update

Hi everyone - you can feel the weather getting cooler, but things are heating up at Defang! Sep was another amazing month, with new features, new users, and new partners. Here is a quick summary:

  1. Bring-Your-Own-Cloud (BYOC) DigitalOcean in Preview! From the very beginning, it has been part of Defang’s vision to not only provide a simpler way to develop, deploy, and debug your cloud applications, but to be able to do so in a portable way. As developers, we all value the flexibility of knowing our application can be deployed to our chosen cloud, even if that choice changes over time. Today, we take a big step in providing that choice with the Preview of BYOC with DigitalOcean! This literally means the same application can be deployed to the Defang Playground, AWS, or DigitalOcean with no changes! Take a look at the docs, give it a try and share your feedback on our Discord.
  2. Managed Postgres: Postgres is one of the fundamental building blocks of many applications, and users wanted us to provide a way to add that to their application in a declarative way. So that’s exactly what we have done. You can now specify the Postgres image in your compose.yaml file and indicate that you want it managed by your cloud provider using x-defang-postgres: true in your service definition. Defang will automatically provision the appropriate managed Postgres in the target cloud (e.g. RDS on AWS) and do all the heavy lifting to configure and hook things up correctly. Check out the docs here, give it a try and let us know what you think.
  3. We continue to improve the quality and performance of existing features:
    1. We’ve made several improvements to our AI-assistant to increase the robustness of our Develop and Debug modules. For example, we updated generation to comply with latest Compose spec. We also addressed the top issues we saw people facing when deploying, such as out-of-memory errors when building containers.
    2. To cope with our growing user-base, we have made several scaling improvements to our Playground and Portal environments.
    3. We also made several updates to our documentation and samples to keep up with the changes and enhancements in the Defang product.

Workshop

September Events

In Sep, the Defang team participated in a number of events including HacktheNorth, LangaraHacks, MLH Global Hack Week and other MLH hackathons. It’s great to see Defang being put to use by these hackers to build their amazing projects. And we get useful insights from these events that help us improve the product. We will continue to do more of these events in the future - watch our LinkedIn page for announcements.


Google for Startups Accelerator Canada

Also in Sep, Defang was included in the Google for Startups Accelerator Canada. This is a great recognition of the value Defang is providing to cloud developers. Through our collaboration with Google, we hope to add GCP as another target cloud for Defang in the coming months - stay tuned!


TownHall

Defang Coffee Chat

Mark your calendars! If you’re eager to learn more about what’s coming next, join us for our Defang Coffee Chat on Oct 23rd. We’ll be sharing our future roadmap, answering your questions, and gathering your feedback.

Register here!


As always, we appreciate your feedback and are committed to making Defang the easiest way to develop, deploy, and debug your cloud applications. Go build something awesome! 🚀

· 3 min read

Defang Compose Update

Wow - what a month of August it has been! We made some big strides of progress on our vision of providing a radically simpler way to Develop, Deploy, and Debug portable cloud applications.

Ask Defang

We've just rolled out an initial version of Ask Defang, our AI-driven documentation assistant that can help you navigate the Defang docs and get deploying faster. It's deployed with Defang and using a combination of embeddings run on a GPU-powered service, Defang managed Redis, and OpenAI APIs.

Check it out here or head to ask.defang.io to get started!

Enhanced Platform Symmetry

We've been hard at work improving the symmetry between our Playground and BYOC environments as well as docker compose up vs defang compose up to provide a more seamless experience. You can now use multiple compose files and in BYOC the CLI will subscribe to events to monitor service health during deployments.

AI Features and Debugging Improvements

We've been working on several AI-driven enhancements to make your development process even more efficient. We've addressed key issues, such as file generation failures due to parsing errors and invalid compose files. Also, our Debug Assistant is now more robust, handling context size limits better than before.


Workshop

August Events

This month, we hosted an in-person workshop to get more developers acquainted with Defang and simplify their cloud app journey. You can view the presentation here. We also held the first-ever DevTools Vancouver meetup, bringing together local DevTool founders, engineers, and enthusiasts.

Looking ahead, we’re excited to collaborate with MLH, Hack the North, LangaraHacks, and more in September. If you'd like to attend any of these events, be sure to sign up!


TownHall

Townhall

Mark your calendars! If you’re eager to learn more about what’s coming next, join us for our Townhall on September 25th. We’ll be sharing our future roadmap, answering your questions, and gathering your feedback.

Register here!


Roadmap

We're working on a number of new features to make Defang even better. Here are some of the most exciting ones:

  • Managed Postgres: We're working on getting Defang to provision managed Postgres services for you, so you can easily store and query data in your applications.
  • Digital Ocean BYOC: We're working on adding Digital Ocean BYOC to give you even more choice over where you deploy your applications.

We’re excited to keep enhancing Defang to make it the easiest way for you to Develop, Deploy, and Debug cloud applications. Stay tuned for more updates next month! 🚀

· 3 min read

Defang Compose Update

Hey folks! We can’t believe a month has gone by already, time flies when you’re having fun! We continued to make progress on our vision of providing a radically simpler way to Develop, Deploy, and Debug cloud applications. In July, we spent time on a couple of key areas:

  1. As our user-base grows, we wanted to make sure we’re able to scale our Playground environment to be able to handle the load. This involved being able to shard the workload across multiple ALBs and being able to dynamically move some workloads across shards where possible. With these changes, we are now able handle a large number of concurrent users comfortably. The only noticeable change in behavior you would see is that Defang will now ask you to “compose down” your previous project before you are able to deploy a new project on Playground.

  2. The major news this month was the introduction of our “debug” functionality. The motivation for this feature was that while the Defang experience is amazing when everything goes smoothly, we saw users (including our own interns who are helping write all those samples) struggle when they hit an error. The underlying reason for the error could come from a variety of sources: an error in the developer’s application (including in their Dockerfile or Compose file), an issue in the way Defang is processing the application, or an issue in the underlying cloud platform (currently, AWS). To the developer, it is often not obvious what the issue is or how to fix it. That got us thinking how we could make this debugging experience “radically simpler” and thus the idea for defang debug was born.

    Now (with CLI v0.5.37 if your application encounters an error that leads to a failed deployment, a failed health-check, or a run-time error, Defang will automatically detect the issue. It will then offer to help you debug it by running the defang debug command. If you choose to proceed, Defang will apply an LLM model to try to determine the precise cause of the error, with the context of your application source, logs, error code etc. And it will try to come up with one or more actionable insights on how to fix the error. For an example, see the case below:

    Behind the scenes, Defang is having a conversation on your behalf with the LLM to narrow down to the cause of the error. We would love for you to try the debug feature and give us your feedback so we can improve it further. One future improvement already on our list is the ability to, with user consent, automatically apply a chosen fix and re-try. We are also looking for way to improve the range of failures we are able to diagnose successfully.

Townhall

If you're excited about what's coming next and want to hear more about our vision for the future, join us for our Townhall on August 21st. We'll be sharing more about our roadmap and what we're working on next. We'll also be making sure to take time to answer any questions you have, hear your feedback, and learn more about what you want from Defang!

Register here


We’re excited to keep improving Defang to make it the easiest way for you to Develop, Deploy, and Debug cloud application. Stay tuned for more updates next month.

· 3 min read

Defang Compose Update

Hey folks! We've got another batch of updates to share with you about what the Defang team has been working on over the past month. We're committed to improving your deployment experience, so let's take a look at what's new.

Windows Experience Improvements

For our Windows users out there, we've made some changes to make your Defang experience even smoother:

  • You can now install Defang using winget, the Windows Package Manager, for a streamlined setup
  • We've introduced a signed binary for added security and peace of mind

Deploying your apps from Windows just got a little bit nicer.

One-click Deploy

We've added a new feature that will make it even easier to get started with Defang. We've created a flow where each sample provides a button that allows you to immediately deploy a template with a GitHub action which will automatically deploy the sample to the Defang Playground. That means you can easily make changes by committing them to your brand new repo, and everything automatically updates in the Playground. It's a great way to get started with Defang and start experimenting with your own projects.

Try it now from our portal!

screenshot of 1-click deploy UI in portal

Managed Redis Updates

We first introduced this last month, but we've since rolled it out to everyone. We also added a sample that showcases the power of managed Redis: BullMQ with Redis. It demonstrates how you can use BullMQ and BullBoard with a managed Redis instance to create a powerful job queue system so you can easily build robust, scalable applications in AWS with Defang.

Updated Samples

We've updated our sample projects to showcase how to use them with Defang, including:

Check them out if you're looking for some inspiration or a starting point for your own projects.

CLI Updates

We're always looking for ways to enhance the CLI experience. Here's what's new:

  • npx defang automatically checks to always have the latest version of the CLI
  • The output during defang compose up has been streamlined to focus on the most important information
  • defang tail now supports listening to specific services, making it easier to troubleshoot issues
  • We've improved hints and error messages to better guide you when something goes wrong
  • The CLI now has improved color support for light theme terminals, making it easier on the eyes

It's the small refinements that can make a big difference in your workflow.

Other Updates

Here are a few more things that didn't quite fit with the rest:

  • Visibility into ECS deployment events in BYOC tail logs
  • Improvements to ACME certificate generation

Keep an eye out for these updates in the near future.


As always, we'd love your help shaping the future of Defang, so let us know what you'd like to see next. Happy deploying! 🚀

· 4 min read

Defang Compose Update

Hey folks! We’re back with another exciting update about Defang. Our team has been working hard to bring you new features and improvements so you can get deploying faster. Here’s a rundown of what we’ve been up to this month:

Samples, samples, samples!

We've been cranking out samples like there's no tomorrow. We've published samples to get you up and running with FastAPI, Elysia, Angular, React, Svelte, Sveltekit, Sails.js, Phoenix, and more. You can filter through them on the Defang homepage. Check out our video about all the new samples and functionality.

Start from a sample in seconds

With all this work we've been putting into samples, we realized it would be pretty awesome if you could clone a sample faster. So we updated the CLI. Now, if you run defang generate you'll be able to filter through the samples and choose one. You can also filter through the samples on the Defang homepage and clone any of them with a simple command like defang new sveltekit.

Sample templates

If you look through our GitHub organization, you'll start seeing loads of repos with the structure sample-<sample_name>-template. If you open them, you can create a new repo by clicking this button:

screenshot of github UI pointing towards template button

Not only will that create a new repo based on the sample in your account, but if you've used Defang before (and accepted the Terms and Conditions) it will automatically deploy it to the playground so you can start playing with Defang immediately.

ACME for BYOD

We’re excited to announce that ACME support is now available for Bring Your Own Domain (BYOD) in both Bring Your Own Cloud (BYOC) and Playground. This means you can easily add Let's Encrypt certificates to your custom domains, regardless of where your DNS is hosted. Defang will handle the certificate generation and automatic renewal for you. Nice and easy.

Warnings for Stateful Services

To help you avoid potential pitfalls, we’ve added warnings against deploying stateful services with Defang, since you shouldn't actually be deploying anything stateful with Defang. For example, we'll warn you if you try to deploy services with images like postgres:<version>, redis:<version>, minio:<version>, etc.

In the near future we will be offering ways to run some stateful services using cloud providers' managed offerings. For example Redis, Postgres, and S3. Speaking of which...

Managed Redis!

Redis is such a versatile tool that can help with so many different use cases. So we've introduced Managed Redis! You can now specify the Redis image in your compose.yaml file and indicate that you want it managed by your cloud provider using x-defang-redis: true in your service definition.

Load Testing

To make sure Defang is ready for loads of new users, we've been doing a lot of load testing. This is going to help us identify and address potential bottlenecks so we can make sure that Defang scales efficiently and handles all you new users smoothly.

Upgraded Kaniko

We’ve upgraded our Kaniko integration to version 1.23.0 to improve your container build experience. The new version comes with several bug fixes that enhance stability and performance. This means faster and more reliable builds for your applications.

Upcoming Features

We’re not stopping here! Here’s a sneak peek at what’s coming soon:

Managed Postgres

Building on the momentum of Managed Redis, we’re introducing Managed Postgres. Soon you’ll be able to easily integrate a managed Postgres database into your deployment!

BYOC ECS Lifecycle Events

Defang runs your services with ECS, and we're working on making it clearer what's happening under the hood.


Stay tuned for more updates and improvements. As always, we appreciate your feedback and are committed to making Defang the easiest way to deploy your applications to the cloud. Go deploy something awesome! 🚀

· 2 min read

Defang Compose Update

Hey folks! There is a lot going on at Defang and we're excited to share our latest product updates with you. Over the last month, we've been working hard to improve the Defang system and make it even easier for you to deploy your applications. Here's a quick overview of what we've been up to:

npx defang

We know a lot of you are using Defang for the first time. To make it easier to get started, we've added a new way to install the Defang CLI. Now you can use npx to run the CLI without installing it globally. Just run:

npx defang@latest

This will download the latest version of the Defang CLI and run it for you. No need to worry about installing or updating the CLI manually!

(coming soon) Bring Your Own Domain with Let's Encrypt

Previously you could bring your own domain with Defang BYOC... but you had to host the DNS records with AWS Route 53 in the AWS account you were deploying to. Now you can point domains hosted anywhere to your Defang deployment and we'll take care of the rest. We'll help generate a Let's Encrypt certificate for your domain and automatically renew it for you.

Windows Support

Some of you use Defang from a Windows PC and previously a few features didn't work correctly on Windows. Some stuff we've fixed:

  • ansi color codes in logs
  • handle ctrl-c when tailing logs

Improved CLI

We've made a variety of small tweaks and improvements to the CLI which should make things a little bit cleaner and more stable.

  • log messages have been made more clear
  • adding more progress information during compose up

Stability and Reliability

Defang is still in Beta and we know we've got to be rock solid by the time we release V1, so we've been working hard to improve the stability and reliability of the Defang architecture. We've been battle-testing different technologies to see how they hold up and have mad a few changes that should make things even better:

  • capacity improvements in build queues
  • improvements in log availability

· 3 min read

Hey folks! Today, I'm going to share one of our code samples that will show you how to deploy a simple Slack bot. If you're looking to connect a cloud service to Slack to publish status updates, or something else like that, this should help you get started. We'll walk through a step-by-step process of writing a Go program using the github.com/slack-go/slack library to interact with the Slack API and easily deploy it using Defang.

Prerequisites

Before we dive into the details, let's make sure you have everything you need to get started:

  1. Install Defang CLI: Simplify your deployment process by installing the Defang CLI tool. Follow the instructions here to get it up and running quickly.

  2. Slack API Token: Create a Slack App at https://api.slack.com/apps, granting it the necessary permissions, including the bot chat:write scope. screenshot of the slack admin UI showing the bot scopes

  3. Install the app in your workspace: You'll need to install the app in your workspace for it to work. Click the "Install to Workspace" button in the Slack admin UI to do this. Mine says "Reinstall" because I've already installed it. screenshot of the slack admin UI showing the install button

  4. Copy the Bot User OAuth Access Token: This token will authenticate your Slackbot with the Slack API. screenshot of the slack admin UI showing the auth token field

  5. Invite the Bot to a Channel: To enable your Slackbot, invite it to the desired channel using the @<botname> command. In the screenshot below, my bot's name actually starts with the word invite, but if your bot is called mycoolbot you would invite it with @mycoolbot. This ensures your Slackbot has the required permissions to interact with the channel. screenshot of the slack chat UI showing me inviting my bot

  6. Clone the Sample Code: Clone the Defang repository and navigate to the samples/golang/slackbot directory. This directory contains the sample code for the Slackbot.

git clone https://github.com/DefangLabs/defang
cd defang/samples/golang/slackbot

Deployment Steps

Now that we have everything set up, let's dive into the deployment process. Follow these steps to deploy your Slackbot effortlessly:

  1. Set Up Secrets: Prioritize security by configuring environment variables as sensitive config. Use the Defang CLI's defang config set command to set the SLACK_TOKEN and SLACK_CHANNEL_ID configs. Replace your_slack_token and your_slack_channel_id with the respective values:

    defang config set --name SLACK_TOKEN --value your_slack_token
    defang config set --name SLACK_CHANNEL_ID --value your_slack_channel_id
  2. Deploy the Slackbot: Use the Defang CLI's defang compose up command to deploy.

Usage

With your Slackbot up and running, let's explore how to make the most of it. Simply send a POST request to the / endpoint with a JSON body containing the message you want to post to the Slack channel. Popular tools like cURL or Postman can help you send the request:

curl 'https://raphaeltm-bot--8080.prod1.defang.dev/' \
-H 'content-type: application/json' \
--data-raw $'{"message":"This is your bot speaking. We\'ll be landing in 10 minutes. Please fasten your seatbelts."}'

Takeaways

Congratulations! You've successfully deployed a Slackbot using Defang. If you deployed this as an internal service, you could use it to send status updates, alerts, or other important messages to your team. The possibilities are endless!

· 2 min read

Defang is aiming to reduce the barriers to entry to cloud application development. With our tooling, we make it really easy to deploy multi-service containerized applications to your own cloud with a single command.

We want it to be easy for you to try Defang with as little friction as possible, though, so we have done the work so you can easily get started in a GitHub Codespaces environment, a GitPod Workspace, or even a local Dev Container.

Codespaces

If you want to get started with Codespaces, you can just fork this repo. It comes with the Defang CLI pre-installed so you can start playing with it immediately. It's setup using the Defang CLI Dev Container Feature.

Dev Containers

Dev Containers are a cool way to provision and configure development environments and share that configuration with other people you are working with. It's a spec that is supported by VS Code, Visual Studio, the JetBrains IDEs like IntelliJ and PyCharm, DevPod and others.

GitPod

GitPod is another Cloud IDE, a bit like GitHub Codespaces. If prefer GitPod, you can try Defang in a GitPod environment by using this repo.