Just starting with cloud development? Avoid dev setup and deployment headaches with Appsody, Codewind, and Tekton.

Our industry is experiencing a rapid adoption of container-enabled environments like Docker and Kubernetes. As these environments have grown in popularity, so has the adoption of microservices architectures. These approaches enable applications to leverage the key features of these new environments, such that they are not just cloud hosted, but rather cloud-native. These environments, however, come with a learning curve, presenting new challenges for developers who simply want to write, deploy, and debug their code quickly.

Traditionally, developers create applications on their desktop, debug them locally, and then build and deploy them through an automated DevOps pipeline. In each environment, there are often numerous differences, including the operating system, runtime, or package version differences. In addition, since development usually occurs locally before deploying to a containerized environment, there can be painfully long waits between making a code change and seeing that change running live in a staging environment that matches production.

Fortunately for developers, as part of the framework behind the open source Kabanero project, there are tools to help. This blog post presents the curated development tools Codewind, Appsody, and Tekton. 

Codewind: Simplify building cloud-native apps for Kubernetes

Codewind is a new Eclipse project that addresses many of these developer challenges. Codewind is a set of tools that helps developers efficiently build high-quality, cloud-native applications for Kubernetes, regardless of which IDE or language they are using.

When a developer’s IDE is enhanced with Codewind, they can run their applications in a Docker container and still get the development experience they’re used to. Codewind’s rapid development loop lets them edit, build, and run their code with minimal interruption—hiding the complexities of the underlying platform. With Codewind, developers can focus on just delivering code. 

Codewind’s initial tech-preview offers plugin support for VS Code and Eclipse IDEs. This common library provides the following IDE features:

  • Create projects from templates or bind to existing projects, rapidly creating container-ready applications
  • View live project information, including application and build status
  • Debug and incrementally update Microprofile, Spring, and Node.js projects
  • View application and build logs
  • Integrate validation errors into the IDE’s problems view
  • Open a shell session into an application container
  • Enable build actions, such as auto build or manual initiation of a build
  • Disable, enable, and delete projects
  • Launch performance metrics, a performance dashboard, and run load testing

In other words, Codewind has everything a developer needs for cloud-native development, without having to leave their IDE. Try it yourself in your Eclipse or VS Code IDE! Download the install from Eclipse Codewind and provide feedback to the Codewind developers via Mattermost.

Appsody: Simplify deploying cloud-native apps to Kubernetes

Building traditional cloud applications means not just creating the application itself, but also incorporating cloud-native capabilities. For example, liveness and readiness, metrics and observability, and dynamic configuration. The application then needs to be packaged for cloud using best practice 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. 

Sigh… but developers just want to code. To reduce the time spent on creating development and production configurations, Appsody provides open source tools and capabilities that simplify the experience of building and deploying applications to Kubernetes using the language and frameworks of your choice.

To do that, Appsody provides three components:

  • Appsody Stacks
  • Appsody CLI
  • Appsody Deploy

Appsody Stacks

Appsody Stacks are pre-built, cloud-optimized development and production configurations for a range of programming languages and microservice frameworks, including Open Liberty, Spring Boot, Express.js, LoopBack, and Kitura. These are discoverable and shareable through the Appsody Hub repository.

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. These range from:

  • Cloud packaged: Build a best-practice container image for your application
  • Cloud-native: Pre-configured microservice framework
  • Cloud functions: Takes functions and composes them with the Stack to provide a full, containerized, serverless microservice

The following diagram shows this Appsody Stack progression from left-to-right:

Appsody CLI

Working with Appsody Stacks, the CLI provides commands that implement the full development lifecycle. This spans the ability to create a new or enable an existing application using appsody <dev-env> init as well as commands to run, test, debug, and finally to build an image and deploy it to Kubernetes. Additionally, the Appsody CLI is integrated into Codewind, so you can develop with Appsody Stacks directly in the most popular IDEs using Codewind’s plugins.

Appsody Deploy

With a single build command, you can create a standard, production-optimized container image of your cloud-native microservices, then deploy the image into Kubernetes using the deploy command. Appsody Deploy makes use of the Appsody Operator (based on Red Hat OpenShift Operators), which minimizes the configuration required to deploy the microservice, enabling you to deploy using either a serverless deployment via Knative or as a regular Kubernetes service. This makes it easy to switch between a server and serverless deployment dependent on your required performance and scaling characteristics.

Try out Appsody

You can try out Appsody by following the instructions in my blog “Build a new Cloud Native Express.js app with Appsody” or do some serverless programming with “Cloud Functions for Node.js using Connect APIs.” 

For more information on Appsody, join us on Slack, follow us on Twitter and star our repository on GitHub. You can also chat with me, Chris Bailey, on Twitter or LinkedIn.

Tekton: Kubernetes-style CI/CD pipelines

The Tekton project provides Kubernetes-style resources for declaring continuous integration and continuous deployment (CI/CD) pipelines. A Tekton Pipeline is a structured collection of Tasks—each of which is a set of instructions to execute within a given container. Tekton automates common activities in Kubernetes environments, such as building, testing, and deploying code. 

Tekton composable Tasks and Pipelines create a network of shared, reusable automation components, where developers can share both code and DevOps best practices. IBM is working with the open source community to design an extension mechanism that enables developers to combine off-the-shelf pipelines with their own extensions and customizations, while still getting support and fixes for the core pipeline. To take full advantage of Tekton, developers must apply industry-standard best practices while enforcing their own controls and business processes. In some environments, they might need to run extra tests, or perform vulnerability scanning.

For a closer look, see our video “What is Tekton?”:

IBM’s main contributions to the Tekton framework is a web-based dashboard as shown below:

Tekton also includes an extension that enables developers to manage webhooks from systems such as GitHub. These webhooks are commonly used to initiate CI/CD pipelines.

What’s next?

In the final post in this series, we’ll take a closer look at IBM Cloud Transformation Advisor. It analyzes the code (WAR files) of your existing WebSphere applications and based on their complexity, estimates a development cost to migrate them to a cloud-based platform.

Resources

  • Kabanero: Curated development tools and runtimes.
  • Appsody: Developing containerized applications for the cloud just got easier.
  • Codewind: Simplified coding by extending popular IDEs for cloud-native application development. 
  • Tekton: Kubernetes-style resources for declaring CI/CD-style pipelines. 
Was this article helpful?
YesNo

More from Cloud

The history of the central processing unit (CPU)

10 min read - The central processing unit (CPU) is the computer’s brain. It handles the assignment and processing of tasks, in addition to functions that make a computer run. There’s no way to overstate the importance of the CPU to computing. Virtually all computer systems contain, at the least, some type of basic CPU. Regardless of whether they’re used in personal computers (PCs), laptops, tablets, smartphones or even in supercomputers whose output is so strong it must be measured in floating-point operations per…

A clear path to value: Overcome challenges on your FinOps journey 

3 min read - In recent years, cloud adoption services have accelerated, with companies increasingly moving from traditional on-premises hosting to public cloud solutions. However, the rise of hybrid and multi-cloud patterns has led to challenges in optimizing value and controlling cloud expenditure, resulting in a shift from capital to operational expenses.   According to a Gartner report, cloud operational expenses are expected to surpass traditional IT spending, reflecting the ongoing transformation in expenditure patterns by 2025. FinOps is an evolving cloud financial management discipline…

IBM Power8 end of service: What are my options?

3 min read - IBM Power8® generation of IBM Power Systems was introduced ten years ago and it is now time to retire that generation. The end-of-service (EoS) support for the entire IBM Power8 server line is scheduled for this year, commencing in March 2024 and concluding in October 2024. EoS dates vary by model: 31 March 2024: maintenance expires for Power Systems S812LC, S822, S822L, 822LC, 824 and 824L. 31 May 2024: maintenance expires for Power Systems S812L, S814 and 822LC. 31 October…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters