How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
Docs as Code: Publishing Processes for API ExperiencesAnne Gentle
When you treat docs like code, you multiply everyone’s efforts and streamline processes through collaboration, automation, and plain old hard work. To create a cohesive API experience, developers, technical marketing engineers, technical writers, and product managers can work together on GitHub to produce web pages and API documentation, including interactive API docs and tutorials. The ways you can leverage developer processes and tools in a docs-as-code system vary widely. Let's walk through some examples including tools, version control, publishing workflows, approvals, source formats, checklists, automated testing, and final approval. Also, let's take some time to share some of the pitfalls and difficulties possible when you work on API and tools documentation for a large and varied product catalog with more than a thousand contributors.
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...Red Hat Developers
Enabling teams on projects has been often challenging due to hardware configurations, software dependencies, and lack of documentation. In this session, we'll show you how admins can easily provide CodeReady Workspaces, a multi-tenant in-browser IDE system on top of OpenShift. CodeReady Workspaces can get Developers comfortably started with coding and testing their changes in Kubernetes-containerized environments (workspaces), and deploying their apps to the Platform.
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
OpenNTF presents Water Cooler Talks, an irregular new series of webinars to provide a stage for individuals sharing their stories, experiences and best practices with their peers.
This month's topic is all about developers' workbenches. As developers we all have tools and routines we use to develop, collaborate and test our applications. We have experienced lots of issues and made mistakes and have a workflow that does the job, but may not be ideal. Are there better ways to do our jobs? Come learn from your fellow developers in this webinar that looks at the typical toolbox and workflow routines of several OpenNTF Board members and how they develop apps, manage tasks, track bugs, handle versioning and more.
Howard Greenberg develops Notes/Domino/XPages applications for a variety of clients. Come learn how he uses source control in Domino Designer along with SourceTree and BitBucket to collaborate with his clients and maintain a history of all changes.
Jesse Gallagher develops XPages and webapp projects that target Domino. He will present his development environment and discuss using Maven and Jenkins to automate builds and delivery.
Serdar Basegmez utilizes Domino to create RESTful APIs for his clients. He will present his development environment and share some tips on Eclipse configuration, deployment and testing Domino plugins.
View the video at https://youtu.be/AMbQ5H4dEvw
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
Presented at JAX London 2013
Public, private, and hybrid; software, platform, and infrastructure. This talk will discuss the current state of the Platform-as-a-Service space, and why the keys to success lie in enabling developer productivity, and providing openness and choice. We'll do this by considering the success of Open Source in general, look at the Cloud Foundry project, and find out why Cloud Foundry-based PaaSes are the best places to host your applications written in Java and other JVM-based languages.
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
Docs as Code: Publishing Processes for API ExperiencesAnne Gentle
When you treat docs like code, you multiply everyone’s efforts and streamline processes through collaboration, automation, and plain old hard work. To create a cohesive API experience, developers, technical marketing engineers, technical writers, and product managers can work together on GitHub to produce web pages and API documentation, including interactive API docs and tutorials. The ways you can leverage developer processes and tools in a docs-as-code system vary widely. Let's walk through some examples including tools, version control, publishing workflows, approvals, source formats, checklists, automated testing, and final approval. Also, let's take some time to share some of the pitfalls and difficulties possible when you work on API and tools documentation for a large and varied product catalog with more than a thousand contributors.
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...Red Hat Developers
Enabling teams on projects has been often challenging due to hardware configurations, software dependencies, and lack of documentation. In this session, we'll show you how admins can easily provide CodeReady Workspaces, a multi-tenant in-browser IDE system on top of OpenShift. CodeReady Workspaces can get Developers comfortably started with coding and testing their changes in Kubernetes-containerized environments (workspaces), and deploying their apps to the Platform.
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
OpenNTF presents Water Cooler Talks, an irregular new series of webinars to provide a stage for individuals sharing their stories, experiences and best practices with their peers.
This month's topic is all about developers' workbenches. As developers we all have tools and routines we use to develop, collaborate and test our applications. We have experienced lots of issues and made mistakes and have a workflow that does the job, but may not be ideal. Are there better ways to do our jobs? Come learn from your fellow developers in this webinar that looks at the typical toolbox and workflow routines of several OpenNTF Board members and how they develop apps, manage tasks, track bugs, handle versioning and more.
Howard Greenberg develops Notes/Domino/XPages applications for a variety of clients. Come learn how he uses source control in Domino Designer along with SourceTree and BitBucket to collaborate with his clients and maintain a history of all changes.
Jesse Gallagher develops XPages and webapp projects that target Domino. He will present his development environment and discuss using Maven and Jenkins to automate builds and delivery.
Serdar Basegmez utilizes Domino to create RESTful APIs for his clients. He will present his development environment and share some tips on Eclipse configuration, deployment and testing Domino plugins.
View the video at https://youtu.be/AMbQ5H4dEvw
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
Presented at JAX London 2013
Public, private, and hybrid; software, platform, and infrastructure. This talk will discuss the current state of the Platform-as-a-Service space, and why the keys to success lie in enabling developer productivity, and providing openness and choice. We'll do this by considering the success of Open Source in general, look at the Cloud Foundry project, and find out why Cloud Foundry-based PaaSes are the best places to host your applications written in Java and other JVM-based languages.
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxGrace Jansen
As developers we strive to iteratively and rapidly develop our applications. However, development is often slowed by the process of setting up a new project to use the latest APIs, building the application, deploying to a local or container environment, and testing. In this session we will look at key pain points faced by cloud-native Java developers and present helpful APIs and tools so that as developer you can focus on what really matters - your code.
Yes, I want to build with Eclipse MicroProfile. Then, do I have to do everything from scratch? Are there tools out there to make my life easier to code MicroProfile-based applications? We will review what's out there, talk about what's coming, and show them in action.
This was a talk delivered as part of J4K.io 2020.
A very big thank you to Michael Palotas from Grid Fusion & eBay International for taking the time and effort to travel across the globe to present at the Australian Test Managers Forum 2014. If you would like any information on TMF please email tmf@kjross.com.au
Leveraging Docker for Hadoop build automation and Big Data stack provisioningDataWorks Summit
Apache Bigtop as an open source Hadoop distribution, focuses on developing packaging, testing and deployment solutions that help infrastructure engineers to build up their own customized big data platform as easy as possible. However, packages deployed in production require a solid CI testing framework to ensure its quality. Numbers of Hadoop component must be ensured to work perfectly together as well. In this presentation, we'll talk about how Bigtop deliver its containerized CI framework which can be directly replicated by Bigtop users. The core revolution here are the newly developed Docker Provisioner that leveraged Docker for Hadoop deployment and Docker Sandbox for developer to quickly start a big data stack. The content of this talk includes the containerized CI framework, technical detail of Docker Provisioner and Docker Sandbox, a hierarchy of docker images we designed, and several components we developed such as Bigtop Toolchain to achieve build automation.
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...Nuxeo
See how Codenvy's Factories allow Nuxeo Platform developers to manage their entire development cycle in the cloud without installing anything.
This How-To webinar will walk you through the steps used to build the Codenvy factory for the Nuxeo Platform. Attendees will learn:
- How a project is edited and run in the Codenvy Cloud
- How to use a running project as the base for a one-click factory
- What Docker is, and how Dockerfiles simplify setup of the developer environment
- How to automate developer workspace construction
- How to publish a single URL that gives instant access to project contributors
Accelerating DevOps at the SF DevOps MeetUpjwi11iams
The Codenvy slide presentation given on September 28, 2015 at the SF DevOps MeetUp. This talk covered Codenvy's journey to continuous development and how Codenvy helps accelerate DevOps though increasing code commits and feedback iterations.
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentDevOps.com
Eclipse Che introduces a new kind of developer tool that runs directly on Kubernetes and is accessible through a web-based IDE. The container architecture enables easy and rapid onboarding of new team members while eliminating workstation maintenance costs and limitations, all while leveraging a VS Code-like experience. The release of Che 7.0 by the open source community goes further by making the developer environment consistent, repeatable and reproducible. Now available for mainframe-based code with the Che4z subproject, teams can collaborate on cross-platform applications and bridge the distributed/mainframe divide.
The panel with discuss how the Eclipse Che IDE and workspace server drive developer productivity and improve overall software delivery.
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDevWerner Keil
At Maersk Line, not only the world's biggest container ships, the 'Triple-E' class vessels were built. Continuous Integration and Delivery on a similar scale using Hudson, Maven and tools like Kokki (similar to Puppet or Chef, but written in Python) are also practiced there.
This session is going to give a brief overview of Multi-Configuration (Matrix) job types used in most projects at Maersk around the globe.
Things are being built and deployed in a heterogenous environment, otherwise probably found only at very large vendors of Public Cloud services like Google or Amazon. Provisioning of various OS is automated through Vagrant.
Management and Planning of all tasks and 'Sprints' is following Agile principles, especially DevOps style Kanban. Where possible planned and controlled by Eclipse-based tools such as Mylyn Connectors accessing planning tools like TeamConcert, Xplanner or Mantis. While feature projects use Eclipse for Java or Scala/Play!, the DevOps teams use PyDev for Jython/WSTL or Python development.
Docker Concepts for Oracle/MySQL DBAs and DevOpsZohar Elkayam
Oracle Week 2017 Slides
Agenda:
Docker overview – why do we even need containers?
Installing Docker and getting started
Images and Containers
Docker Networks
Docker Storage and Volumes
Oracle and Docker
Docker tools, GUI and Swarm
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
Flux, the original GitOps project, began its development in a small London office back in 2017 with the goal to bring continuous delivery (CD) to developers, platform and cluster operators working with Kubernetes. From donating the project to the CNCF, its continued growth within the cloud native community, to its achievement of passing rigorous battle tests for security, longevity and governance, it’s little wonder that Flux v2 has reached yet another celebratory milestone – General Availability (GA).
Flux is the GitOps platform of choice for many enterprise companies such as SAP, Volvo Cars, and Axel Springer; and is embedded within AKS, Azure Arc and EKS Anywhere. It provides extensive automation to CI/CD, security and audit trails, and reliability through canary deployments and rollback capabilities.
Join this webinar by Flux maintainers and creators and discover:
* Latest release features and roadmap for the future.
* Interesting use cases for Flux (e.g security).
* Flux capabilities you may not be aware of (e.g. extensions).
* Joining the vibrant Flux community.
* How to leverage Flux in a supported enterprise environment today.
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application. JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances. We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Enabling applications to really thrive (and not just survive) in cloud environments can be challenging. The original 12 factor app methodology helped to lay out some of the key characteristics needed for cloud-native applications... but... as our cloud infrastructure and tooling has progressed, so too have these factors.
In this session we'll dive into the extended and updated 15 factors needed to build cloud native applications that are able to thrive in this environment, and we'll take a look at open source technologies and tools that can help us achieve this.
More Related Content
Similar to FooConf23_Bringing the cloud back down to earth.pptx
Boost developer productivity with EE, MP and OL (Devoxx Ukraine 22).pptxGrace Jansen
As developers we strive to iteratively and rapidly develop our applications. However, development is often slowed by the process of setting up a new project to use the latest APIs, building the application, deploying to a local or container environment, and testing. In this session we will look at key pain points faced by cloud-native Java developers and present helpful APIs and tools so that as developer you can focus on what really matters - your code.
Yes, I want to build with Eclipse MicroProfile. Then, do I have to do everything from scratch? Are there tools out there to make my life easier to code MicroProfile-based applications? We will review what's out there, talk about what's coming, and show them in action.
This was a talk delivered as part of J4K.io 2020.
A very big thank you to Michael Palotas from Grid Fusion & eBay International for taking the time and effort to travel across the globe to present at the Australian Test Managers Forum 2014. If you would like any information on TMF please email tmf@kjross.com.au
Leveraging Docker for Hadoop build automation and Big Data stack provisioningDataWorks Summit
Apache Bigtop as an open source Hadoop distribution, focuses on developing packaging, testing and deployment solutions that help infrastructure engineers to build up their own customized big data platform as easy as possible. However, packages deployed in production require a solid CI testing framework to ensure its quality. Numbers of Hadoop component must be ensured to work perfectly together as well. In this presentation, we'll talk about how Bigtop deliver its containerized CI framework which can be directly replicated by Bigtop users. The core revolution here are the newly developed Docker Provisioner that leveraged Docker for Hadoop deployment and Docker Sandbox for developer to quickly start a big data stack. The content of this talk includes the containerized CI framework, technical detail of Docker Provisioner and Docker Sandbox, a hierarchy of docker images we designed, and several components we developed such as Bigtop Toolchain to achieve build automation.
[Webinar] Automating Developer Workspace Construction for the Nuxeo Platform ...Nuxeo
See how Codenvy's Factories allow Nuxeo Platform developers to manage their entire development cycle in the cloud without installing anything.
This How-To webinar will walk you through the steps used to build the Codenvy factory for the Nuxeo Platform. Attendees will learn:
- How a project is edited and run in the Codenvy Cloud
- How to use a running project as the base for a one-click factory
- What Docker is, and how Dockerfiles simplify setup of the developer environment
- How to automate developer workspace construction
- How to publish a single URL that gives instant access to project contributors
Accelerating DevOps at the SF DevOps MeetUpjwi11iams
The Codenvy slide presentation given on September 28, 2015 at the SF DevOps MeetUp. This talk covered Codenvy's journey to continuous development and how Codenvy helps accelerate DevOps though increasing code commits and feedback iterations.
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentDevOps.com
Eclipse Che introduces a new kind of developer tool that runs directly on Kubernetes and is accessible through a web-based IDE. The container architecture enables easy and rapid onboarding of new team members while eliminating workstation maintenance costs and limitations, all while leveraging a VS Code-like experience. The release of Che 7.0 by the open source community goes further by making the developer environment consistent, repeatable and reproducible. Now available for mainframe-based code with the Che4z subproject, teams can collaborate on cross-platform applications and bridge the distributed/mainframe divide.
The panel with discuss how the Eclipse Che IDE and workspace server drive developer productivity and improve overall software delivery.
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDevWerner Keil
At Maersk Line, not only the world's biggest container ships, the 'Triple-E' class vessels were built. Continuous Integration and Delivery on a similar scale using Hudson, Maven and tools like Kokki (similar to Puppet or Chef, but written in Python) are also practiced there.
This session is going to give a brief overview of Multi-Configuration (Matrix) job types used in most projects at Maersk around the globe.
Things are being built and deployed in a heterogenous environment, otherwise probably found only at very large vendors of Public Cloud services like Google or Amazon. Provisioning of various OS is automated through Vagrant.
Management and Planning of all tasks and 'Sprints' is following Agile principles, especially DevOps style Kanban. Where possible planned and controlled by Eclipse-based tools such as Mylyn Connectors accessing planning tools like TeamConcert, Xplanner or Mantis. While feature projects use Eclipse for Java or Scala/Play!, the DevOps teams use PyDev for Jython/WSTL or Python development.
Docker Concepts for Oracle/MySQL DBAs and DevOpsZohar Elkayam
Oracle Week 2017 Slides
Agenda:
Docker overview – why do we even need containers?
Installing Docker and getting started
Images and Containers
Docker Networks
Docker Storage and Volumes
Oracle and Docker
Docker tools, GUI and Swarm
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
Flux, the original GitOps project, began its development in a small London office back in 2017 with the goal to bring continuous delivery (CD) to developers, platform and cluster operators working with Kubernetes. From donating the project to the CNCF, its continued growth within the cloud native community, to its achievement of passing rigorous battle tests for security, longevity and governance, it’s little wonder that Flux v2 has reached yet another celebratory milestone – General Availability (GA).
Flux is the GitOps platform of choice for many enterprise companies such as SAP, Volvo Cars, and Axel Springer; and is embedded within AKS, Azure Arc and EKS Anywhere. It provides extensive automation to CI/CD, security and audit trails, and reliability through canary deployments and rollback capabilities.
Join this webinar by Flux maintainers and creators and discover:
* Latest release features and roadmap for the future.
* Interesting use cases for Flux (e.g security).
* Flux capabilities you may not be aware of (e.g. extensions).
* Joining the vibrant Flux community.
* How to leverage Flux in a supported enterprise environment today.
Similar to FooConf23_Bringing the cloud back down to earth.pptx (20)
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application. JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances. We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Enabling applications to really thrive (and not just survive) in cloud environments can be challenging. The original 12 factor app methodology helped to lay out some of the key characteristics needed for cloud-native applications... but... as our cloud infrastructure and tooling has progressed, so too have these factors.
In this session we'll dive into the extended and updated 15 factors needed to build cloud native applications that are able to thrive in this environment, and we'll take a look at open source technologies and tools that can help us achieve this.
Our cloud-native environments are more complex than ever before! So how can we ensure that the applications we’re deploying to them are behaving as we intended them to? This is where effective observability is crucial. It enables us to monitor our applications in real-time and analyse and diagnose their behaviour in the cloud. However, until recently, we were lacking the standardization to ensure our observability solutions were applicable across different platforms and technologies. In this session, we’ll delve into what effective observability really means, exploring open source technologies and specifications, like OpenTelemetry, that can help us to achieve this while ensuring our applications remain flexible and portable.
For Java developers, the Just-In-Time (JIT) compiler is key to improved performance. However, in a container world, the performance gains are often negated due to CPU and memory consumption constraints. To help solve this issue, the Eclipse OpenJ9 JVM provides JITServer technology, which separates the JIT compiler from the application.
JITServer allows the user to employ much smaller containers enabling a higher density of applications, resulting in cost savings for end-users and/or cloud providers. Because the CPU and memory surges due to JIT compilation are eliminated, the user has a much easier task of provisioning resources for his/her application. Additional advantages include: faster ramp-up time, better control over resources devoted to compilation, increased reliability (JIT compiler bugs no longer crash the application) and amortization of compilation costs across many application instances.
We will dig into JITServer technology, showing the challenges of implementation, detailing its strengths and weaknesses and illustrating its performance characteristics. For the cloud audience we will show how it can be deployed in containers, demonstrate its advantages compared to a traditional JIT compilation technique and offer practical recommendations about when to use this technology.
Imagine a Java application that can start up in milliseconds, without compromising on throughput, memory, development-production parity or Java language features. Sounds out of this world, right? Well, through the use of technologies like CRIU support in Eclipse OpenJ9 and Liberty’s InstantOn, we’ve taken one giant leap forwards for innovation within Java, offering exactly this! Join this session to learn more about these innovations and how you could utilise OSS technologies to deliver highly scalable and performant applications that are optimized for today’s cloud-native environments.
Jfokus_Bringing the cloud back down to earth.pptxGrace Jansen
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
How does one choose to architect a system that has a Microservice / REST API endpoints? There are many solutions out there. Some are better than others. Should state be held in a server side component, or externally? Generally we are told this is not a good practice for a Cloud Native system, when the 12-factor guidelines seem to be all about stateless containers, but is it? It’s unclear and this confusion may lead to poor technology stack choices that are impossible or extremely hard to change later on as your system evolves in terms of demand and performance.
While stateless systems are easier to work with, the reality is that we live in a stateful world, so we have to handle the state of data accordingly to ensure data integrity beyond securing it.
We will examine and demonstrate the fundamentals of a Cloud Native system with Stateful Microservices that’s built with Open Liberty and MicroProfile.
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxGrace Jansen
How does one choose to architect a system that has a Microservice / REST API endpoints? There are many solutions out there. Some are better than others. Should state be held in a server side component, or externally? Generally we are told this is not a good practice for a Cloud Native system, when the 12-factor guidelines seem to be all about stateless containers, but is it? It’s unclear and this confusion may lead to poor technology stack choices that are impossible or extremely hard to change later on as your system evolves in terms of demand and performance.
While stateless systems are easier to work with, the reality is that we live in a stateful world, so we have to handle the state of data accordingly to ensure data integrity beyond securing it.
We will examine and demonstrate the fundamentals of a Cloud Native system with Stateful Microservices that’s built with Open Liberty and MicroProfile.
JCON_Adressing the transaction challenge in a cloud-native world.pptxGrace Jansen
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
JavaZone_Addressing the transaction challenge in a cloud-native world.pptxGrace Jansen
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
JavaZone_Mother Nature vs Java – the security face off.pptxGrace Jansen
Mother Nature has had millennia to build up its defences to the many potential hazards and attacks it may face. So, given its wisdom and expertise on this subject, what can we as software developers learn from it and bring back to the evolution of our own application’s security? In this session we’ll explore where software and biology overlap when it comes to security and lessons we can learn from nature to improve our own application security.
Addressing the transaction challenge in a cloud-native world Devoxx Ukraine 2022Grace Jansen
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
With microservices comes great benefits but also great challenges! One such challenge is data consistency and integrity. Traditionally, tightly coupled transactions were used to ensure strong consistency and isolation. However, this results in strong coupling between services due to data locking and decreasing concurrency, both of which are unsuitable for microservices. So, how do we provide consistency guarantees for flows that span long periods of time in cloud-native applications? We'll address this challenge by investigating the Saga pattern for distributed transactions, the MicroProfile Long Running Action (LRA) specification and how these can be used to develop effective cloud-native Java microservices.
How does one choose to architect a system that has a Microservice / REST API endpoints? There are many solutions out there. Some are better than others. Should state be held in a server side component, or externally? Generally we are told this is not a good practice for a Cloud Native system, when the 12-factor guidelines seem to be all about stateless containers, but is it? It’s unclear and this confusion may lead to poor technology stack choices that are impossible or extremely hard to change later on as your system evolves in terms of demand and performance.
While stateless systems are easier to work with, the reality is that we live in a stateful world, so we have to handle the state of data accordingly to ensure data integrity beyond securing it.
We will examine and demonstrate the fundamentals of a Cloud Native system with Stateful Microservices that’s built with Open Liberty and MicroProfile in Kubernetes.
How to become a superhero without even leaving your desk!Grace Jansen
With global warming on the rise, viral pandemics affecting every nation and extinction threatening more than 40,000 species the world has never needed superheros more! Are you ready to use your powers to save the world?
In this session we’ll explore the various ways our coding super powers can help to make a positive impact on our society and the planet we inhabit.
Devoxx Ukraine - Going beyond the 12 factorsGrace Jansen
Enabling applications to really thrive (and not just survive) in cloud environments can be challenging. The original 12 factor app methodology helped to lay out some of the key characteristics needed for cloud-native applications... but... as our cloud infrastructure and tooling has progressed, so too have these factors.
In this session we'll dive into the extended and updated 15 factors needed to build cloud native applications that are able to thrive in this environment, and we'll take a look at open source technologies and tools that can help us achieve this.
BuildStuffConf Going beyond the 12 factorsGrace Jansen
Enabling applications to really thrive (and not just survive) in cloud environments can be challenging. The original 12 factor app methodology helped to lay out some of the key characteristics needed for cloud-native applications... but... as our cloud infrastructure and tooling has progressed, so too have these factors.
In this session we'll dive into the extended and updated 15 factors needed to build cloud native applications that are able to thrive in this environment, and we'll take a look at open source technologies and tools that can help us achieve this.
Containers are an amazing technology that are revolutionising how we deploy and create applications. Docker and Kubernetes are helping developers and organisations realise the magical potential that container technology and orchestration offer. Enter MicroShed and the Testcontainers framework enabling local test automation that leverages that magical portability containers offer. In this session we'll explore how Testcontainers can help you run and test with true-to-production environments in development with minimal re-writing of your test code.
JLove - Replicating production on your laptop using the magic of containersGrace Jansen
Containers are an amazing technology that are revolutionising how we deploy and create applications. Docker and Kubernetes are helping developers and organisations realise the magical potential that container technology and orchestration offer. Enter MicroShed and the Testcontainers framework enabling local test automation that leverages that magical portability containers offer. In this session we'll explore how Testcontainers can help you run and test with true-to-production environments in development with minimal re-writing of your test code.
Developer Week - Reacting to an event-driven worldGrace Jansen
We now live in a world with data at its heart. The amount of data being produced every day is growing exponentially and a large amount of this data is in the form of events. Whether it be updates from sensors, clicks on a website or even tweets, applications are bombarded with a never-ending stream of new events. So, how can we architect our applications to be more reactive and resilient to these fluctuating loads and better manage our thirst for data? In this session explore how Kafka and Reactive application architecture can be combined in applications to better handle our modern data needs.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
16. 17
MicroProfile Runtimes
Compatible with MicroProfile APIs 2.x and
3.x
4.x 5.x 6.x
Open Liberty x x x x
WebSphere Liberty x x x x
Quarkus x x
Payara Micro x x alpha release
WildFly x x x
Payara Server x x x
TomEE x x
KumuluzEE x
Thorntail x
JBoss EAP XP x
Helidon x
Apache Launcher x
https://microprofile.io/compatible
21. 24
Starters
Give me a starter project or
template for my MicroProfile
application
• start.microprofile.io
• VS Code extension
• IntelliJ plugin
Create
22. 25
Starters
Give me a starter project or
template for my Jakarta EE
application
• start.jakarta.ee
• Runtime-specific
starters/generators/templates
• Open Liberty Starter
• start.openliberty.io
Create
24. 27
Dev Mode
What if I don’t have to build,
package, deploy and start my
application manually during
development?
• Liberty Maven/Gradle Plugin
• Dev mode for hot deploy
• Continuous/hot testing
• Container support
• Debugging
mvn liberty:dev
mvn liberty:devc
Build
27. 30
IDE or Editor Integration
Working with MicroProfile API and
runtimes inside my favorite editor
or IDE
• Eclipse
• IntelliJ
• VS Code
• NetBeans …
• IDE integration for runtime
lifecycle management
• Custom runtime plugins or
extensions
Edit
28. 31
Coding Assistance in Editor/IDE
Can I get help with working with
MicroProfile APIs inside my favorite
editor or IDE?
• Language Server for Eclipse
MicroProfile incubator project at
Eclipse Foundation
• LSP4MP-based VS Code
extension, Tools for
MicroProfile from Red Hat
Contribute at
https://github.com/eclipse/lsp4mp/
Edit
29. 32
Coding Assistance in Editor/IDE
Can I get help with working with
Jakarta EE APIs inside my favorite
editor or IDE?
• Language Server for Jakarta EE
(LSP4Jakarta) incubator project
under the Eclipse Foundation
Contribute at
https://github.com/eclipse/lsp4jakarta
Edit
30. 33
Code Generators
Any additional help with generating
(boilerplate) code?
• MicroProfile Rest Client from
OpenAPI docs
• CLI via OpenAPI Tools
• VS Code extension
• JAX-RS stubs generation in
OpenAPI Tools
Edit
33. 36
my-
app:latest
(app
container)
mongo:4.0
(DB container)
Dev/Test env
Production env
integratio
n tests
end users
my-
app:latest
(app
container)
mongo:4.0
(DB container)
Testcontainers
Integration tests that are easy to
setup, write, and run
Test your apps the same way
they run in production
Tests are portable to any
compatible implementation:
o Liberty
o Wildfly
o Payara
o TomEE
o etc…
35. 38
Buildpacks.io
Provide framework and runtime support for applications
Transforms your application source code into container
images that can run on any cloud
Avoid the need to manage Dockerfiles
</>
Source Code Buildpack
Specification
pack CLI
OCI Image
40. 43
What is Telepresence?
• Fast, local development for Kubernetes and
OpenShift Microservices
• Benefits:
• Accelerate Inner Dev Loop
• Shift Testing Left
• Use Your Existing Workflow
https://github.com/sdaschner/liberty-dev-experience https://heidloff.net/article/debugging-microservices-Kubernetes/
41. 44
How does it work?
‘telepresence connect’
`telepresence intercept
service-name’
46. 49
Developer Tools MicroProfile - Common Tools Jakarta EE - Common Tools Runtime Tooling (Open Liberty)
Starters
start.microprofile.io
MP Starter IDE Plugins
start.jakarta.ee Open Liberty Starter
Build & Run N/A N/A
Liberty Maven & Gradle Build
Plugins
Dev mode
IDE/Editor Integration
Eclipse LSP4MP
LSP4MP IDE Plugin(s)
MP Extension Pack for VS Code
Code
Eclipse LSP4Jakarta
Liberty Tools for Eclipse, IntelliJ
IntelliJ and VS Code (tech
previews)
Dev mode for any editor
Code Generators
OpenAPI Tools
MP Rest Client Generator
N/A N/A
Automated Testing
JUnit, Arquillian
Testcontainers, MicroShed
Testing
JUnit, Arquillian, Testcontainers,
Hot testing
Deployment N/A N/A
Paketo Buildpacks,
Dev Mode
Telepresence
47. 50
Demo Links
• Liberty Tools for Eclipse: https://github.com/OpenLiberty/liberty-tools-eclipse
• Open Liberty Starter: https://start.openliberty.io/
• Liberty Tools for VS Code:
https://marketplace.visualstudio.com/items?itemName=Open-Liberty.liberty-dev-
vscode-ext
• Liberty Tools for IntelliJ: https://plugins.jetbrains.com/plugin/14856-liberty-tools
• VS Code Extension Pack for MicroProfile:
https://marketplace.visualstudio.com/items?itemName=MicroProfile-
Community.vscode-microprofile-pack
48. 51
Demo Links
• TestContainers: https://www.testcontainers.org/
• Paketo Buildpack for Liberty: gcr.io/paketo-buildpacks/liberty
• Telepresence Examples:
• https://github.com/sdaschner/liberty-dev-experience
• https://heidloff.net/article/debugging-microservices-Kubernetes/
• Open Liberty Guides:
• Jakarta EE: https://openliberty.io/guides/?search=jakarta%20ee&key=tag
• MicroProfile: https://openliberty.io/guides/?search=microprofile&key=tag
• Open Liberty Deep Dive: https://openliberty.io/guides/liberty-deep-dive.html
How can we effectively develop for the cloud, when we as developers are coding back down on earth? This is where effective cloud-native developer tools can enable us to either be transported into the cloud or alternatively, to bring the cloud back down to earth. But what tools should we be using for this? In this session, we’ll explore some of the useful OSS tools and technologies that can used by developers to effectively develop, design and test cloud-native Java applications.
What do developers care about?
What do developers do? (when creating cloud-native apps)
Move to OSS technologies cloud-native, agility, portability, no vendor-lock in, community driven, etc
How do we best work with these technologies locally to effectively build cloud-native applications?
We’ll focus on a few Java specific OSS technologies for the examples given and demos shown
Eclipse MicroProfile is a set of cloud native capabilities, implemented by our Java runtimes, that provide standard applications annotations implementations for applications to use in containers – building on a core of familiar Java EE technologies. LRA is one of the newest MicroProfile specificactions, derived from WS-BA, to provide a simple compensating transaction for Java microservices.
The blue specs are part of the MicroProfile 3.3 release. ReactiveMessaging and LRA are standalone specs.
The LRA model provides a good balance between a loosely coupled transaction model that preserves independence of application lifecycle of each microservce and application simplicity over maintaining data consistency in the presence of failure. Simple Java annotations are used to register completion and compensation tasks while the platfrom takes care of ensuring these get invoked appropriately, across any form of system failure.
* use a more visible list, not so OL focused
Apply OSS tools to what developers actually need – what they do
Can be tedious to have to re-build, re-package, re-deploy applications every time you want to see a code change
What tools are there available for us to make this easier?
Dev Mode – hot deploy tool, abilities to start server, watch app for changes, re-build and re-package when needed and re-deploy
Takes onous off developers
Can see changes immediately – live test changes
Offered as a maven or gradle plugin from Liberty
Snippet shows plug needed (example is the maven plugin)
Just need to run command shown
Also container integration, just need to run the c goal to be able to test in a local container environment
Also offers debugging, so dev mode makes a debug port available and allows you to connect to an IDE through this port to debug at any time
The WAD tool watches for any changes that we make in the project and re-deploys our applications.
Without fast deployments and short feedback-cycles about a new feature, you lose a lot of time just “idling”. As a Java/Jakarta EE developer, you will most likely have a local installation for the target application server and deploy the application several times a day during development. In the past, I've used Eclipse/IntelliJ/Netbeans with various vendor plugins to start the application server and deploy on every new code change. This was always quite a fiddling task, as I sometimes got issues with the plugins, had to wait for a new release or it wasn't as fast as I expected until I could see my changes. Luckily Adam Bien (@AdamBien) solved this with a small Java project called WAD (Watch and Deploy) which deploys thin .war ‘s on every change to any server and improves your productivity.
Next is the edit stage
As you’re editing typically we use IDEs or Editors
What tools or plugins do we have when using favourite OSS specs or runtimes in fav IDEs?
Many out there – screenshot shows just some from VS Code marketplace (search on MP)
Many MP-specific Plugins and runtime-specific plugins (e.g. Quarkus, Open Liberty)
Integrate straight into your IDE
Really convenient
Offered for a wide range of IDEs
Example shown for Open Liberty here is Liberty tools
Open Liberty Tools are lightweight tools for developing, assembling, and deploying apps to Open Liberty.
It supports editing Liberty server.xml configuration (Liberty Config Language Server), developing MicroProfile applications, a Liberty Dashboard for organizing your projects (With a few clicks, you can start and stop your app, run tests, and view test reports.), and Liberty dev mode functions, all from within your IDE.
What other coding assistance could I get in an editor or IDE?
We are probably aware of the coding assistance editors can give us for working with Java projects, but what about specifically working with OSS Java specs like MicroProfile or Jakarta EE?
This is where language server projects come in.
One project is Eclipse LSP4MP – language server for Eclipse MicroProfile (all OSS, lives under eclipse foundation)
Provides in-editor language features for MP APIs (e.g. code completion or snippets for popular APIs, or diagnostics or quick fixes when you use an API incorrectly), feedback to fix or enhance code before you run your app
To use, just install plugins/extensions into your IDE of choice
E.g. there is a VS Code extension from Red Hat (Tools for MP) that consumes this language server project
What about working with Jakarta EE APIs?
Similar project also under Eclipse foundation
Language features support also offered for Jakarta EE APIs (e.g. code completion or snippets for popular APIs, or diagnostics or quick fixes when you use an API incorrectly), feedback to fix or enhance code before you run your app
Should mention that both of these projects are considered incubator projects, so always looking for feedback from the community or to get more of the community involved (let us know if there is a feature you’d like to see that isn’t already there)
Ok, what about if we want to generate snippets of code or generating boilerplate code? Are there tools to help?
Yes! Code generator tools like OpenAPI tools -> for example you could generate a MicroProfile Rest Client from OpenAPI documentation
This is available as a command line interface if you were to use the OpenAPI Tools or as an IDE extension (e.g. VS Code) – example given on the right and in next slide for this
Enables you to generate a MP Rest Client directly into your project
You can also generate JAX-RS stubs with OpenAPI Tools too
Like all good developers….
What tools do we have out there for automated testing?
Usual suspects are obviously available (Junit, Arquillian)
But… if we want to leverage containers…. Can use technologies like TestConatiners or MicroShed testing (implementation of Test Containers)
Mimic prod-like container environment – more confidence that code works as expected
Helps with 12 factor app methodology (Dev-prod parity)
Stops the saying “well it works on my machine”
Testcontainers make a variety of different testing easier such as:
Data access layer integration tests
Application integration tests
UI/Acceptance tests
Much more via contributed modules
Supports JUnit 4/5 and Spok
Testcontainers give you the ability to do UI/Acceptance testing in a container. This has great benefits such as:
- Fresh instance of a browser
- No browser state, plugin variations or browser upgrades
- Video recoding of test session or just failed test sessions
What about deployment
Moving towards more devops style teams
Need to consider this…
The Cloud Native Buildpacks project was initiated by Pivotal and Heroku (creators of the 12 factor app methodology) in January 2018 and joined the Cloud Native Computing Foundation in October 2018. The project aims to unify the buildpack ecosystems with a platform-to-buildpack contract that is well-defined and that incorporates learnings from maintaining production-grade buildpacks for years at both Pivotal and Heroku.
Cloud Native Buildpacks embrace modern container standards, such as the OCI image format. They take advantage of the latest capabilities of these standards, such as cross-repository blob mounting and image layer "rebasing" on Docker API v2 registries
Using the knowledge of the many years of experience with buildpacks, the CloudFoundry buildpack engineering team created the Paketo.io project which is based on former CloudFoundry Buildpacks .
Paketo is an implementation of the Cloud Native Buildpack interface specification for a wide variety of languages (e.g. .Net, Go, Node.js, Java, Ruby or PHP).
The Paketo Liberty buildpack provides the Open Liberty runtime to a workflow that produces an Open Container Initiative (OCI) image that can run just about anywhere.
Advantages:
You can build your application without creating a Dockerfile!
Advanced Caching: Paketo buildpacks use built-in caching to improve performance so you can quickly rebuild your application by updating only the layers that have changed.
Bill-of-Materials: a built-in software bill of materials (SBOM) support provides insights into the contents of the application image.
Minimal Application Image: images contain only what is necessary.
Reproducibility: reproduce the same application image digest by re-running the build.
Auto-detection: images are built directly from application source.
Rebasing: instantly update base images without rebuilding your source code by patching the OS layer of your image
Now what?
With your OCI image, you can run your application locally with the docker run command.
Now run your application:
docker run --rm -p 9080:9080 myapp
or deploy your application to any Kubernetes-based platform, such as Red Hat OpenShift, by using an Open Liberty operator
Telepresence allows you to swap a pod running in Kubernetes with a service running locally. All requests to the pod in Kubernetes are redirected to the local URL and port.
Cloud Native Computing Foundation Sandbox project
https://heidloff.net/article/debugging-microservices-kubernetes/
Can help with debugging
Telepresence consists of two core architecture components: the client-side (CLI) telepresence binary and (Kubernetes) cluster-side traffic-manager and traffic-agent.
1
The `telepresence connect` command utilizes the traffic-manager to establish a two-way (proxied) tunnel between your local development machine and the cluster. Now you can access remote K8s Service as if they were running locally.
2
Running `telepresence intercept service-name` triggers the traffic-manager to install a traffic-agent proxy container that runs within the Pods associated with the target Services. This can route remote traffic to your local dev machine for dev and test.