Each month I try to summarise some techniques, tools, languages and frameworks or platforms on the software architecture, cloud and web horizon that are worth taking a look at.
TL;DR in this technology newsletter
- Techniques: Async API Specification (Trial)
- Tools: OpenCost (Assess)
- Frameworks & Languages: Crossplane (Trial)
- Platforms: Open Source Insights (Trial)
Techniques / TrialAsyncAPI Website
The rise of asynchronous messaging has brought forth new challenges and opportunities in building robust and scalable systems.
Enter the AsyncAPI specification, a powerful technique that empowers developers to design, document, and collaborate on asynchronous APIs with ease.
Similar to how the OpenAPI specification revolutionized the world of RESTful APIs, AsyncAPI brings the same level of clarity and consistency to asynchronous messaging.
It allows developers to describe the structure and behavior of messages exchanged between different components of an application, such as producers, consumers, and brokers.
Benefits of AsyncAPI:
- Improved Collaboration: AsyncAPI acts as a common language between teams, facilitating effective collaboration.
- Documentation: AsyncAPI simplifies the process of documenting asynchronous APIs. It provides a comprehensive overview of the message structure, supported protocols, and event-driven workflows.
- Code Generation: AsyncAPI specifications can be utilized to generate code stubs or client libraries, significantly reducing the time and effort required to integrate with asynchronous messaging systems.
- Tooling Ecosystem: AsyncAPI has fostered a vibrant tooling ecosystem. There are a variety of tools available that can validate, visualize, and test AsyncAPI documents.
- Interoperability: AsyncAPI promotes interoperability between different messaging systems and vendors. By using a standardized specification, developers can easily switch between message brokers or implement message-driven architectures without extensive modifications to their codebase.
Tools / AssessOpenCost Website
As organizations migrate to the cloud, managing costs becomes a critical challenge.
OpenCost is vendor-neutral open-source project designed to bring transparency and clarity to cloud costs. It aims to provide standardized methods and tools for aggregating, analyzing, and visualizing cost data from different cloud providers.
By implementing OpenCost, organizations can gain insights into their cloud spending, identify cost drivers, and make data-driven decisions to optimize their cloud usage and costs.
Beside of the OpenCost tool, there is a OpenCost specification which describes a vendor-neutral implementation for Kuberentes cost monitoring.
Some benefits of OpenCost:
- Transparency and Visibility of cloud costs: OpenCost enables organizations to gain a comprehensive view of their cloud costs. It allows businesses to track and analyze expenses across multiple cloud providers, services, and regions in a unified and standardized manner. This transparency helps identify areas of high expenditure, cost inefficiencies, or underutilized resources.
- Cost Optimization: Armed with detailed cost data, organizations can optimize their cloud spending. It enables businesses to identify idle or underused resources, right-size instances, and implement cost-saving measures, ultimately leading to significant cost reductions.
- Decision-Making: OpenCost empowers organizations to make informed decisions regarding cloud usage and expenditure. By having a clear understanding of the costs associated with different services and workloads, businesses can allocate resources more effectively, prioritize investments, and evaluate the financial impact of architectural decisions or migration strategies.
- Collaboration and Benchmarking: OpenCost encourages collaboration among organizations by facilitating the sharing of cost data and best practices. It enables benchmarking against industry peers or similar workloads, allowing businesses to assess their cost competitiveness and identify areas for improvement.
- Vendor Neutrality: OpenCost promotes vendor neutrality by providing a standardized approach to cost management across multiple cloud providers. It allows organizations to compare costs, services, and pricing models objectively, avoiding vendor lock-in and enabling flexibility in choosing the most cost-effective solutions.
Languages & Frameworks / TrialCrossplane Website
Crossplane brings Kubernetes-styled declarative and API-driven configuration and management to any piece of infrastructure, on-premises and in the cloud.
Through this approach, infrastructure managed through Crossplane is accessible via kubectl, configurable with YAML, and self-healing right out of the box.
Crossplane has a highly extensible backend that enables you to build a control plane that can orchestrate applications and infrastructure no matter where they run, and a highly configurable frontend that puts you in control of the schema of the declarative API it offers.
It enables organizations to manage infrastructure resources across multiple cloud providers, on-premises environments, and even third-party services. It acts as a control plane that abstracts the underlying infrastructure, allowing developers and operators to define and manage their infrastructure resources using a unified and declarative API.
Some benefits of Crossplane:
- Unified API: Crossplane allows you to manage infrastructure resources using a single Kubernetes API. This unified API allows you to use Kubernetes tooling and workflows to manage cloud-native infrastructure resources, including databases, storage, and virtual machines.
- Multi-cloud support: Crossplane supports multiple cloud providers, including AWS, GCP, and Azure. This multi-cloud support allows you to use the same infrastructure management approach across multiple clouds and avoid vendor lock-in.
- Automation: Crossplane allows you to automate the creation, configuration, and management of cloud infrastructure resources using a declarative API. This automation reduces the potential for human error, speeds up infrastructure provisioning, and helps ensure consistency across environments.
- Cost savings: Crossplane enables you to manage cloud resources more efficiently and reduce costs. For example, you can use Crossplane to create and destroy cloud resources dynamically based on demand, reducing the need for manual intervention and helping to optimize resource usage.
- Kubernetes-native: Crossplane integrates seamlessly with Kubernetes and can be deployed as a Kubernetes add-on. This Kubernetes-native approach allows you to use the same tooling, processes, and expertise to manage both your infrastructure and your applications, simplifying operations and reducing complexity.
Open Source Insights
Platforms / TrialOpen Source Insights Website
Open Source Insights is a service developed and hosted by Google to help developers better understand the structure, construction, and security of open source software packages.
The service examines each package, constructs a full, detailed graph of its dependencies and their properties, and makes the results available to anyone who could benefit from them.
The goal is to provide developers with a picture of how their software is put together, how that changes as dependencies change, and what the consequences might be.
The Open Source Insights page for each package shows the full dependency graph and updates it every day.
The information provided can help you make informed decisions about using, building, and maintaining your software.
With Open Source Insights, you can actually see the dependency graph for a package, then isolate the paths to a particular dependency.
Or see whether a vulnerability in a dependency might affect your code.
Or compare two versions of a package to see how the dependencies have changed in a new release.