Appsody

    Building Cloud-Native Apps with Appsody

    Chris Bailey
    Jul 15, 2019 · 4 min read

    Appsody provides a set of open source tools and capabilities that simplifies the process of building and deploying applications to Kubernetes that are not just cloud packaged, but that are also cloud native.

    To do that, Appsody provides three components:

    • Appsody CLI
    • Appsody Stacks
    • Appsody Deploy

    Appsody CLI

    The Appsody CLI provides commands that implement the full development lifecycle. This spans the ability to create a new or enable an existing application using init , to then run, test, and debug, and finally to build an image and deploy it to Kubernetes.

    Flow diagram showing how the Appsody CLI implements create, run, test, debug, build and deploy for cloud-native applications.
    Flow diagram showing how the Appsody CLI implements create, run, test, debug, build and deploy for cloud-native applications.
    Appsody Workflow with the Appsody CLI

    All of this occurs in a continuous, local containerized environment. This means that, regardless of your development machine’s operating system, you can immediately verify, test and debug your application in a containerized environment that closely matches your target deployment environment.

    Additionally, the local containerized environment supports continuous build and run, meaning that code changes that you make in your application are immediately reflected in the container.

    Appsody Stacks

    At the heart of Appsody is the concept of Stacks. These provide pre-built, cloud-optimized development and production configurations for a range of programming languages and microservice frameworks. These are then discoverable and shareable through the Appsody Hub repository.

    Building traditional cloud applications means not just creating the application itself, but also building-in cloud-native capabilities. For example, liveness and readiness, metrics and observability, and dynamic configuration. That application then needs to be packaged for cloud using best practise Dockerfiles to create production optimized container images. This requires the accumulation of significant knowledge of how to integrate with cloud capabilities, as well as writing and maintaining the integration code. All of this could be delegated, which Appsody does by adding the capabilities into the Appsody Stacks.

    Appsody Stacks are designed to provide a spectrum of capabilities dependent on how much of the cloud-native application you want to write yourself, and how much you want to delegate to the Stack.

    Diagram showing the range of stacks for Node.js, spanning those for Cloud Packaging, Cloud Native and Cloud Functions
    Diagram showing the range of stacks for Node.js, spanning those for Cloud Packaging, Cloud Native and Cloud Functions
    Appsody Stacks for Node.js

    At the most simple level, the Appsody Stack provides “Cloud Packaging” for your chosen language. This means that you can either bring an existing application or build a new application, and the Appsody Stack not only provides a continuous containerized run, test and debug environment, but can also be used to build a best-practise container image for your application, and then deploy it to a local or remote Kubernetes cluster.

    At the next level, the Appsody Stack provides additional built-in “Cloud Native” capabilities such as liveness and readiness, metrics and observability. This is achieved by providing a pre-configured microservice or web framework as part of the Stack itself. You can then develop your code using the standard APIs from the framework as you would normally; Appsody then composes the application with the Stack to provide a full, containerized microservice.

    At the highest level, the Appsody Stack provides “Cloud Functions”-like APIs, where the Appsody Stack itself contains a full, cloud-native microservice. You can then develop by writing functions, using either the HTTP APIs provided by the framework or generic APIs such as those provided by Lambda, OpenWhisk and others. Appsody then composes with the Stack to provide a full, containerized, microservice with your functions.

    This means that you can choose the level of function you want to provide, versus what is provided by the Stack. You can, of course, also create your own Stacks — these are just source projects that contain pre-configured microsevice or web frameworks which are built into standard container images.

    Appsody Deploy

    Finally, you can build you application into a standard, production-optimized container image using the Appsody build command, or build and deploy the image into Kubernetes using the Appsody deploy command. This makes it easy to test and verify how your application runs when deployed into Kubernetes.

    The built container image can then be used in the same way that you would use any other image — enabling you to run it using Docker directly, or to deploy it to any cloud that supports containers.

    Cloud Deploy to Kubernetes using Knative

    Additionally, the Appsody `deploy` command can deploy directly to any Kubernetes cluster that has Knative Serving installed. The use of Knative serving means that the deployed application scales on request — and down to zero when its not use — and automatically has routes set up for it, so its immediately testable from your browser.

    See it in action

    Appsody Overview using Node.js

    Try it out!

    You can get started with Appsody using the getting started guide on the Appsody Website, or by using one of the following tutorials that describe how to use some of the Appsody Stacks:

    For more information on Appsody, join us on Slack, follow us on Twitter and star us on GitHub.

    Appsody

    Appsody (https://appsody.dev) provides tools and capabilities to create, develop, build and deploy cloud-native applications.

    Chris Bailey

    Written by

    Appsody

    Appsody

    Appsody (https://appsody.dev) provides tools and capabilities to create, develop, build and deploy cloud-native applications.

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade