上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

Thoughtworks:2024技术雷达-针对当今科技领域发展的前沿指南(第30期)(英文版)(44页).pdf

编号:158963 PDF   DOCX  44页 2.70MB 下载积分:VIP专享
下载报告请您先登录!

Thoughtworks:2024技术雷达-针对当今科技领域发展的前沿指南(第30期)(英文版)(44页).pdf

1、 Thoughtworks,Inc.All Rights Reserved.1An opinionated guide to todays technology landscapeTechnology RadarApril 2024Volume30 Thoughtworks,Inc.All Rights Reserved.2About the Radar 3Radar at a glance 4Contributors 5Themes 6The Radar 8Techniques 11Platforms 18Tools 26Languages and Frameworks 37 Thought

2、works,Inc.All Rights Reserved.Thoughtworks Technology RadarAbout the RadarThoughtworkers are passionate about technology.We build it,research it,test it,open source it,write about it and constantly aim to improve it for everyone.Our mission is to champion software excellence and revolutionize IT.We

3、create and share the Thoughtworks Technology Radar in support of that mission.The Thoughtworks Technology Advisory Board,a group of senior technology leaders at Thoughtworks,creates the Radar.They meet regularly to discuss the global technology strategy for Thoughtworks and the technology trends tha

4、t significantly impact our industry.The Radar captures the output of the Technology Advisory Boards discussions in a format that provides value to a wide range of stakeholders,from developers to CTOs.The content is intended as a concise summary.We encourage you to explore these technologies.The Rada

5、r is graphical in nature,grouping items into techniques,tools,platforms and languages and frameworks.When Radar items could appear in multiple quadrants,we chose the one that seemed most appropriate.We further group these items in four rings to reflect our current position on them.For more backgroun

6、d on the Radar,see Rights Reserved.4Thoughtworks Technology RadarOur Radar is forward-looking.To make room for new items,we fade items that havent moved recently,which isnt a reflection on their value but rather on our limited Radar real estate.HoldAssessTrialAdoptAdopt:We feel strongly that the ind

7、ustry should be adopting these items.We use them when appropriate in our projects.Trial:Worth pursuing.Its important to understand how to build up this capability.Enterprises can try this technology on a project that can handle the risk.Assess:Worth exploring with the goal of understanding how it wi

8、ll affect your enterprise.Hold:Proceed with caution.NewMoved in/outNo changeRadar at a glanceThe Radar is all about tracking interesting things,which we refer to as blips.We organize the blips in the Radar using two categorizing elements:quadrants and rings.The quadrants represent different kinds of

9、 blips.The rings indicate our recommendation for using that technology.A blip is a technology or technique that plays a role in software development.Blips are in motion their position in the Radar often changes usually indicating our increasing confidence in recommending them as they move through th

10、e rings.Thoughtworks,Inc.All Rights Reserved.5ContributorsThe Technology Advisory Board(TAB)is a group of 22 senior technologists at Thoughtworks.The TAB meets twice a year face-to-face and biweekly virtually.Its primary role is to be an advisory group for Thoughtworks CTO,Rachel Laycock,and CTO Eme

11、rita,Rebecca Parsons.The TAB acts as a broad body that can look at topics that affect technology and technologists at Thoughtworks.This edition of the Thoughtworks Technology Radar is based on a meeting of the TAB in New York in February 2024.Rebecca Parsons(CTO Emerita)Camilla Falconi CrispimJames

12、LewisScott ShawRachel Laycock(CTO)Martin Fowler(Chief Scientist)Erik DrnenburgMarisa HoenigSelvakumar NatesanShangqi LiuSofia TaniaVanya SethWill AmaralBharani SubramaniamFausto de la TorreMike MasonMaya OrmazaBirgitta BckelerHao XuNeal FordPawan ShahBrandon Byars Thoughtworks,Inc.All Rights Reserve

13、d.6Open-ish source licensesTwo types of discussions about licenses arose during our meeting.First,for many years,the open-source software development ecosystem relied on a set of licenses,cataloged by the Open Source Initiative(OSI),with a small number of popular licenses used in most cases.Recently

14、,however,weve seen churn in this previously serene landscape.Several prominent tools have recently garnered bad press,when their maintainers switched in several cases abruptly from an open-source license to a commercial model.We have no problem paying for software and are fine with the common model

15、of commercial licenses for additional functionality.However,we find it problematic when core functionality of a widely used tool is suddenly put behind a paywall,especially when an ecosystem has developed around the tool.Second,the other interesting development concerns software that proclaims to be

16、 open source yet fundamental capabilities only appear after consumers pay subscriptions or other charges.Even though this business model has existed before,it seems to be exploited more with many of the shiny new AI tools offering amazing capabilities a little too hidden under the fine print.We advi

17、se particular diligence around license issues.Pay attention to caveats and make sure that all files in a repository are covered by the license at the top level.AI-assisted software development teamsThe topic of AI obviously dominated our conversations;one-third of our blips concerned some aspect of

18、it.While we discussed several developer-focused AI tools like GitHub Copilot,CodiumAI,aider and Continue,we also had numerous conversations about how the holistic use of AI across an entire team changes aspects of software development.We talked about a variety of tools that didnt make the final cut,

19、including AI-assisted terminals like Warp,the ability to convert screenshots to code,ChatOps backed by LLMs and a host of other topics.Although the developer tools tend toward a higher degree of maturity,we suspect that all aspects of software development can gradually benefit from the pragmatic use

20、 of AI and derived tools,and were actively following innovations across the development landscape.Of course,with the almost magical new capabilities offered by AI come new risks to software quality and security.This calls for teams to remain vigilant,including keeping non-developers in the loop abou

21、t potential hazards.Themes Thoughtworks,Inc.All Rights Reserved.7Emerging architecture patterns for LLMsPatterns are popular in the technology world because they provide a succinct name for a solution to a particular problem.With the growing use of large language models(LLMs),were starting to see th

22、e emergence of specific architecture patterns to support common contexts.For example,we discussed NeMo Guardrails,which allows developers to build governance policies around LLM usage.We also talked about tools such as Langfuse that allow greater observability into the steps leading to an LLMs outpu

23、t and how to deal with(and validate)bloated code bases full of generated code.We discussed how retrieval-augmented generation(RAG)is our preferred pattern to enhance the quality of LLM outputs,especially in the enterprise ecosystem.Additionally,we discussed techniques like using a lower-powered(and

24、more cost-efficient)LLM to produce material which is selectively vetted by a more powerful(and expensive)LLM.Patterns form an important vocabulary for technologies,and we expect to see an explosion of patterns(and the inevitable anti-patterns)as generative AI continues to suffuse software developmen

25、t.Dragging PRs closer to proper CIThoughtworks has always been a strong proponent of fast feedback loops during software development and thus a big supporter of continuous integration(CI).To assist with adoption,we built the first-ever CI server CruiseControl that was open-sourced in the late 1990s.

26、Recently,our chief scientist Martin Fowler updated the canonical definition of continuous integration on his bliki to renew attention on this practice.However,many of our teams are compelled to ignore the CI part of CI/CD because they find themselves in situations where pull requests(PRs)are mandate

27、d.Although the practice of PRs was originally developed to manage massively distributed open-source teams and unreliable contributors,theyve become a synonym for peer review commonplace even on small,close-knit delivery teams.In these circumstances,many developers yearn for the same sense of flow th

28、at they get from practicing actual CI.We surveyed several tools that are trying to alleviate the pains of PR review processes,including gitStream and Github merge queue.We also discussed techniques such as stacked diffs that hold promise for aligning with the core principles of CI by enabling more g

29、ranular control over the integration process and discussed methods for deriving metrics from PRs to identify inefficiencies and bottlenecks during software delivery.Tooling helps tremendously in this space because of the trend toward generative AI for coding.With AI coding assistants,coding throughp

30、ut increases,which leads to a tendency to create larger PRs.This puts even more pressure on asynchronous code review processes.Even though we still prefer the original practice of CI,we encourage teams who cannot use it because of external constraints to find ways to improve the accuracy of integrat

31、ion and the speed of their feedback cycle.Thoughtworks,Inc.All Rights Reserved.8HoldHoldAssessAssessTrialTrialAdoptAdopt3233343536373839404679206566676869707777879808595356586899099798993222

32、0282527238455760The RadarNewMoved in/outNo change Thoughtworks,Inc.All Rights Reserved.Adopt1.Retrieval-augmented generation(RAG)Trial2.Automatically generate Backstage entity descriptors3.Combining traditional NLP with LLMs4.Continuous compliance5.Edge functions6.Security champions7.Text

33、 to SQL8.Tracking health over debt Assess9.AI team assistants10.Graph analysis for LLM-backed chats11.LLM-backed ChatOps12.LLM-powered autonomous agents13.Using GenAI to understand legacy codebases14.VISS Hold15.Broad integration tests16.Overenthusiastic LLM use17.Rush to fine-tune LLMs18.Web compon

34、ents for SSR web appsAdopt19.CloudEvents Trial20.Arm in the cloud21.Azure Container Apps22.Azure OpenAI Service23.DataHub24.Infrastructure orchestration platforms25.Pulumi26.Rancher Desktop27.Weights&Biases Assess28.Bun29.Chronosphere30.DataOS31.Dify32.Elasticsearch Relevance Engine33.FOCUS34.Gemini

35、 Nano35.HyperDX36.IcePanel37.Langfuse38.Qdrant39.RISC-V for embedded40.Tigerbeetle41.WebTransport42.Zarf43.ZITADELHoldTechniquesPlatformsThe Radar Thoughtworks,Inc.All Rights Reserved.Adopt44.Conan45.Kaniko46.Karpenter Trial47.42Crunch API Conformance Scan48.actions-runner-controller49.Android Emula

36、tor Container50.AWS CUDOS51.aws-nuke52.Bruno53.Develocity54.GitHub Copilot55.Gradio56.Gradle Version Catalog57.Maestro58.Microsoft SBOM tool59.Open Policy Agent(OPA)60.Philipss self-hosted GitHub runner61.Pop62.Renovate63.Terrascan64.Velero Assess65.aider66.Akvorado67.Baichuan 268.Cargo Lambda69.Cod

37、ium AI70.Continue71.Fern Docs72.Granted73.LinearB74.LLaVA75.Marimo76.Mixtral77.NeMo Guardrails78.Ollama79.OpenTofu80.QAnything81.System Initiative82.Tetragon83.WinglangHoldAdopt Trial84.Astro85.DataComPy86.Pinia87.Ray Assess88.Android Adaptability89.Concrete ML90.Crabviz91.Crux92.Databricks Asset Bu

38、ndles93.Electric94.LiteLLM95.LLaMA-Factory96.MLX97.Mojo98.Otter99.Pkl100.Rust for UI101.vLLM102.Voyager103.WGPU104.ZigHold105.LangChainToolsLanguages and Frameworks Thoughtworks,Inc.All Rights Reserved.TechniquesHoldHoldAssessAssessTrialTrialAdoptAdopt32333435363738394046791516

39、44447495065666768697077778798085953565868990997989932220282527238455760Adopt1.Retrieval-augmented generation(RAG)Trial2.Automatically generate Backstage entity descriptors3.Combining traditional NLP with LLMs4.Co

40、ntinuous compliance5.Edge functions6.Security champions7.Text to SQL8.Tracking health over debt Assess9.AI team assistants10.Graph analysis for LLM-backed chats11.LLM-backed ChatOps12.LLM-powered autonomous agents13.Using GenAI to understand legacy codebases14.VISS Hold15.Broad integration tests16.O

41、verenthusiastic LLM use17.Rush to fine-tune LLMs18.Web components for SSR web appsNewMoved in/outNo change Thoughtworks,Inc.All Rights Reserved.12Techniques1.Retrieval-augmented generation(RAG)AdoptRetrieval-augmented generation(RAG)is the preferred pattern for our teams to improve the quality of re

42、sponses generated by a large language model(LLM).Weve successfully used it in several projects,including the popular Jugalbandi AI Platform.With RAG,information about relevant and trustworthy documents in formats like HTML and PDF are stored in databases that supports a vector data type or efficient

43、 document search,such as pgvector,Qdrant or Elasticsearch Relevance Engine.For a given prompt,the database is queried to retrieve relevant documents,which are then combined with the prompt to provide richer context to the LLM.This results in higher quality output and greatly reduced hallucinations.T

44、he context window which determines the maximum size of the LLM input is limited,which means that selecting the most relevant documents is crucial.We improve the relevancy of the content that is added to the prompt by reranking.Similarly,the documents are usually too large to calculate an embedding,w

45、hich means they must be split into smaller chunks.This is often a difficult problem,and one approach is to have the chunks overlap to a certain extent.2.Automatically generate Backstage entity descriptorsTrialBackstage from Spotify has been widely adopted across our client base as the preferred plat

46、form to host developer experience portals.Backstage,on its own,is just a shell that hosts plugins and provides an interface to manage the catalog of assets that make up a platform ecosystem.Any entity to be displayed or managed by Backstage is configured in the catalog-info file,which contains data

47、such as status,lifecycle,dependencies and APIs among other details.By default,individual entity descriptors are written by hand and usually maintained and versioned by the team responsible for the component in question.Keeping the descriptors up to date can be tedious and create a barrier to develop

48、er adoption.Also,there is always the possibility that changes are overlooked or that some components are missed entirely.Weve found it more efficient and less error-prone to automatically generate Backstage entity descriptors.Most organizations have existing sources of information that can jump-star

49、t the process of populating catalog entries.Good development practices,for example,putting appropriate tags on AWS resources or adding metadata to source files,can simplify entity discovery and descriptor generation.These automated processes can then be run on a regular basis once a day,for example

50、to keep the catalog fresh and up to date.3.Combining traditional NLP with LLMsTrialLarge language models(LLMs)are the Swiss Army knives of natural language processing(NLP).But theyre also quite expensive and not always the best tool for the job sometimes its more effective to use a proper corkscrew.

51、Indeed,theres a lot of potential in combining traditional NLP with LLMs,or in building multiple NLP approaches in conjunction with LLMs to implement use cases and leverage LLMs for the steps where you actually need their capabilities.Traditional data science and NLP approaches for document clusterin

52、g,topic identification and classification and even summarization are cheaper and can be more effective for solving a part of your use case problem.We then use LLMs when we need to generate and summarize longer texts,or combine multiple large documents,to take advantage of the LLMs superior attention

53、 span and memory.For example,weve successfully used this combination of techniques to generate a comprehensive trends report for a domain from a large corpus of individual trend documents,using traditional clustering alongside the generative power of LLMs.Thoughtworks,Inc.All Rights Reserved.134.Con

54、tinuous complianceTrialContinuous compliance is the practice of ensuring that software development processes and technologies comply with industry regulations and security standards on an ongoing basis,by heavily leveraging automation.Manually checking for security vulnerabilities and adhering to re

55、gulations can slow down development and introduce errors.As an alternative,organizations can automate compliance checks and audits.They can integrate tools into software development pipelines,allowing teams to detect and address compliance issues early in the development process.Codifying compliance

56、 rules and best practices helps enforce policies and standards consistently across teams.It enables you to scan code changes for vulnerabilities,enforce coding standards and track infrastructure configuration changes to ensure they meet compliance requirements.Lastly,automated reporting of the above

57、 simplifies audits and provides clear evidence of compliance.Weve already talked about techniques like publishing SBOMs and applying the recommendations from SLSA they can be very good starting points.The benefits of this technique are multifold.First,automation leads to more secure software by iden

58、tifying and mitigating vulnerabilities early and,second,development cycles accelerate as manual tasks are eliminated.Reduced costs and enhanced consistency are additional perks.For safety-critical industries like software-driven vehicles,automated continuous compliance can improve the efficiency and

59、 reliability of the certification process,ultimately leading to safer and more reliable vehicles on the road.5.Edge functionsTrialAlthough not a new concept,weve noticed the growing availability and use of decentralized code execution via content delivery networks(CDNs).Services such as Cloudflare W

60、orkers or Amazon CloudFront Edge Functions provide a mechanism to execute snippets of serverless code close to the clients geographic location.Edge functions not only offer lower latency if a response can be generated at the edge,they also present an opportunity to rewrite requests and responses in

61、a location-specific way on their way to and from the regional server.For example,you might rewrite a request URL to route to a specific server that has local data relevant to a field found in the request body.This approach is best suited to short,fast-running stateless processes since the computatio

62、nal power at the edge is limited.6.Security championsTrialSecurity champions are team members who think critically about security repercussions of both technical and nontechnical delivery decisions.They raise these questions and concerns with team leadership and have a firm understanding of basic se

63、curity guidelines and requirements.They help development teams approach all activities during software delivery with a security mindset,thus reducing the overall security risks for the systems they develop.A security champion is not a separate position but a responsibility assigned to an existing me

64、mber of the team who is guided by appropriate training from security practitioners.Equipped with this training,security champions improve the security awareness of the team by spreading knowledge and acting as a bridge between the development and security teams.One great example of an activity secur

65、ity champions can help drive within the team is threat modeling,which helps teams think about security risks from the start.Appointing and training a security champion on a team is a great first step,but relying solely on champions without proper commitment from leaders can lead to problems.Building

66、 a security mindset,in our experience,requires commitment from the entire team and managers.Techniques Thoughtworks,Inc.All Rights Reserved.147.Text to SQLTrialText to SQL is a technique that converts natural language queries into SQL queries that can be executed by a database.Although large languag

67、e models(LLMs)can understand and transform natural language,creating accurate SQL for your own schema can be challenging.Enter Vanna,an open-source Python retrieval-augmented generation(RAG)framework for SQL generation.Vanna works in two steps:first you create embeddings with the data definition lan

68、guage statements(DDLs)and sample SQLs for your schema,and then you ask questions in natural language.Although Vanna can work with any LLMs,we encourage you to assess NSQL,a domain-specific LLM for text-to-SQL tasks.8.Tracking health over debtTrialWe keep experiencing the improvements teams make to t

69、heir ecosystem by treating the health rating the same as other service-level objectives(SLOs)and prioritizing enhancements accordingly,instead of solely focusing on tracking technical debt.By allocating resources efficiently to address the most impactful issues related to health,teams and organizati

70、ons can reduce long-term maintenance costs and evolve products more efficiently.This approach also enhances communication between technical and nontechnical stakeholders,fostering a common understanding of the systems state.Although metrics may vary among organizations(see this blog post for example

71、s)they ultimately contribute to long-term sustainability and ensure software remains adaptable and competitive.In a rapidly changing digital landscape,focusing on tracking health over debt of systems provides a structured and evidence-based strategy to maintain and enhance them.9.AI team assistantsA

72、ssessAI coding assistance tools like GitHub Copilot are currently mostly talked about in the context of assisting and enhancing an individuals work.However,software delivery is and will remain team work,so you should be looking for ways to create AI team assistants to help create the“10 x team,”as o

73、pposed to a bunch of siloed AI-assisted 10 x engineers.Weve started using a team assistance approach that can increase knowledge amplification,upskilling and alignment through a combination of prompts and knowledge sources.Standardized prompts facilitate the use of agreed-upon best practices in the

74、team context,such as techniques and templates for user story writing or the implementation of practices like threat modeling.In addition to prompts,knowledge sources made available through retrieval-augmented generation provide contextually relevant information from organizational guidelines or indu

75、stry-specific knowledge bases.This approach gives team members access to the knowledge and resources they need just in time.10.Graph analysis for LLM-backed chatsAssessChatbots backed by large language models(LLMs)are gaining a lot of popularity right now,and were seeing emerging techniques around p

76、roductionizing and productizing them.One such productization challenge is understanding how users are conversing with a chatbot that is driven by something as generic as an LLM,where the conversation can go in many directions.Understanding the reality of conversation flows is crucial to improving th

77、e product and improving conversion rates.One technique Techniques Thoughtworks,Inc.All Rights Reserved.15to tackle this problem is to use graph analysis for LLM-backed chats.The agents that support a chat with a specific desired outcome such as a shopping action or a successful resolution of a custo

78、mers problem can usually be represented as a desired state machine.By loading all conversations into a graph,you can analyze actual patterns and look for discrepancies to the expected state machine.This helps find bugs and opportunities for product improvement.11.LLM-backed ChatOpsAssessLLM-backed C

79、hatOps is an emerging application of large language models through a chat platform(primarily Slack)that allows engineers to build,deploy and operate software via natural language.This has the potential to streamline engineering workflows by enhancing the discoverability and user-friendliness of plat

80、form services.At the time of writing,two early examples are PromptOps and Kubiya.However,considering the finesse needed for production environments,organizations should thoroughly evaluate these tools before allowing them anywhere near production.12.LLM-powered autonomous agentsAssessLLM-powered aut

81、onomous agents are evolving beyond single agents and static multi-agent systems with the emergence of frameworks like Autogen and CrewAI.These frameworks allow users to define agents with specific roles,assign tasks and enable agents to collaborate on completing those tasks through delegation or con

82、versation.Similar to single-agent systems that emerged earlier,such as AutoGPT,individual agents can break down tasks,utilize preconfigured tools and request human input.Although still in the early stages of development,this area is developing rapidly and holds exciting potential for exploration.13.

83、Using GenAI to understand legacy codebasesAssessGenerative AI(GenAI)and large language models(LLMs)can help developers both write and understand code.In practical application,this is so far mostly limited to smaller code snippets,but more products and technology developments are emerging for using G

84、enAI to understand legacy codebases.This is particularly useful in the case of legacy codebases that arent well-documented or where the documentation is outdated or misleading.For example,Driver AI or bloop use RAG approaches that combine language intelligence and code search with LLMs to help users

85、 find their way around a codebase.Emerging models with larger and larger context windows will also help to make these techniques more viable for sizable codebases.Another promising application of GenAI for legacy code is in the space of mainframe modernization,where bottlenecks often form around rev

86、erse engineers who need to understand the existing codebase and turn that understanding into requirements for the modernization project.Using GenAI to assist those reverse engineers can help them get their work done faster.Techniques Thoughtworks,Inc.All Rights Reserved.1614.VISSAssessZoom recently

87、open-sourced its Vulnerability Impact Scoring System,or VISS.This system is mainly focused on vulnerability scoring that prioritizes actual demonstrated security measures.VISS differs from the Common Vulnerability Scoring System(CVSS)by not focusing on worst-case scenarios and attempting to more obj

88、ectively measure the impact of vulnerabilities from a defenders perspective.To this aim,VISS provides a web-based UI to calculate the vulnerability score based on several parameters categorized into platform,infrastructure and data groups including the impact on the platform,the number of tenants im

89、pacted,data impact and more.Although we dont have too much practical experience with this specific tool yet,we think this kind of priority-tailored assessment approach based on industry and context is worth practicing.15.Broad integration testsHoldWhile we applaud a focus on automated testing,we con

90、tinue to see numerous organizations over-invested in what we believe to be ineffective broad integration tests.As the term“integration test”is ambiguous,weve taken the broad classification from Martin Fowlers bliki entry on the subject which indicates a test that requires live versions of all run-ti

91、me dependencies.Such a test is obviously expensive,because it requires a full-featured test environment with all the necessary infrastructure,data and services.Managing the right versions of all those dependencies requires significant coordination overhead,which tends to slow down release cycles.Fin

92、ally,the tests themselves are often fragile and unhelpful.For example,it takes effort to determine if a test failed because of the new code,mismatched version dependencies or the environment,and the error message rarely helps pinpoint the source of the error.Those criticisms dont mean that we take i

93、ssue with automated“black box”integration testing in general,but we find a more helpful approach is one that balances the need for confidence with release frequency.This can be done in two stages by first validating the behavior of the system under test assuming a certain set of responses from run-t

94、ime dependencies,and then validating those assumptions.The first stage uses service virtualization to create test doubles of run-time dependencies and validates the behavior of the system under test.This simplifies test data management concerns and allows for deterministic tests.The second stage use

95、s contract tests to validate those environmental assumptions with real dependencies.16.Overenthusiastic LLM useHoldIn the rush to leverage the latest in AI,many organizations are quickly adopting large language models(LLMs)for a variety of applications,from content generation to complex decision-mak

96、ing processes.The allure of LLMs is undeniable;they offer a seemingly effortless solution to complex problems,and developers can often create such a solution quickly and without needing years of deep machine learning experience.It can be tempting to roll out an LLM-based solution as soon as its more

97、 or less working and then move on.Although these LLM-based proofs of value are useful,we advise teams to look carefully at what the technology is being used for and to consider whether an LLM is actually the right end-stage solution.Many problems that an LLM can solve such as sentiment analysis or c

98、ontent classification can be solved more cheaply and easily using traditional natural language processing(NLP).Analyzing what the LLM is doing and then analyzing other potential solutions not only mitigates the risks associated with overenthusiastic LLM use but also promotes a more nuanced understan

99、ding and application of AI technologies.Techniques Thoughtworks,Inc.All Rights Reserved.1717.Rush to fine-tune LLMsHoldAs organizations are looking for ways to make large language models(LLMs)work in the context of their product,domain or organizational knowledge,were seeing a rush to fine-tune LLMs

100、.While fine-tuning an LLM can be a powerful tool to gain more task-specificity for a use case,in many cases its not needed.One of the most common cases of a misguided rush to fine-tuning is about making an LLM-backed application aware of specific knowledge and facts or an organizations codebases.In

101、the vast majority of these cases,using a form of retrieval-augmented generation(RAG)offers a better solution and a better cost-benefit ratio.Fine-tuning requires considerable computational resources and expertise and introduces even more challenges around sensitive and proprietary data than RAG.Ther

102、e is also a risk of underfitting,when you dont have enough data available for fine-tuning,or,less frequently,overfitting,when you have too much data and are therefore not hitting the right balance of task specificity that you need.Look closely at these trade-offs and consider the alternatives before

103、 you rush to fine-tune an LLM for your use case.18.Web components for SSR web appsHoldWith the adoption of frameworks like Next.js and htmx,were seeing more usage of server-side rendering(SSR).As a browser technology,its not trivial to use web components on the server.Frameworks have sprung up to ma

104、ke this easier,sometimes even using a browser engine,but the complexity is still there.Our developers find themselves needing workarounds and extra effort to order front-end components and server-side components.Worse than the developer experience is the user experience:page load performance is impa

105、cted when custom web components have to be loaded and hydrated in the browser,and even with pre-rendering and careful tweaking of the component,a“flash of unstyled content”or some layout shifting is all but unavoidable.As mentioned in the previous Radar,one of our teams had to move their design syst

106、em away from the web components-based Stencil because of these issues.Recently,we received reports from another team that they ended up replacing server-sidegenerated components with browser-side components because of the development complexity.We caution against the use of web components for SSR we

107、b apps,even if supported by frameworks.Techniques Thoughtworks,Inc.All Rights Reserved.PlatformsHoldHoldAssessAssessTrialTrialAdoptAdopt3233343536373839404679206566676869707777879808595356586899099798991001011021

108、032220282527238455760Adopt19.CloudEvents Trial20.Arm in the cloud21.Azure Container Apps22.Azure OpenAI Service23.DataHub24.Infrastructure orchestration platforms25.Pulumi26.Rancher Desktop27.Weights&Biases Assess28.Bun29.Chronosphere30.DataOS31.Dify32.Elasticsearch Relevance E

109、ngine33.FOCUS34.Gemini Nano35.HyperDX36.IcePanel37.Langfuse38.Qdrant39.RISC-V for embedded40.Tigerbeetle41.WebTransport42.Zarf43.ZITADELHoldNewMoved in/outNo change Thoughtworks,Inc.All Rights Reserved.1919.CloudEventsAdoptEvents are common mechanisms in event-driven architecture or serverless appli

110、cations.However,producers or cloud providers tend to support them in different forms,which prevents interoperability across platforms and infrastructures.CloudEvents is a specification for describing event data in common formats to provide interoperability across services,platforms and systems.It pr

111、ovides SDKs in multiple languages so you can embed the spec into your application or toolchain.Our teams use it not only for cross-cloud platform purposes but also for domain event specification,among other scenarios.CloudEvents is hosted by the Cloud Native Computing Foundation(CNCF)and is now a gr

112、aduated project.Our teams default to using CloudEvents for building event-driven architectures and for that reason were moving it to Adopt.20.Arm in the cloudTrialArm compute instances in the cloud have become increasingly popular in recent years due to their cost and energy efficiency compared to t

113、raditional x86-based instances.Many cloud providers now offer Arm-based instances,including AWS,Azure and GCP.The cost benefits of running Arm in the cloud can be particularly beneficial for businesses that run large workloads or need to scale.Were seeing many teams of ours moving to Arm instances f

114、or workloads like JVM services and even databases(including RDS)without any change in the code and minimal changes in the build scripts.New cloud-based applications and systems increasingly default to Arm in the cloud.Based on our experiences,we recommend Arm compute instances for all workloads unle

115、ss there are architecture-specific dependencies.The tooling to support multiple architectures,such as multi-arch Docker images,also simplifies build and deploy workflows.21.Azure Container AppsTrialAzure Container Apps is a managed Kubernetes application platform that streamlines the deployment of c

116、ontainerized workloads.In comparison to Azure Kubernetes Service(AKS),the operational and administrative burden of running containerized applications is reduced,but this comes at the expense of some flexibility and control,which is a trade-off teams need to consider.Another product in this area,Azur

117、e Container Instances,is usually too limited for production use.Our teams started using Azure Container Apps last year,when it was still in public preview,with good results,even when running large containers.Now that it is generally available,were considering it for more use cases.Both Dapr and the

118、KEDA Autoscaler are supported.22.Azure OpenAI ServiceTrialAzure OpenAI Service provides access to OpenAIs GPT-4,GPT-35-Turbo,Embeddings,DALL-E model and more through a REST API,a Python SDK and web-based interface.The models can be adapted to tasks such as content generation,summarization,semantic s

119、earch and translating natural language to code.Fine-tuning is also available via few-shot learning and the customization of hyperparameters.In comparison to OpenAIs own API,Azure OpenAI Service benefits from Azures enterprise-grade security and compliance features,is available for more regions(altho

120、ugh availability is limited for each of the larger geographic regions)and supports private networking,content filtering and manual model version control.For these reasons and our positive experience with it,we recommend that enterprises already using Azure consider using Azure OpenAI Service instead

121、 of the OpenAI API.Platforms Thoughtworks,Inc.All Rights Reserved.2023.DataHubTrialWhen you build data products using data product thinking,its essential to consider data lineage,data discoverability and data governance.Our teams have found that DataHub can provide particularly useful support here.A

122、lthough earlier versions of DataHub required you to fork and manage the sync from the main product(if there was a need to update the metadata model),improvements in recent releases have introduced features that allow our teams to implement custom metadata models with a plugin-based architecture.Anot

123、her useful feature of DataHub is the robust end-to-end data lineage from source to processing to consumption.DataHub supports both push-based integration as well as pull-based lineage extraction that automatically crawls the technical metadata across data sources,schedulers,orchestrators(scanning th

124、e Airflow DAG),processing pipeline tasks and dashboards,to name a few.As an open-source option for a holistic data catalog,DataHub is emerging as a default choice for our teams.24.Infrastructure orchestration platformsTrialIn-house infrastructure orchestration codebases frequently become a time sink

125、 to maintain and troubleshoot.Infrastructure orchestration platforms are appearing,promising to standardize and productize various aspects of infrastructure code delivery and deployment workflows.These include build tools like Terragrunt and Terraspace,services from IaC tool vendors such as Terrafor

126、m Cloud and Pulumi Cloud as well as tool-agnostic platforms and services like env0 and Spacelift.There is a rich ecosystem of Terraform-specific orchestration tools and services,often called TACOS(Terraform Automation and Collaboration Software),including Atlantis,Digger,Scalr,Terramate and Terratea

127、m.Each of these platforms enables different workflows,including GitOps,Continuous Delivery and compliance as code.We welcome the growth of solutions in this space.We recommend infrastructure and platform engineering teams explore how to use them to reduce the amount of non-differentiating custom cod

128、e they need to develop and maintain their infrastructure.Standardization of how infrastructure code is structured,shared,delivered and deployed should also create opportunities for the emergence of an ecosystem of compatible tools for testing,measuring and monitoring infrastructure.25.PulumiTrialToo

129、ling in the infrastructure-as-code space continues to evolve,and were pleased to see that Pulumi is no exception to this trend.The platform recently added support for Java and YAML,for managing infrastructure at scale as well as for a multitude of cloud configurations and integrations,making the pla

130、tform even more compelling.For our teams,its still the main alternative to Terraform for developing code for multiple cloud platforms.26.Rancher DesktopTrialChanges in licensing for Docker Desktop have left us scrambling for alternatives for running a fleet of containers on a developers local laptop

131、.Recently weve had good success with Rancher Desktop.This free and open-source app is relatively easy to download and install for Apple,Windows or Linux machines and provides a handy local Kubernetes cluster with a GUI for configuration and monitoring.Although Colima has become our Docker Desktop al

132、ternative of choice,its primarily a CLI tool.In Platforms Thoughtworks,Inc.All Rights Reserved.21contrast,Rancher Desktop will appeal to those who dont want to give up the graphical interface that Docker Desktop provides.Like Colima,Rancher Desktop allows you to choose between dockerd or containerd

133、as the underlying container run time.The choice of direct containerd frees you from the DockerCLI,but the dockerd option provides compatibility with other tools that depend on it to communicate with the run-time daemon.27.Weights&BiasesTrialWeights&Biases is a machine learning(ML)platform for buildi

134、ng models faster through experiment tracking,data set versioning,visualizing model performance and model management.It can be integrated with existing ML code to get live metrics,terminal logs and system statistics streamed to the dashboard for further analysis.Recently,Weights&Biases has expanded i

135、nto LLM observability with Traces.Traces visualizes the execution flow of prompt chains as well as intermediate inputs/outputs and provides metadata around chain execution(such as tokens used and start and end time).Our teams find it useful for debugging and getting a greater understanding of the ch

136、ain architecture.28.BunAssessBun is a new JavaScript run time,similar to Node.js or Deno.Unlike Node.js or Deno,however,Bun is built using WebKits JavaScriptCore instead of Chromes V8 engine.Designed as a drop-in replacement for Node.js,Bun is a single binary(written in Zig)that acts as a bundler,tr

137、anspiler and package manager for JavaScript and TypeScript applications.Since our last volume,Bun has gone from beta into a stable 1.0 release.Bun has been built from the ground up with several optimizations including fast startup,improved server-side rendering and a much faster alternative package

138、manager and we encourage you to assess it for your JavaScript run-time engine.29.ChronosphereAssessWhen managing distributed architectures,accounting for the cost of sorting,indexing and accessing data is as critical as observability.Chronosphere takes a unique approach to cost management,tracking t

139、he use of observability data so that organizations can consider the cost-value trade-offs of various metrics.With the help of the Metrics Usage Analyzer,part of the Chronosphere Control Plane,teams can identify and exclude metrics they rarely(or never)use,thus yielding significant cost savings by re

140、ducing the amount of data organizations have to comb through.Given these advantages,as well as the ability of Chronosphere to match the functionality of other observability tools for cloud-hosted solutions,we believe it to be a compelling option for organizations to look into.30.DataOSAssessWith dat

141、a mesh adoption on the rise,our teams have been on the lookout for data platforms that treat data products as a first-class entity.DataOS is one such product.It provides end-to-end lifecycle management to design,build,deploy and evolve data products.It offers standardized declarative specs written i

142、n YAML that abstract the low-level complexity of infrastructure setup and allow developers to define the data products easily via CLI/API.It supports access control policies with ABAC and data policies for filtering and masking data.Another notable feature is its ability to federate data across a va

143、riety of data sources,which reduces data duplication and the movement of data Platforms Thoughtworks,Inc.All Rights Reserved.22to a central place.DataOS fits best for greenfield scenarios where it does the heavy lifting since it provides an out-of-the-box solution for data governance,data discoverab

144、ility,infrastructure resource management and observability.For brownfield scenarios,the ability to orchestrate resources outside of DataOS(for example,data stacks like Databricks)is in its nascent stage and still evolving.If your ecosystem doesnt exert a lot of opinion on data tooling,DataOS is a go

145、od way to expedite your journey for building,deploying and consuming data products in an end-to-end fashion.31.DifyAssessDify is a UI-driven platform for developing large language model(LLM)applications that makes prototyping them even more accessible.It supports the development of chat and text gen

146、eration apps with prompt templates.Additionally,Dify supports retrieval-augmented generation(RAG)with imported data sets and can work with multiple models.Were excited about this category of applications.Based on our experience,however,Dify is not quite ready for prime time yet,because some features

147、 are buggy or dont seem fully fleshed out.At the moment,though,were not aware of a competitor that is better.32.Elasticsearch Relevance EngineAssessAlthough vector databases have been gaining popularity for retrieval-augmented generation(RAG)use cases,research and experience reports suggest combinin

148、g traditional full-text search with vector search(into a hybrid search)can yield superior results.Through Elasticsearch Relevance Engine(ESRE),the well-established full-text search platform Elasticsearch supports built-in and custom embedding models,vector search and hybrid search with ranking mecha

149、nisms such as Reciprocal Rank Fusion.Even though this space is still maturing,in our experience,using these ESRE features along with the traditional filtering,sorting and ranking capabilities that come with Elasticsearch has yielded promising results,suggesting that established search platforms that

150、 support semantic search are not to be passed over.33.FOCUSAssessCloud and SaaS billing data can be complex,inconsistent among providers and difficult to understand.The FinOps Open Cost and Usage Specification(FOCUS)aims to reduce this friction with a spec containing a set of terminologies(aligned w

151、ith the FinOps framework),a schema and a minimum set of requirements for billing data.The spec is intended to support use cases common to a variety of FinOps practitioners.Although still in the early stages of development and adoption,its worth watching because,with growing industry adoption,FOCUS w

152、ill make it easier for platforms and end users to get a holistic view of cloud spend across a long tail of cloud and SaaS providers.34.Gemini NanoAssessGoogles Gemini is a family of foundational LLMs designed to run on a wide range of hardware,from data centers to mobile phones.Gemini Nano has been

153、specifically optimized and scaled down to run on mobile silicon accelerators.It enables capabilities such as high-quality text summarization,contextual smart replies and advanced grammar correction.For example,the language understanding Platforms Thoughtworks,Inc.All Rights Reserved.23of Gemini Nano

154、 enables the Pixel 8 Pro to summarize content in the Recorder app.Running on-device removes many of the latency and privacy concerns associated with cloud-based systems and allows the features to work without network connection.Android AICore simplifies the integration of the model into Android apps

155、,but only a few devices are supported at the time of writing.35.HyperDXAssessHyperDX is an open-source observability platform that unifies all three pillars of observability:logs,metrics and tracing.With it,you can correlate end-to-end and go from browser session replay to logs and traces in just a

156、few clicks.The platform leverages ClickHouse as a central data store for all telemetry data,and it scales to aggregate log patterns and condense billions of events into distinctive clusters.Although you can choose from several observability platforms,we want to highlight HyperDX for its unified deve

157、loper experience.36.IcePanelAssessIcePanel facilitates collaborative architectural modeling and diagramming using the C4 model,which allows technical and business stakeholders to zoom in to the level of technical detail they need.It supports modeling architecture objects whose metadata and connectio

158、ns can be reused across diagrams,along with the visualization of flows between those objects.Versioning and tagging allows collaborators to model different architecture states(e.g.,as-is versus to-be)and track user-defined classifications of various parts of the architecture.Were keeping an eye on I

159、cePanel for its potential to improve architecture collaboration,particularly for organizations with complex architectures.For an alternative that better supports diagrams as code,check out Structurizr.37.LangfuseAssessLangfuse is an engineering platform for observability,testing and monitoring large

160、 language model(LLM)applications.Its SDKs support Python,JavaScript and TypeScript,OpenAI,LangChain and LiteLLM among other languages and frameworks.You can self-host the open-source version or use it as a paid cloud service.Our teams have had a positive experience,particularly in debugging complex

161、LLM chains,analyzing completions and monitoring key metrics such as cost and latency across users,sessions,geographies,features and model versions.If youre looking to build data-driven LLM applications,Langfuse is a good option to consider.38.QdrantAssessQdrant is an open-source vector database writ

162、ten in Rust.In the September 2023 edition of the Radar,we talked about pgvector,a PostgreSQL extension for vector search.However,if you have to scale the vector database horizontally across nodes,we encourage you to assess Qdrant.It has built-in single instruction,multiple data(SIMD)acceleration sup

163、port for improved search performance,and it helps you associate JSON payloads with vectors.Platforms Thoughtworks,Inc.All Rights Reserved.24Platforms39.RISC-V for embeddedAssessWhile the Arm architecture continues to expand its impact weve updated our assessment of Arm in the cloud in this edition i

164、nterest in the newer and less established RISC-V architecture also grows.RISC-V doesnt bring breakthroughs in performance or efficiency in fact,its per-watt performance is similar to Arms,and it cant quite compete on absolute performance but its open source,modular and not tied to a single company.T

165、his makes it an attractive proposition for embedded systems,where the cost of licensing proprietary architectures is a significant concern.This is also why the field of RISC-V for embedded is maturing,and several companies,including SiFive and espressif,are offering development boards and SoCs for a

166、 wide range of applications.Microcontrollers and microprocessors capable of running the Linux kernel are available today,along with the corresponding software stack and toolchains.Were keeping an eye on this space and expect to see more adoption in the coming years.40.TigerbeetleAssessTigerbeetle is

167、 an open-source distributed database for financial accounting.Unlike other databases,its designed to be a domain-specific state machine for safety and performance.The state from one node in the cluster is replicated in a deterministic order to other nodes via the Viewstamped Replication consensus pr

168、otocol.We quite like the design decisions behind Tigerbeetle to implement double-entry bookkeeping with strict serializability guarantees.Its a relatively new and actively evolving database,but not quite ready for production.41.WebTransportAssessWebTransport is a protocol that builds on top of HTTP/

169、3 and offers bidirectional communication between servers and apps.WebTransport offers several benefits over its predecessor,WebSockets,including faster connections,lower latency and the ability to handle both reliable and ordered data streams as well as unordered ones(such as UDP).It can handle mult

170、iple streams in the same connection without head-of-line blocking,allowing for more efficient communication in complex applications.Overall,WebTransport is suitable for a wide range of use cases,including real-time web apps,streaming media and Internet of Things(IoT)data communications.Even though W

171、ebTransport is still in the early stages support across browsers is gradually maturing,with popular libraries such as socket.io adding support for WebTransport our teams are currently assessing its potential for real-time IoT apps.42.ZarfAssessZarf is a declarative package manager for offline and se

172、mi-connected Kubernetes environments.With Zarf,you can build and configure applications while connected to the internet;once created,you can package and ship to a disconnected environment for deployment.As a standalone tool,Zarf packs several useful features,including automatic Software Bill of Mate

173、rials(SBOM)generation,built-in Docker registry,Gitea and K9s dashboards to manage clusters from the terminal.Air-gap software delivery for cloud-native applications has its challenges;Zarf addresses most of them.Thoughtworks,Inc.All Rights Reserved.25Platforms43.ZITADELAssessZITADEL is an open-sourc

174、e identity and user management tool,and an alternative to Keycloak.Its lightweight(written in Golang),has flexible deployment options and is easy to configure and manage.Its also multi-tenant,offers comprehensive features for building secure and scalable authentication systems,particularly for B2B a

175、pplications,and has built-in security features like multi-factor authentication and audit trails.By using ZITADEL,developers can reduce development time,enhance application security and achieve scalability for growing user bases.If youre looking for a user-friendly,secure and open-source tool for us

176、er management,ZITADEL is a strong contender.Thoughtworks,Inc.All Rights Reserved.ToolsAdopt44.Conan45.Kaniko46.Karpenter Trial47.42Crunch API Conformance Scan48.actions-runner-controller49.Android Emulator Container50.AWS CUDOS51.aws-nuke52.Bruno53.Develocity54.GitHub Copilot55.Gradio56.Gradle Versi

177、on Catalog57.Maestro58.Microsoft SBOM tool59.Open Policy Agent(OPA)60.Philipss self-hosted GitHub runner61.Pop62.Renovate63.Terrascan64.Velero Assess65.aider66.Akvorado67.Baichuan 268.Cargo Lambda69.Codium AI70.Continue71.Fern Docs72.Granted73.LinearB74.LLaVA75.Marimo76.Mixtral77.NeMo Guardrails78.O

178、llama79.OpenTofu80.QAnything81.System Initiative82.Tetragon83.WinglangHoldHoldHoldAssessAssessTrialTrialAdoptAdopt3233343536373839404679206566676869707777879808595356586899099798993222028252

179、7238455760NewMoved in/outNo change Thoughtworks,Inc.All Rights Reserved.2744.ConanAdoptConan is an open-source dependency management tool for C/C+applications.It provides an intuitive interface for defining,fetching and managing dependencies which makes it easy for developers to integrate

180、 third-party libraries into their projects.Conan works across all major operating systems and can target a variety of platforms,including servers and desktop,mobile and embedded devices.It can also be used for building and publishing C/C+libraries and packages.The packages can be shared across teams

181、 via JFrog Artifactory servers.By leveraging prebuilt binaries,it significantly reduces build times,especially for hefty dependencies.Conan integrates with popular build systems like CMake and also has a Python SDK for extending the build system for tasks like signing.In our experience,Conan transla

182、tes to improved build reproducibility across environments and faster development cycles.The resulting codebases are cleaner and easier to maintain,a major win for large-scale projects.If youre wrestling with dependency management in your C or C+projects,Conan is a must-consider tool to boost your de

183、velopment efficiency.45.KanikoAdoptWe added Kaniko to the Radar in October 2022,shortly after Kubernetes moved on from supporting Docker,highlighting at the time the trend away from Docker as the default to build container images within container-based pipelines.Since then,weve expanded our experien

184、ce with Kaniko across different pipelines tooling and configurations.Our teams appreciate its flexibility and performance which is why were moving it to Adopt,highlighting Kaniko as the default tool in this space.46.KarpenterAdoptOne of the fundamental capabilities of Kubernetes is horizontal autosc

185、aling:its ability to launch new pods when additional capacity is needed and shut them down when loads decrease.However,this only works if the nodes needed to host the pods already exist.Cluster Autoscaler can do some rudimentary cluster expansion triggered by pod failures,but it has limited flexibil

186、ity;Karpenter,however,is a smarter,open-source Kubernetes Operator node autoscaler:it analyzes current workloads and pod scheduling constraints,selects an appropriate instance type and then starts or stops it as needed.Karpenter is an operator in the spirit of tools such as Crossplane that can provi

187、sion cloud resources outside the cluster.Even though Karpenter was originally developed by AWS for EKS,its becoming the default node autoprovisioner across all cloud Kubernetes service providers,and Azure recently started supporting Karpenter with AKS Karpenter Provider.47.42Crunch API Conformance S

188、canTrial42Crunch API Conformance Scan is a dynamic testing tool designed to identify discrepancies between your APIs documented behavior and its actual implementation.This tool takes your APIs spec definition in OpenAPI format,which outlines the expected functionalities and responses,and compares it

189、 to the APIs actual behavior.By generating real traffic and interacting with live endpoints,the tool can identify any discrepancies between what the API promises and what it delivers.This translates into several benefits for development teams.For example,it catches inconsistencies early in developme

190、nt,saving time and preventing issues from reaching production.The tool also helps improve API quality and security by identifying potential vulnerabilities arising from deviations from the documented behavior.Overall,API Scan helps you assess the security posture of your APIs by Tools Thoughtworks,I

191、nc.All Rights Reserved.28identifying problems such as weak authentication protocols,insecure data handling practices and insufficient input validation.It provides detailed reports highlighting any issues found,along with recommendations for remediation.48.actions-runner-controllerTrialactions-runner

192、-controller is a Kubernetes controller that operates self-hosted runners for GitHub Actions.Self-hosted runners are helpful in scenarios where the job that GitHub Actions runs needs to access resources that are either not accessible to GitHub cloud runners or have specific operating system and envir

193、onmental requirements that are different from what GitHub provides.In such scenarios where the team uses Kubernetes clusters,actions-runner-controller orchestrates and scales these runners.Our teams like its ability to scale runners based on the number of workflows running in a given repository,orga

194、nization,enterprise or Kubernetes cluster,as well as its ability to handle both Linux and Windows runners.49.Android Emulator ContainerTrialAndroid Emulator Containers streamline Android app testing by eliminating the complexities arising from OS compatibility issues and system dependencies as well

195、as from setting up emulators for multiple Android versions.Traditionally,this complexity led to extra effort or teams foregoing automated testing completely,which,in turn,resulted in slower development and testing cycles.Android Emulator Containers simplify this process,allowing seamless integration

196、 into CI pipelines for automated testing.Our teams utilize these containers primarily for instrumented tests,which are automatically executed with each commit to provide instantaneous feedback to developers.Additionally,we leverage Android Emulator Containers for running nightly end-to-end tests as

197、well.50.AWS CUDOSTrialOur advice has always been to monitor costs as a fitness function.Cloud providers offer a variety of services to monitor cloud spend such as AWS Cost Explorer or Google Cloud FinOps Hub.In the AWS ecosystem,our teams use the CUDOS(Cost and Usage Dashboards Operations Solution)d

198、ashboards to monitor AWS Marketplace spend segregated by the business departments or legal entities in a large parent organization.This dashboard provides comprehensive cost and usage details,with resource-level granularity that helps optimize costs,track usage goals and achieve operational excellen

199、ce.51.aws-nukeTrialaws-nuke is an open-source tool that tackles the common challenge of unused resources accumulating in development and sandbox AWS accounts that can lead to cost inefficiencies.The tool identifies and removes all deletable resources within an AWS account or region with the exceptio

200、n of default or AWS-managed resources,essentially resetting the environment to a Day One state.It also offers customizable exclusion policies to ensure critical resources remain protected.Weve used this tool for the default use case of cost optimization as well as for disaster recovery(DR)contexts w

201、ith good results.By automating cleanup in development and sandbox environments,aws-nuke helps minimize unnecessary resource expenditure.It also facilitates efficient teardown of temporary DR infrastructure after drills or exercises.Although stable,aws-nuke is a very destructive tool and is not Tools

202、 Thoughtworks,Inc.All Rights Reserved.29intended to be used in production environments.Always perform a dry run to confirm that essential resources wont be deleted.52.BrunoTrialBruno is an open-source desktop alternative to Postman and Insomnia for API testing,development and debugging.It stores you

203、r collections locally on the filesystem so you can use Git or a version control of your choice to collaborate.Several Thoughtworks teams are using Bruno and like its simple offline-only design.53.DevelocityTrialDevelocity(previously Gradle Enterprise)addresses the pain point of lengthy build and tes

204、t cycles in large-scale software projects.It employs performance improvements such as build caching and predictive test selection to shorten developer feedback loops in both local and CI/CD environments.Our platform teams have found it useful for speeding up builds and tests,analyzing commands to de

205、termine what part of the workflow still needs to be optimized,identifying and troubleshooting flaky tests and performing analysis on the hardware used to run them.54.GitHub CopilotTrialWhile the AI coding assistance market is getting busier and busier,GitHub Copilot remains our default choice and is

206、 used by many of our teams.Since we last wrote about GitHub Copilot,the most interesting improvements came in the chat feature.For instance,its no longer necessary to clutter the code with comments as prompts;instead,an inline chat helps you prompt without writing a comment.The inline chat can also

207、change code,not just write new lines.You can now also significantly expand the context of the chat when asking questions about your code by using the workspace tag.This allows you to ask questions about the entire codebase,not just the open files.You can expand this context even further with the Cop

208、ilot Enterprise version,which pulls in context from all repositories you host on GitHub.Finally,GitHub has started routing some chat requests to a more powerful GPT-4based model,and availability of the chat in the popular Jetbrains IDEs is imminent(although still in private beta at the time of writi

209、ng).These releases show that the pace of improvements in the space has not slowed down.If you tried a coding assistant last year and dismissed it,we recommend that you keep monitoring the features being released and give it another try.55.GradioTrialGradio is an open-source Python library that facil

210、itates the creation of interactive web-based interfaces for machine learning(ML)models.A graphical user interface on top of ML models provides a better understanding of the inputs,constraints and outputs by nontechnical audiences.Gradio has gained a lot of traction in the generative AI space,as it i

211、s one of the tools that makes generative models so accessible to experiment with.Usually,we put technologies into the Trial ring when weve seen them used in production at least once.Gradios purpose and strength are experimentation and prototyping,and weve used it for that purpose many times.Recently

212、,one of our teams even used it to help a client with live demonstrations at big events.Were very happy with Gradios capabilities for those use cases,and therefore move it into the Trial ring.Tools Thoughtworks,Inc.All Rights Reserved.3056.Gradle Version CatalogTrialGradle version catalog is a useful

213、 feature of the Gradle build tool that allows you to manage dependencies centrally in the build file.Our teams have found it especially useful with Android multi-module projects.Instead of hardcoding dependency names and versions in individual build files and managing upgrades,you can create a centr

214、al version catalog of these dependencies and then reference it in a type-safe way with Android Studio assistance.57.MaestroTrialMaestro is extremely useful when testing complex flows in mobile applications.Our teams have found it easy to learn,easy to understand and easy to integrate into our develo

215、pment workflow.Maestro supports a range of mobile platforms including iOS,Android,React Native and Flutter apps.Its declarative YAML syntax simplifies the automation of complex mobile UI interactions.Based on the tools evolution,marked by enhanced features like comprehensive iOS support and the intr

216、oduction of tools like Maestro Studio and Maestro Cloud,we encourage anyone seeking to optimize their mobile application testing processes to give it a try.58.Microsoft SBOM toolTrialMicrosoft SBOM tool is an open-source tool to generate SPDX-compatible Software Bill of Materials(SBOM).We have blipp

217、ed about the need for SBOM previously,and this tool makes it easier to get started.SBOM tool supports a variety of popular package managers(including npm,pip and Gradle),making it compatible with a wide range of projects.Its very easy to use and can be integrated into existing development workflows,

218、including integration with CI/CD pipelines.By leveraging SBOM generated with this tool,developers gain multiple advantages.Improved software security is a key benefit,as a clear view of components allows for easier vulnerability identification and risk management.License compliance is also enhanced,

219、as developers can ensure adherence to all relevant agreements.Furthermore,SBOM promotes transparency within the software supply chain,aiding dependency tracking and mitigating potential risks.If youre looking to streamline SBOM generation,improve software security and gain control over your software

220、 supply chain,you should give Microsoft SBOM tool a try.59.Open Policy Agent(OPA)TrialOpen Policy Agent(OPA)is a uniform framework and language for declaring,enforcing and controlling policies.For our teams,it has become a favored way of defining policies for distributed systems,particularly where w

221、e need to implement compliance at the point of change.OPA allows teams to implement various platform engineering patterns,such as controlling what is deployed to Kubernetes clusters,enforcing access control across services in a service mesh and implementing fine-grained security policy as code for a

222、ccessing application resources.While there is some complexity associated with OPA implementations,it has proven to be a highly valuable tool for ensuring compliance in a DevOps culture.Were also continuing to keep an eye on the extension and maturity of OPA beyond operational systems to(big)data-cen

223、tric solutions.Tools Thoughtworks,Inc.All Rights Reserved.3160.Philipss self-hosted GitHub runnerTrialWhile GitHub Actions runners cover a wide range of the most common run times and are quickest to start with,teams sometimes need to manage self-hosted runners,such as when organizational policy only

224、 allows deployments to a privately hosted infrastructure from within the organizations own security perimeter.In such cases,teams can use Philipss self-hosted GitHub runner,a Terraform module that spins up custom runners on AWS EC2 spot instances.The module also creates a set of Lambdas that handles

225、 lifecycle management(scaling up and down)for these runners.In our experience,this tool greatly simplifies the provisioning and management of self-hosted GitHub Actions runners.An alternative for teams that use Kubernetes is actions-runner-controller.61.PopTrialPair programming continues to be an es

226、sential technique for us,because it helps improve code quality and spread knowledge within a team.Although its best done in person,our distributed teams have explored tools to make remote pairing as pleasant and effective as possible,such as Tuple,Visual Studio Live Share,Code With Me and general-pu

227、rpose chat and conferencing tools.The latest tool in the space thats caught our attention is Pop(formerly Screen).Coming from the founders of Screenhero,it supports multi-person screen sharing,annotations and high-quality audio/video.Some of our teams have used it extensively for pair programming an

228、d remote working sessions and report positively on their experience.62.RenovateTrialAutomatically monitoring and updating dependencies as part of the software build process has become standard practice across the industry.It takes the guesswork out of staying current with security updates to open-so

229、urce packages as theyre released.For many years,Dependabot has been the standard tool for this practice,but Renovate has become the preferred tool for many of our teams.They find that Renovate is more suitable to the modern software development environment where a deployable system relies not just o

230、n code and libraries but encompasses run-time tools,infrastructure and third-party services.Renovate covers dependencies on these ancillary artifacts in addition to code.Our teams also found that Renovate offers more flexibility through configuration and customization options.Although Dependabot rem

231、ains a safe default choice and is conveniently integrated with GitHub,wed recommend evaluating Renovate to see if it can further reduce the manual burden on developers to keep their application ecosystems safe and secure.63.TerrascanTrialTerrascan is a static code analyzer for infrastructure as code

232、(IaC)designed to detect security vulnerabilities and compliance issues before provisioning cloud-native infrastructure.It supports scanning for Terraform,Kubernetes(JSON/YAML),Helm,AWS CloudFormation,Azure Resource Manager,Dockerfiles and GitHub.The default policy pack covers all the major cloud pro

233、viders,GitHub,Docker and Kubernetes.Our teams use Terrascan locally as a pre-commit hook and integrate it into CI pipelines to detect IaC vulnerabilities and violations.Tools Thoughtworks,Inc.All Rights Reserved.3264.VeleroTrialVelero is an open-source tool for backing up and restoring Kubernetes re

234、sources and persistent volumes.It simplifies disaster recovery and cluster migrations by enabling on-demand and scheduled backups.Velero also allows finer-grained controls over which resources get backed up as well as over the backup/restore workflow(with hooks).Our teams appreciate its ease of use

235、and its reliance on Kubernetes APIs instead of lower-level layers like etcd.65.aiderAssessaider is an open-source AI coding assistant.Like many open-source tools in this space,aider doesnt have direct IDE integration but is started as a CLI in the terminal.aider is interesting because it provides a

236、chat interface with write access to the codebase across multiple files,whereas many of the coding assistant products today either only read the code or can change only one file at a time.This allows aider to help you implement concepts that stretch over multiple files(e.g.,“add locators to my HTML a

237、nd also use those in my functional test”)and to create new files and folder structures in the codebase(e.g.,“create a new component similar to the one in folder X”).As aider is open source and not a hosted product,you have to bring your own OpenAI or Azure OpenAI API key to use it.On the one hand,th

238、is can be great for occasional use because you only have to pay per use.On the other hand,aider does seem to be quite chatty in its interactions with the AI API,so keep an eye on request costs and rate limits when using it.66.AkvoradoAssessAkvorado is an open-source network monitoring and analysis t

239、ool.It captures the network flows,Netflow/IPFIX and sFlow,enriches them with interface names and geo information and then saves the updated flows in ClickHouse for future analysis.Although OpenTelemetry is gaining adoption for observing application-level traffic,we often come across challenges in th

240、e network layer that can be difficult to spot and troubleshoot.Tools like Akvorado are quite handy in such situations as they help you analyze the network flows across various devices in the network topology.67.Baichuan 2AssessBaichuan 2 is part of a new generation of open-source large language mode

241、ls.It was trained on a high-quality corpus with 2.6 trillion tokens,achieving quite good performance for its size on Chinese,English and multi-language benchmarks.Baichuan has been trained on several domain-specific corpora,including healthcare and law data sets,which is why we prefer using it in th

242、ese and related fields.68.Cargo LambdaAssessThe efficiency and performance of Rust make it a good fit for serverless computing.Another advantage is that Rust functions dont require a run time,which results in fast startup times.However,the developer experience for writing the functions in Rust wasnt

243、 great.That changed with Cargo Lambda.As a cargo subcommand,it integrates with the typical Rust workflow and allows you to run Tools Thoughtworks,Inc.All Rights Reserved.33and test your AWS Lambda functions on the developer machine without needing Docker,VMs or other tools.Using a Zig toolchain,Carg

244、o Lambda can cross-compile the functions on several operating systems for the Linux sandboxes used by AWS Lambda,and both Arm and Intel are supported as target architectures.69.Codium AIAssessIn the busy emerging space of AI coding assistants,some products,instead of competing with the strong incumb

245、ents,take a more focused approach.Codium AI is focused on test generation with AI.It works for all languages but has advanced support for common stacks,such as JavaScript and Python.We particularly like that the tool,rather than taking developers straight to the test code,offers a list of scenario d

246、escriptions in natural language for review.This makes it easier for developers to reason about the scenarios and decide which ones to turn into test code.To further improve the test generation for a particular codebase and use case,users can provide example tests and general instructions to enhance

247、the information used by the AI to generate the tests.70.ContinueAssessContinue is an open-source autopilot for VS Code and JetBrains IDEs.We quite like it because it eliminates the pain of copying/pasting from a chat-based interface to large language models(LLMs)with a direct integration in the IDE.

248、It supports several commercial and open-source models and makes it easy to try different LLM providers,including self-hosted LLMs.You can even run Continue without an internet connection.71.Fern DocsAssessOne hallmark of widely used REST APIs is that their contracts are thoroughly documented.Develop

249、ers are more likely to adopt and use APIs whose behavior and syntax are described accurately in a structured,organized way.Keeping this documentation up to date as the contract evolves can be time-consuming and is a task that is easily overlooked.Fern Docs helps with this by reducing the toil involv

250、ed in writing and maintaining API documentation.Fern automatically generates a website with attractive,usable documentation from a specification file that can be versioned alongside the API code.While our initial impressions of this product are positive,Fern does require you to maintain API informat

251、ion in a proprietary configuration file.While it provides a way to convert OpenAPI specs into its own configuration format,wed prefer a tool that generates docs directly from annotated source code.72.GrantedAssessGiven how common multi-account strategy is in organizations AWS environments,engineers

252、frequently have to switch between multiple accounts within a short period of time.Granted,a command-line tool that simplifies the opening of multiple accounts in the browser simultaneously,streamlines account switching.It leverages each browsers native features to isolate multiple identities,Firefox

253、s Multi-Account Containers and Chromiums Profiles.If a specific service(such as S3)is specified as an argument,Granted will open the services landing page.Granted currently only supports AWS.Notably,it stores AWS SSOs temporary credentials safely in the keychain rather than as plain text on the disk

254、.Tools Thoughtworks,Inc.All Rights Reserved.34Tools73.LinearBAssessLinearB is a platform designed to empower engineering leaders with data-driven insights for continuous improvement.It tackles three key areas:benchmarking,workflow automation and investment.Our experience with LinearBs metrics toolin

255、g highlights its potential to support a culture of continuous improvement.One of our teams leveraged the platform to track engineering metrics,identify and discuss improvement opportunities and define actionable steps based on data,leading to measurable progress.Were happy to see that this aligns wi

256、th LinearBs core value proposition:benchmark,automate and improve.LinearB integrates with GitHub,GitLab,Bitbucket and Jira.It offers a comprehensive suite of preconfigured engineering metrics,with a strong focus on DORA metrics(deployment frequency,lead time,change failure rate and time to restore).

257、As strong advocates of the four key metrics as defined by the DORA research,we appreciate LinearBs emphasis on measuring what truly matters for software delivery performance.Historically,gathering DORA-specific metrics has been a challenge.Teams have resorted to complex CD pipeline instrumentation,c

258、ustom-built dashboards or rely on manual processes.Although our experience is limited to one team,LinearB seems to be a compelling alternative for gathering and tracking engineering metrics as well as fostering a data-driven approach to continuous improvement.74.LLaVAAssessLLaVA(Large Language and V

259、ision Assistant)is an open-source,large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding.LLaVAs strong proficiency in instruction-following positions it as a highly competitive contender among multimodal AI models.The latest version,LLaVA-

260、NeXT,allows for improved question answering.Among the open-source models for language and vision assistance,LLaVA is a promising option when compared to GPT-4 Vision.Our teams have been experimenting with it for visual question answering.75.MarimoAssessMarimo offers a fresh take on Python notebooks

261、by prioritizing reproducibility and interactivity.It addresses challenges with hidden state in traditional notebooks(like Jupyter)which can lead to unexpected behavior and hinder reproducibility.It does that by storing notebooks as plain Python files with no hidden state and using a deterministic ex

262、ecution order based on dependencies(when a variable changes,all affected cells are automatically run).Marimo also comes with interactive UI elements that similarly propagate value changes to cells that depend on them.As it can be deployed as a web app,its also a useful tool for demos and prototyping

263、 purposes.Although were excited for the potential of Marimo,in particular in terms of reproducibility for data exploration and analysis purposes,we continue to caution against productionizing notebooks.76.MixtralAssessMixtral is part of the family of open-weight large language models Mistral release

264、d,that utilizes the sparse Mixture of Experts architecture.The family of models are available both in raw pretrained and fine-tuned forms in 7B and 8x7B parameter sizes.Its sizes,open-weight nature,performance in benchmarks and context length of 32,000 tokens make it a compelling option for self-hos

265、ted LLMs.Note that these open-weight models are not tuned for safety out of the box,and users need to Thoughtworks,Inc.All Rights Reserved.35Toolsrefine moderation based on their own use cases.We have experience with this family of models in developing Aalap,a fine-tuned Mistral 7B model trained on

266、data related to specific Indian legal tasks,which has performed reasonably well on an affordable cost basis.77.NeMo GuardrailsAssessNeMo Guardrails is an easy-to-use open-source toolkit from NVIDIA that empowers developers to implement guardrails for large language models(LLMs)used in conversational

267、 applications.Although LLMs hold immense potential in building interactive experiences,their inherent limitations around factual accuracy,bias and potential misuse necessitate safeguards.Guardrails offer a promising approach to ensure responsible and trustworthy LLMs.Although you have a choice when

268、it comes to LLM guardrails,our teams have found NeMo Guardrails particularly useful because it supports programmable rules and run-time integration and can be applied to existing LLM applications without extensive code modifications.78.OllamaAssessOllama is an open-source tool for running and managi

269、ng large language models(LLMs)on your local machine.Previously,we talked about the benefits of self-hosted LLMs,and were pleased to see the ecosystem mature with tools like Ollama.It supports several popular models including LLaMA-2,CodeLLaMA,Falcon and Mistral that you can download and run locally.

270、Once downloaded,you can use the CLI,API or SDK to interact with the model and execute your tasks.Were evaluating Ollama and are seeing early success as it improves the developer experience in working with LLMs locally.79.OpenTofuAssessOpenTofu is a fork of Terraform made in response to a recent ambi

271、guous license change by HashiCorp.Its open source and has been accepted by the Linux Foundation.Its backed by several organizations,including third-party vendors.The current version is compatible with the last open-source version of Terraform.Version 1.7 adds client-side encryption.The future of the

272、 OpenTofu project is unclear in terms of how closely it will support compatibility with future versions of Terraform.There are also questions around the long-term support by its current backers.We recommend keeping an eye on the project but remain cautious around usage,except for teams that have the

273、 capability to manage risks that may include being able to contribute to the codebase.80.QAnythingAssessLarge language models(LLMs)and retrieval-augmented generation(RAG)techniques have greatly improved our ability to synthesize and extract information.Were seeing emerging tools taking advantage of

274、this,and QAnything is one of them.QAnything is a knowledge management engine with a question-and-answer interface that can summarize and extract information from a wide range of file formats,including PDF,DOCX,PPTX,XLSX and MD files,among others.For data security concerns,QAnything also supports off

275、line installation.Some of our teams use QAnything to build their team knowledge base.In GenAI scenarios with more industry depth(such as generating abstracts for investment reports),we also try to use this tool for proofs of concept before building real products and showing the potential of LLMs and

276、 RAG.Thoughtworks,Inc.All Rights Reserved.36Tools81.System InitiativeAssessLittle has emerged in recent years to challenge the dominance of Terraform as an infrastructure coding tool.Although alternatives such as Pulumi,CDK and,more recently,Wing have emerged,Terraforms modular,declarative paradigm

277、has proven to be the most enduring.Indeed,all of these approaches share the common goal of modular code creating monolithic infrastructure.System Initiative is a new,experimental tool that represents a radical new direction for DevOps work.One way to view System Initiative is as a digital twin for y

278、our infrastructure.Interactive changes to the System Initiative state result in corresponding change sets that can be applied to the infrastructure itself.Likewise,changes to the infrastructure are reflected in the System Initiative state.One of the great advantages of this approach is the collabora

279、tive environment it creates for things like application deployment and observability.Engineers interact with System Initiative through a user interface that has a graphical representation of the entire environment.In addition to managing the cloud infrastructure,you can also use the tool to manage c

280、ontainers,scripts,tools and more.Although were generally skeptical of these kinds of GUI tools,System Initiative can be extended to handle new assets or enforce policy via TypeScript code.We really like the creative thinking that has gone into this tool and hope it will encourage others to break wit

281、h the status quo of infrastructure-as-code approaches.System Initiative is free and open source under an Apache 2.0 license and is currently in open beta.The maintainers themselves do not recommend the tool for production use yet,but we think its worth checking out in its current state to experience

282、 a completely different approach to DevOps tooling.82.TetragonAssessTetragon is an open-source eBPF-based security observability and run-time enforcement tool.We mentioned Falco for detecting security threats a while back in the Radar.Tetragon goes beyond threat detection by leveraging eBPF to enfor

283、ce security policies at run time in the Linux kernel.You can use Tetragon either as a standalone tool on bare metal or inside the Kubernetes environment.83.WinglangAssessWere seeing a lot of movement in the infrastructure-as-code(IaC)space with tools like Winglang emerging.Winglang takes a different

284、 approach to defining infrastructure and run-time behavior.It provides high-level abstractions over platform specifics provided by tools such as CloudFormation,Terraform,Pulumi and Kubernetes.With Winglang,you write code that runs at compile time to generate infrastructure configuration and then cod

285、e that executes at run time for application behavior.It provides a simulation mode to run locally and has an integrated test framework.Were keeping an eye on this interesting tool;its a potential preview of the future direction of IaC.Thoughtworks,Inc.All Rights Reserved.Languages and FrameworksAdop

286、t Trial84.Astro85.DataComPy86.Pinia87.Ray Assess88.Android Adaptability89.Concrete ML90.Crabviz91.Crux92.Databricks Asset Bundles93.Electric94.LiteLLM95.LLaMA-Factory96.MLX97.Mojo98.Otter99.Pkl100.Rust for UI101.vLLM102.Voyager103.WGPU104.ZigHold105.LangChainHoldHoldAssessAssessTrialTrialAdoptAdopt1

287、8824293033738394046792065666768697077778798085953565868990997989932220282527238455760NewMoved in/outNo change Thoughtworks,Inc.All Rights Reserved.3884.AstroTrialThe Astro framewo

288、rk is gaining more popularity in the community.One of our teams has used Astro to build content-driven websites like blogs and marketing websites.Astro is a multi-page application framework that renders HTML on the server and minimizes the amount of JavaScript sent over the wire.We like that Astro s

289、upports when appropriate select active components written in the front-end JavaScript framework of your choice even though it encourages sending only HTML.It does this through its island architecture.Islands are regions of interactivity within a single page where the necessary JavaScript is download

290、ed only when needed.In this way,most areas of the site are converted to fast,static HTML,and the JavaScript parts are optimized for parallel loading.Our team likes both its page rendering performance as well as its build speed.The Astro component syntax is a simple extension of HTML,and the learning

291、 curve is quite gentle.85.DataComPyTrialComparing DataFrames is a common task in data engineering,often done to compare the output of two data transformation approaches to make sure no meaningful deviations or inconsistencies have occurred.DataComPy is a Python library that facilitates the compariso

292、n of two DataFrames in pandas,Spark and more.The library goes beyond basic equality checks by providing detailed insights into discrepancies at both row and column levels.DataComPy also has the ability to specify absolute or relative tolerance for comparison of numeric columns as well as known diffe

293、rences it need not highlight in its report.Some of our teams use it as part of their smoke testing suite;they find it efficient when comparing large and wide DataFrames and consider its reports easy to understand and act upon.86.PiniaTrialPinia is a store library and state management framework for V

294、ue.js.It uses declarative syntax and offers its own state management API.Compared to Vuex,Pinia provides a simpler API with less ceremony,offers Composition-style APIs and,most importantly,has solid type inference support when used with TypeScript.Pinia is endorsed by the Vue.js team as a credible a

295、lternative to Vuex and is currently the official state management library for Vue.js.Our teams are leveraging Pinia for its simplicity and ease of implementation.87.RayTrialTodays machine learning(ML)workloads are increasingly compute-intensive.As convenient as they are,single-node development envir

296、onments such as your laptop cannot scale to meet these demands.Ray is a unified framework for scaling AI and Python code from laptop to cluster.Ray is essentially a well-encapsulated distributed computing framework with a series of AI libraries to simplify ML work.By integrating with other framework

297、s(e.g.,PyTorch and TensorFlow),it can be used to build large-scale ML platforms.Companies like OpenAI and Bytedance use Ray heavily for model training and inference.We also use its AI libraries to help with distributed training and hyperparameter tuning on our projects.We recommend you try Ray when

298、building scalable ML projects.Languages and Frameworks Thoughtworks,Inc.All Rights Reserved.3988.Android AdaptabilityAssessSome mobile applications and games can be so demanding they cause thermal throttling within a few minutes.In this state,CPU and GPU frequency are reduced to help cool the device

299、,but it also results in reduced frame rates in games.When the thermal situation improves,the frame rates increase again and the cycle repeats,leading to the software feeling janky.Android Adaptability,a new set of libraries,allows application developers to respond to changing performance and thermal

300、 situations.The Android Dynamic Performance Framework(ADPF)includes the Thermal API to provide information about the thermal state and the Hint API to help Android choose the optimal CPU operating point and core placement.Teams using Unity will find the Unity Adaptive Performance package helpful,as

301、it works with both APIs.89.Concrete MLAssessPreviously,we blipped the Homomorphic Encryption technique that allows computations to be performed directly on encrypted data.Concrete ML is one such open-source tool that allows for privacy-preserving machine learning.Built on top of Concrete,it simplifi

302、es the use of fully homomorphic encryption(FHE)for data scientists to help them automatically turn machine learning models into their homomorphic equivalent.Concrete-MLs built-in models have APIs that are almost identical to their scikit-learn counterparts.You can also convert PyTorch networks to FH

303、E with Concrete-MLs conversion APIs.Note,however,that FHE with Concrete-ML could be slow without tuned hardware.90.CrabvizAssessCrabviz is a Visual Studio Code plug-in to create call graphs.The graphs are interactive,which is essential when working with even moderately large codebases such as a micr

304、oservice.They show types,methods,functions and interfaces grouped by file and also display function calling relationships and interface implementation relationships.Because Crabviz is based on the Language Server Protocol,it supports any number of languages,as long as the corresponding language serv

305、er is installed.This means,though,that Crabviz is limited to static code analysis,which might not be sufficient for some use cases.The plug-in is written in Rust and is available on the Visual Studio Code Marketplace.91.CruxAssessCrux is an open-source cross-platform app development framework writte

306、n in Rust.Inspired by the Elm architecture,Crux organizes business logic code at the core and UI layer in native frameworks like SwiftUI,Jetpack Compose,React/Vue or WebAssembly-based frameworks(like Yew).With Crux,you can write side effectsfree behavior code in Rust and share it across iOS,Android

307、and the web.Languages and Frameworks Thoughtworks,Inc.All Rights Reserved.4092.Databricks Asset BundlesAssessThe recent public preview release of Databricks Asset Bundles(DABs),included with Databricks CLI version 0.205 and above,is becoming the officially recommended way to package Databricks asset

308、s for source control,testing and deployment.It has started to replace dbx among our teams.DABs supports packaging the configuration of workflows,jobs and tasks,as well as the code to be executed in those tasks,as a bundle that can be deployed to multiple environments.It comes with templates for comm

309、on types of assets and supports custom templates.While DABs includes templates for notebooks and supports deploying them to production,we continue to recommend against productionizing notebooks and instead encourage intentionally writing production code with the engineering practices that support th

310、e maintainability,resiliency and scalability needs of such workloads.93.ElectricAssessElectric is a local-first sync framework for mobile and web applications.Local-first is a development paradigm where your application code talks directly to an embedded local database and data syncs in the backgrou

311、nd via an active-active database replication to the central database.With Electric,you have SQLite as the local embedded option and PostgreSQL for the central store.Although local-first greatly improves user experience,it is not without challenges,and the inventors of CRDT have worked on the Electri

312、c framework to ease the pain.94.LiteLLMAssessLiteLLM is a library for seamless integration with various large language model(LLM)providers APIs that standardizes interactions through an OpenAI API format.It supports an extensive array of providers and models and offers a unified interface for comple

313、tion,embedding and image generation functionalities.LiteLLM simplifies integration by translating inputs to match each providers specific endpoint requirements.This is particularly valuable in the current landscape,where a lack of standardized API specifications for LLM providers complicates the inc

314、lusion of multiple LLMs in projects.Our teams have leveraged LiteLLM to swap underlying models in LLM applications,addressing a significant integration challenge.However,its crucial to acknowledge that model responses to identical prompts vary,indicating that a consistent invocation method alone may

315、 not fully optimize completion performance.Note that LiteLLM has several other features,such as proxy server,that are not in the purview of this blip.95.LLaMA-FactoryAssessWe continue to caution against rushing to fine-tune large language models(LLMs)unless its absolutely critical it comes with a si

316、gnificant overhead in terms of costs and expertise.However,we think LLaMA-Factory can be useful when fine-tuning is needed.Its an open-source,easy-to-use fine-tuning and training framework for LLMs.With support for LLaMA,BLOOM,Mistral,Baichuan,Qwen and ChatGLM,it makes a complex concept like fine-tu

317、ning relatively accessible.Our teams used LLaMA-Factorys LoRA tuning for a LLaMA 7B model successfully,so,if you have a need for fine-tuning,this framework is worth assessing.Languages and Frameworks Thoughtworks,Inc.All Rights Reserved.4196.MLXAssessMLX is an open-source array framework designed fo

318、r efficient and flexible machine learning on Apple silicon.It lets data scientists and machine learning(ML)engineers access the integrated GPU,allowing them to choose the hardware best suited for their needs.The design of MLX is inspired by frameworks like NumPy,PyTorch and Jax to name a few.One of

319、the key differentiators is MLXs unified memory model,which eliminates the overhead of data transfers between the CPU and GPU,resulting in faster execution.This feature makes running the models on devices such as iPhones plausible,opening a huge opportunity for on-device AI applications.Although nich

320、e,this framework is worth pursuing for the ML developer community.97.MojoAssessMojo is a new AI-first programming language.It aims to bridge the gap between research and production by combining the Python syntax and ecosystem with systems programming and metaprogramming features.Its the first langua

321、ge to take advantage of the new MLIR compiler backend and packs cool features like zero-cost abstraction,auto tuning,eager destruction,tail call optimization and better single instruction,multiple data(SIMD)ergonomics.We like Mojo a lot and encourage you to give it a try.The Mojo SDK is currently av

322、ailable for Ubuntu and macOS operating systems.98.OtterAssessOtter is a contention-free cache library in Go.Although Go has several such libraries,we want to highlight Otter for two reasons:its excellent throughput and its clever implementation of the S3-FIFO algorithm for good cache hit ratio.Otter

323、 also supports generics,so you can use any comparable types as keys and any types as values.99.PklAssessPkl is a configuration language and tooling created for use internally by Apple and now open-sourced.The key feature of Pkl is its type and validation system,allowing configuration errors to be ca

324、ught prior to deployment.It generates JSON,.plist,YAML and.properties files and has extensive IDE and language integration including code generation.100.Rust for UIAssessThe impact of Rust continues to grow,and many of the build and command-line tools weve covered recently are written in Rust.Now,we

325、re seeing movement in using Rust for UI development as well.The majority of teams who prefer to use the same language for code running in the browser and on the server opt to use JavaScript or TypeScript.However,with WebAssembly you can use Rust in the browser,and this is becoming a little more comm

326、on now.Frameworks like Leptos and sauron focus on web development,while Dioxus and several other frameworks support cross-platform desktop and mobile app development in addition to web development.Languages and Frameworks Thoughtworks,Inc.All Rights Reserved.42101.vLLMAssessvLLM is a high-throughput

327、 and memory-efficient inferencing and serving engine for large language models(LLMs)thats particularly effective thanks to its implementation of continuous batching for incoming requests.It supports several deployment options,including deployment of distributed tensor-parallel inference and serving

328、with Ray run time,deployment in the cloud with SkyPilot and deployment with NVIDIA Triton,Docker and LangChain.Our teams have had good experience running dockerized vLLM workers in an on-prem virtual machine,integrating with OpenAI compatible API server which,in turn,is leveraged by a range of appli

329、cations,including IDE plugins for coding assistance and chatbots.Our teams leverage vLLM for running models such as CodeLlama 70B,CodeLlama 7B and Mixtral.Also notable is the engines scaling capability:it only takes a couple of config changes to go from running a 7B to a 70B model.If youre looking t

330、o productionize LLMs,vLLM is worth exploring.102.VoyagerAssessVoyager is a navigation library built for Androids Jetpack Compose.It supports several navigation types,including Linear,BottomSheet,Tab and Nested,and its screen model integrates with popular frameworks like Koin and Hilt.When using Jetp

331、ack Compose in a multiplatform project,Voyager is a good choice to implement a common navigation pattern across all supported platforms.Development on Voyager has picked up again and the library reached version 1.0 in December 2023.103.WGPUAssesswgpu is a graphics library for Rust based on the WebGP

332、U API,notable for its capacity to handle general-purpose graphics and compute tasks on the GPU efficiently.wgpu aims to fill the gap left by the phasing out of older graphics standards such as OpenGL and WebGL.It introduces a modern approach to graphics development that spans both native application

333、s and web-based projects.Its integration with WebAssembly further enables graphics and compute applications to run in the browser.wgpu represents a step forward in making advanced graphics programming more accessible to web developers with a range of applications,from gaming to creating sophisticated web animations,positioning wgpu as an exciting technology to assess.104.ZigAssessZig is a new lang

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(Thoughtworks:2024技术雷达-针对当今科技领域发展的前沿指南(第30期)(英文版)(44页).pdf)为本站 (Kelly Street) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
小程序

小程序

客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部