This document provides an overview of microservices for Java architects by Derek Ashmore. It begins by introducing Ashmore and his background. The document then discusses what microservices are, how they differ from traditional monolithic architectures, and considerations for designing microservices like service boundaries, handling failures, ensuring data integrity and performance. It also covers packaging and deployment options for microservices like Spring Boot and Docker. Finally, it addresses some common misconceptions about microservices and provides additional resources for further reading.
CIRCUIT 2015 - Akamai: Caching and BeyondICF CIRCUIT
Puru Hemnani - ICF Interactive
The session will go over the advantages of CDN in general and Akamai caching in particular. Akamai is one of the most commonly used caching option with AEM and several clients use it. There are several features and akamai tuning options such as Error caching, GeoRouting, ESI, Siteshield, WAF that can help developers and system engineers make the sites faster and secure. Configuring it correctly can also reduce the licensing requirements for AEM as well as infrastructure costs as you can serve much higher amount of traffic with less number of origin servers.
Concurrency at Scale: Evolution to Micro-ServicesRandy Shoup
Most large-scale web companies have evolved their system architecture from a monolithic application and monolithic database to a set of loosely coupled micro-services. Using examples from Google, eBay, and KIXEYE, this talk outlines the pros and cons of these different stages of evolution, and makes practical suggestions about when and how other organizations should consider migrating to micro-services. It concludes with some more advanced implications of a micro-services architecture, including SLAs, cost-allocation, and vendor-customer relationships within the organization.
William Brander and Sean Farmar show how the monitoring game changes when a system becomes distributed and you start delving into the world of microservices.
Learn:
* Why monitoring changes in distributed systems
* A monitoring philosophy that ensures all bases are covered
* The aspects of monitoring that affect asynchronous messaging systems
Architecting for Failures in micro services: patterns and lessons learnedBhakti Mehta
This document provides an overview of architecting microservices for failures based on the presenter's experience. It discusses the path from monoliths to microservices, challenges that emerge at scale including failures, and lessons learned for making systems resilient. The presentation covers failure prevention patterns like circuit breakers, timeouts, retries, and bulkheads. It also discusses monitoring techniques like health checks, metrics, and phased rollouts for new features. The goal is to anticipate failures and design systems that can withstand transient errors and continue functioning.
Roman Rehak: 24/7 Database Administration + Database Mail UnleashedMSDEVMTL
7 octobre 2014
Groupe SQL
Sujets: 24/7 Database Administration & Database Mail Unleashed
Conférencier: Roman Rehak from Burlington
24/7 Database Administration
Keeping your SQL Server databases available 24/7 is a very challenging task. This presentation will discuss the issues and challenges involved, possible strategies, and provide many recommendations about how to make sure your environment remains available around the clock. The presenter manages a team of DBAs responsible for several ecommerce websites with high required uptime so this presentation will be very much "from the trenches" material.
Database Mail Unleashed
SQL Server provides a mailing framework called Database Mail. You will learn how Database Mail works, how to set it up, how to use it effectively for notifications, and other every daily database administration tasks.
This document provides an overview of system administration basics including hardware, virtualization, networking, load balancing, databases, monitoring, integration, and vendor management. It discusses topics such as choosing hardware vendors, datacenter requirements, hardware sizing, redundancy, virtualization platforms, application and database server virtualization, networking components like firewalls and switches, load balancing options, database best practices around backups, compression, and indexes, monitoring tools, integration, and managing relationships with software vendors and support.
Blake Crosby Julian Dunn Media Operations and Technology CBC/Radio-Canada Cache Optimization & Origin Infrastructure Reduction Using Akamai Site Delivery
The document discusses how CBC/Radio-Canada optimized caching and reduced origin infrastructure using Akamai site delivery. Some of the key strategies used were setting default blanket caching rules, heavy leveraging of conditional GET requests, categorizing content into different TTL buckets, and enabling last mile acceleration. These techniques helped reduce origin costs and footprint while still maintaining a high level of content freshness and performance.
Web application optimization techniques include optimizing at the application layer through database optimization, query caching, and code caching. Optimization also occurs at the presentation layer through cache control and minifying web content. Browsers cache resources using headers and validation of cached resources occurs periodically. Tools like Yslow and Firebug can analyze performance, and web servers can be tuned through expiration headers, gzip/deflate compression, and other techniques.
Akka is an open source toolkit for building highly concurrent, distributed, and fault-tolerant applications on the JVM. It uses the actor model and software transactional memory to provide a higher level of abstraction for writing scalable applications compared to lower-level concurrency primitives. Akka embraces the "let it crash" model of fault tolerance used in telecom to build self-healing systems and aims to make building reliable distributed systems easier.
This document provides an overview of web server fundamentals, including:
- A web server receives requests from browsers, retrieves resources like HTML files, and sends them back with an HTTP response.
- Common response status codes include 200 for success and 404 for "not found".
- Factors to consider in establishing a web presence include goals, resources, site usage, control needs, and technology requirements.
- Options include a small local server, ISP space, free hosting, or paying for hosted space or a dedicated server.
Making communication across boundaries simple with Azure Service BusParticular Software
There are times when you should consider setting up secure communications between your software components across network boundaries.
Here are just a few:
* Your application is enormous (e.g., the global deployment of a marketing site targeting billions of people)
* Remoteness (e.g., your company has branch office locations around the globe)
* Your network constraints prevent communication (e.g., your machines in Azure Cloud Services are unable to talk to each other directly)
* You don't know the network conditions (e.g., IoT or mobile devices)
Yves Goeleven and Sean Feldman show how to overcome such challenges using Azure Service Bus.
Bhakti Mehta presented on architecting microservices for failures and lessons learned. Some key points include:
1) When developing microservices, techniques like circuit breakers, timeouts, retries, and rate limiting can help avoid cascading failures.
2) extensive testing including load testing and failure injection testing should be done before production deployment.
3) After deploying to production, continuous monitoring of metrics and health checks is important to quickly identify issues.
Scaling Confluence Architecture: A Sneak Peek Under the HoodBhakti Mehta
Atlassian’s Confluence is content collaboration software that changes how modern teams work. It is trusted by more than 35,000 teams and millions of users. This session presents a deep dive to provide insights into how the Confluence architecture has evolved into its current form. It discusses how Atlassian deploys, runs, and operates at scale and challenges encountered along the way. Using examples of real-life incidents, the session covers best practices and lessons learned for building resilient, stable, and predictable services. Learn how Atlassian isolated the impact of failures and blast radius by microservice sharding and proper tuning, and hear about strategies for dependency scaling, failure injection, deployment pipelines, and end-to-end testing.
Running your app in the Cloud is all the rage, but our tools for managing and supporting complex environments lag behind our needs. If we truly want to embrace Infrastructure as a Service, then we must apply standard software development lessons such as: DRY, Versioning, Decomposition, Abstraction and more. Why haven't we taken these lessons to heart?
This document discusses designing microservices architectures. It begins by defining microservices as small, autonomous services that work together. The benefits of microservices include continuous innovation, independent deployments, and fault isolation. Challenges include complexity, testing, and service discovery. Key principles in designing microservices are modeling them around business domains, making each independently deployable, and decentralizing all components. Additional topics covered include service boundaries, communication patterns, data management, and monitoring microservices applications. The document provides examples and recommendations for implementing microservices on Azure.
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. Key characteristics of cloud computing include on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. Cloud computing provides opportunities for lower costs, improved performance and scalability, universal access to documents and data, and easier collaboration. However, it also poses disadvantages such as reliance on a constant internet connection and potential security and availability issues.
Sample code: https://github.com/cqsupport/webinar-aem-monitoring-maintenance
Webinar Recording: https://my.adobeconnect.com/p9du34yji38
Monitor and maintain your AEM optimally. Eliminate performance slowdowns
To manage and deliver content swiftly, you need a steady CQ environment. You can maximize the performance using the built-in monitoring and maintenance tools.
This document summarizes a presentation about how PBS streams video online. It discusses:
- PBS's goal of making video accessible everywhere by everyone, which affects how they stream video.
- Common video formats like MPEG-2, MPEG-4 with H.264, and niche formats. H.264 is widely supported but has licensing fees.
- Video streaming methods like HTTP, RTMP, HLS, and others. PBS uses HLS for mobile and RTMP with Flash for desktop.
- Considerations for video playback like ads, captions, and customization. PBS uses multiple players for different devices and formats.
Microservices for Java Architects (Indianapolis, April 15, 2015)Derek Ashmore
Slide deck for presentation given to the Indianapolis Java Users Group on April 15, 2015.
For some reason, Slideshare doesn't like the hyper-links in the presentation. Here's a PDF version for which the hyper-links work: https://drive.google.com/file/d/0BywOAPVO4FvATEZ5V052a2lrZEk/view?usp=sharing
Aws Lambda for Java Architects - Illinois JUG-Northwest -2016-08-02Derek Ashmore
Derek C. Ashmore presented on AWS Lambda for Java architects. He began with an overview of what AWS Lambdas are, which are custom codes that AWS runs on demand in a serverless computing model. Lambdas are event-driven and stateless. He then discussed developing Lambda functions using the RequestHandler interface in Java, deploying Lambda code, and supporting resources for Lambdas. Ashmore also covered using Lambdas for microservices and common patterns. In the question period, he acknowledged that Lambda documentation is lacking and cold start times can be inconsistent, while stateful optimizations are difficult.
Refactoring Into Microservices 2016-11-06Derek Ashmore
This presentation was given to the Software Development Community (SDC) on November 6, 2016.
Microservices architecture has become a widely popular topic. Most of us are aware of what microservices are and the problems they are meant to solve. Most microservice implementations were originally monolithic applications that grew too large and complex to support. However, refactoring into microservices is much easier said than done.
This presentation will provide you guidance for refactoring a monolithic application into microservices. I'll provide an overview of the entire process along with best practices and common mistakes along the way. This presentation is meant to be platform-generic; you can use these concepts on applications written in any programming language. This presentation is targeted for senior developers and tech leads.
Aws Lambda for Java Architects CJug-Chicago 2016-08-30Derek Ashmore
This document provides an overview and agenda for a presentation on AWS Lambda for Java architects. The presentation covers:
- What AWS Lambdas are and their benefits and limitations
- Developing Lambda functions in Java, including implementing request handlers and using the execution context
- Tools for supporting Lambda functions, such as logging and third party libraries
- Using Lambdas for microservices and event-driven architectures
The agenda includes sections on the "What" and "Why" of AWS Lambda, developing Lambda functions, supporting Lambda functions, using Lambdas for microservices, and a summary with Q&A. Sample code examples are provided on the speaker's GitHub page.
Refactoring Into Microservices 2016-11-08Derek Ashmore
Derek C. Ashmore gave a presentation on refactoring a monolithic application into microservices. He defined what a monolith is and the problems it can cause, such as being hard to change and having long test cycles. Ashmore discussed how breaking a monolith into smaller microservices can increase speed to market and lower business risk. He provided tactics for different types of monoliths, such as separating a user interface or factoring out independent services. Common challenges like handling shared code and reporting were also addressed.
Microservices for architects los angeles-2016-07-16Derek Ashmore
Derek C. Ashmore gave a presentation on microservices where he discussed: the definition and benefits of microservices; design considerations like service boundaries, failure handling patterns, and addressing cross-cutting concerns; when microservices make sense to use; and common mistakes to avoid like inappropriate service boundaries. The presentation provided examples of code and further resources on microservices.
Aws Lambda for Java Architects - JavaOne -2016-09-19Derek Ashmore
Derek C. Ashmore gave a presentation on AWS Lambda for Java architects. He began with an introduction of himself and his background. The presentation covered what AWS Lambda is, how to develop Lambda functions in Java, tools to support Lambda development, using Lambdas for microservices, and answered chief complaints about Lambda. Ashmore provided implementation tips and pointed to additional resources for further reading on AWS Lambda.
AWS Lambda Deployments: Best Practices and Common Mistakes O'Reilly Software...Derek Ashmore
Derek C. Ashmore gave a presentation on AWS Lambda deployments, best practices, and common mistakes. The presentation covered what AWS Lambdas are, their benefits and limitations, developing Lambda functions using different programming languages, deploying Lambdas using API Gateway and SNS, and tales from the field about common issues. The presentation provided resources for sample code and addressed questions about performance, using Lambdas for microservices, and the future of serverless computing.
This document discusses patterns for scaling systems incrementally. It introduces the ACD/C approach of making systems async, caching results, distributing work, and compromising on consistency as needed. Specific architectures like map reduce and distributed queues are presented. The challenges of partial failures, upgrades, and changing topologies are discussed. Testing is emphasized as critical for managing scaled systems.
Azure architecture design patterns - proven solutions to common challengesIvo Andreev
Building a reliable, scalable, secure applications could happen either following verified design patterns or the hard way - following the trial and error approach. Azure architecture patterns are a tested and accepted solutions of common challenges thus reducing the technical risk to the project by not having to employ a new and untested design. However, most of the patterns are relevant to any distributed system, whether hosted on Azure or on other cloud platforms.
How do effective large-scale service ecosystems work? Keynote Presentation at Istanbul Tech Talks 2018
How to Design Services
* Systems of record
* Interface specification
* Interface backward / forward compatibility
Service Ecosystems
* Layered services
* "Standardization" through encouragement
* Vendor-customer relationships between teams
Operating and Deploying Services
* Data Migration
* Automated Pipelines
* Incremental Deployment
* Feature Flags
Exploring Twitter's Finagle technology stack for microservices💡 Tomasz Kogut
This document summarizes a presentation about Finagle, Twitter's microservices technology stack. It discusses how Finagle addresses challenges with microservices like service discovery, load balancing, and request tracing across services. It presents Finagle's core abstractions like Futures, Services, and Filters. Services represent both clients and servers, and Filters can add functionality like retries and timeouts. The document also mentions Twitter Server, a framework for building Finagle-based servers that handles flags, logging, metrics and admin interfaces. Finally, it briefly introduces Finatra, which builds on Finagle and Twitter Server and adds features like dependency injection and routing.
The document discusses strategies for transitioning from monolithic architectures to microservice architectures. It outlines some of the challenges with maintaining large monolithic applications and reasons for modernizing, such as handling more data and needing faster changes. It then covers microservice design principles and best practices, including service decomposition, distributed systems strategies, and reactive design. Finally it introduces Lagom as a framework for building reactive microservices on the JVM and outlines its key components and development environment.
This is a small introduction to microservices. you can find the differences between microservices and monolithic applications. You will find the pros and cons of microservices. you will also find the challenges (Business/ technical) that you may face while implementing microservices.
Single Page Applications: Your Browser is the OS!Jeremy Likness
Single Page Applications have gained tremendous popularity over the past few years and have prompted the creation of several frameworks to support their development. Unlike traditional web applications, most of the heavy lifting for SPA happens on the client side in your web browser. These applications rely on hundreds of lines of JavaScript coupled with asynchronous web service calls to provide a desktop-like experience that is accessible from virtually any device.
Join Principal Architect, Jeremy Likness, to learn more about SPA, including how to determine when you should choose this approach, how SPA compares and contrasts with traditional server-based approaches including ASP.NET WebForms and MVC, and what frameworks and tools (such as jQuery, AngularJS, and Aurelia) make building SPA easier. Discover how single page applications powered by HTML5 and JavaScript transform your browser into a web-based operating system.
The document discusses the Apache SOA stack and debunks some myths about SOA. It provides an overview of the Enterprise Service Bus (ESB) and explains why the Apache ServiceMix stack is a good choice as an ESB due to its modularity, stability, and cluster capabilities. The document also discusses how to design software and build systems for an ESB using OSGi and Maven.
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Startupfest
You're building your startup and you know it will be big. You don't want to spend a lot of time on infrastructure, but you also don't want to be putting out fires after you get mentioned on Hacker News. In this session, we will give you real practical tips that you can take home with you on building an infrastructure that will scale quickly with minimal up front work on your part, using time tested techniques in infrastructure as code, SaaS, and Serverless, among other things.
Resilience planning and how the empire strikes backBhakti Mehta
t is well said that "The more you sweat on the field, the less you bleed in war". Failures are an inevitable part of complex systems. Accepting that failures happen, will help you design the system's reactions to specific failures.
This talks on best practices for building resilient, stable and predictable services: preventing cascading failures, timeouts pattern, retry pattern,circuit breakers and other techniques which have been pervasively used at Blue Jeans Network. Join me in this talk which ensures that the show must go on in spite of random load, stress or other failures!
Why test automation is getting more difficult, and what can be done about it. This slides are from a presentation by Group Director, Product Management at TestPlant, Gordon McKeown, which was presented at the Northern Lights conference in Manchester in April 2016.
- Debugging microservices presents key challenges due to their distributed nature across multiple processes. Observability techniques like logging, monitoring and tracing are important to gain visibility.
- Telepresence allows debugging services locally by intercepting requests to emulate the environment without needing to deploy to the cluster. Telepresence v1 swaps the deployment entirely for local debugging, while v2 intercepts specific ports/requests.
- Choosing between Telepresence v1 and v2 depends on use cases - v1 is better for consuming messages while v2 is better for intercepting specific ports/requests without a full deployment swap. Both provide useful debugging capabilities for microservices running in Kubernetes.
Debugging Microservices - key challenges and techniques - Microservices Odesa...Lohika_Odessa_TechTalks
Microservice architecture is widespread our days. It comes with a lot of benefits and challenges to solve. Main goal of this talk is to go through troubleshooting and debugging in the distributed micro-service world. Topic would cover:
main aspects of the logging,
monitoring,
distributed tracing,
debugging services on the cluster.
About speaker:
Andrеy Kolodnitskiy is Staff engineer in the Lohika and his primary focus is around distributed systems, microservices and JVM based languages.
Majority of time engineers spend debugging and fixing the issues. This talk will be dedicated to best practicies and tools Andrеys team uses on its project which do help to find issues more efficiently.
Java EE microservices architecture - evolving the monolithMarkus Eisele
With the ascent of DevOps, microservices, containers, and cloud-based development platforms, the gap between state-of-the-art solutions and the technology that enterprises typically support has greatly increased. But some enterprises are now looking to bridge that gap by building microservices-based architectures on top of Java EE.
In this webcast, Red Hat Developer Advocate Markus Eisele explores the possibilities for enterprises that want to move ahead with this architecture. However, the issue is complex: Java EE wasn't built with the distributed application approach in mind, but rather as one monolithic server runtime or cluster hosting many different applications. If you're part of an enterprise development team investigating the use of microservices with Java EE, this webcast will guide you to answers for getting started.
The document discusses Cloudify, an open source platform for deploying, managing, and scaling complex multi-tier applications on cloud infrastructures. It introduces key concepts of Cloudify including topologies defined using TOSCA, workflows written in Python, policies defined in YAML, and how Cloudify ties various automation tools together across the deployment continuum. The document also provides demonstrations of uploading a blueprint to Cloudify and installing an application using workflows, and discusses how Cloudify collects logs, metrics and handles events during workflow execution.
This document discusses server-side programming and servlets. It defines a web application as an application accessible from the web, composed of web components like servlets that execute on the web server. It describes CGI technology and its disadvantages. It then discusses server-side scripting, why server-side programming is important for enterprise applications, and the advantages it provides over client-side programming. The document outlines different types of server-side programs and provides details on servlets, the servlet container, servlet API, and the servlet lifecycle.
Are you jumping on the microservices bandwagon? When and when not to adopt micro services architecture? If you must, what are the considerations? This slidedeck will help answer a few of those questions...
This document compares and contrasts microservice architecture (MSA) and service-oriented architecture (SOA). SOA defines application components as loosely coupled services that communicate over a network, while MSA develops applications as suites of small services communicating via lightweight mechanisms like REST. The document also discusses Netflix's transition from a monolithic to a microservices architecture led by Adrian Cockcroft, highlighting benefits like speed, autonomy, and flexibility.
Similar to Microservices for java architects it-symposium-2015-09-15 (20)
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
Transcript: Details of description part II: Describing images in practice - T...BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
7 Most Powerful Solar Storms in the History of Earth.pdfEnterprise Wired
Solar Storms (Geo Magnetic Storms) are the motion of accelerated charged particles in the solar environment with high velocities due to the coronal mass ejection (CME).
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Mitigating the Impact of State Management in Cloud Stream Processing SystemsScyllaDB
Stream processing is a crucial component of modern data infrastructure, but constructing an efficient and scalable stream processing system can be challenging. Decoupling compute and storage architecture has emerged as an effective solution to these challenges, but it can introduce high latency issues, especially when dealing with complex continuous queries that necessitate managing extra-large internal states.
In this talk, we focus on addressing the high latency issues associated with S3 storage in stream processing systems that employ a decoupled compute and storage architecture. We delve into the root causes of latency in this context and explore various techniques to minimize the impact of S3 latency on stream processing performance. Our proposed approach is to implement a tiered storage mechanism that leverages a blend of high-performance and low-cost storage tiers to reduce data movement between the compute and storage layers while maintaining efficient processing.
Throughout the talk, we will present experimental results that demonstrate the effectiveness of our approach in mitigating the impact of S3 latency on stream processing. By the end of the talk, attendees will have gained insights into how to optimize their stream processing systems for reduced latency and improved cost-efficiency.
2. Who am I?
Professional Geek since 1987
Java/J2EE/Java EE since 1999
Author of “The Java EE Architect’s Handbook, Second Edition”
Roles include:
• Developer
• Architect
• Project Manager
• DBA
• System Admin
3. Discussion Resources
This slide deck
• http://www.slideshare.net/derekashmore
Sample code on my Github
• https://github.com/Derek-Ashmore/
Sample Java Microservice (Moneta)
• https://github.com/Derek-Ashmore/moneta
Slide deck has hyper-links!
• Don’t bother writing down URLs
5. What are Microservices?
No concrete definition
Common microservice traits
• Single functional purpose
Most/all changes only impact one service
Not dependent on execution context
• “loosely coupled”
Independent process/jvm
Standard Interface (typically Web Service/REST)
Analogy: Stereo system, Linux utilities
6. Traditional Java EE Application Architecture
Like a layer cake
Highly cohesive
Defined dependencies
Deployed as one unit
(war/ear)
Limited Scalability
• Code Size
7. What is a Monolith?
Hard to change
• QA test cycles are long
• Change causes unintended consequences
Hard to onboard new developers
Married to your technical stack
Harder to diagnose bottlenecks and memory issues
8. Refactoring into Microservices
Databases physically
separated
What to do with
common data needs?
• Service call or
• Data copy
9. No Technical Stack Lock-in
Platform agnostic
• Freedom to choose database platform
• Freedom to choose languages / frameworks
Fewer dependency conflicts
Still have cross-cutting concerns
• “Toll” for first app
Still have support concerns
• Others need to be able to support your work
• Don’t go ‘crazy’ with your choices
10. Easier Management / Higher Throughput
Easier to manage large numbers of developers
• Concentrate on intelligently drawing service boundaries
• Manage/enforce service contracts
Each service team works independently
Team independence leads to higher development throughput
11. Isn’t this SOA?
Yes – More or less
No concrete definitions
SOA == dumb endpoints and smart routes
• ESB routes using Mule, Camel, etc.
• Transformations en route
MS == dumb routes and smart end-points
• Simple routes
Usually REST or Soap calls via http(s)
Persistent queue route at it’s most complex
Analogy: Electrical supply for Stereo
13. Design considerations
Service Boundaries (gerrymandering)
Service call Failure / Unavailability
Data Integrity
Performance
14. Service Boundaries
Core Services
• Services responsible for maintaining a specific business area data
• Usually named after Nouns
Service is a system of record for a <blank>
• Student, Course, Classroom, etc.
Process Services
• Services responsible for performing single complex tasks
• Usually represents an Action or Process
Service is responsible for processing <blank>
• Student applications, Debt collection, etc.
• These services rely on core services
Partitioning is an art
• Too few same drawbacks as traditional architecture
• Too many excessive network hops
15. Boundary Sanity Check
Verbalize a mission statement in one sentence in business terms
• Examples
This service is the system of record for Student information
This service registers students for classes
This service suspends students
This service records student payments
This service produces official transcripts
16. Context Independence Check
Does your service have multiple consumers?
• Could it?
Could your service execute as easily in batch as online?
• If ‘No’, then you’re making context assumptions
Warning Signs
• Spending time analyzing service call flow
Your services likely make context assumptions
• Agonizing over which service should do a given activity
Maybe you need a new service
17. What about Code Base Size?
Microservices are not about size!
• They are about having a single business purpose
Microservices ‘happen’ to have a smaller code base
• Results from their single business focus
18. Designing for Failure
Dependent services could be down
• Minimize human intervention
• Fail sooner rather than later
• Horizontal scaling / clustering is your first line of defense
• Coding patterns can help as a backup
Common Patterns:
• Retry
• Circuit Breaker
• Dispatch via Messaging
19. Retry Pattern
Best for asynchronous tasks
Limit the number of tries
Use sleep interval between tries
Only addresses temporary outages
Sample Retry Pattern implementation here.
Tooling Support:
• Apache CXF supports Retry
• Spring Batch RetryTemplate
• Apache HttpClient (Example here)
21. Circuit Breaker (continued)
Objective: Error out sooner
• Conserves resources
• Automatically “recovers” after a time period
Modeled after home circuit
Works on thresholds
• Number of errors required to trip circuit
• Amount of time required to attempt retry
Has Hysterix support
Best embedded in interface clients / delegates
More information here.
Sample Circuit implementation here.
22. Dispatch via Messaging
Place work instruction on persistent queue
If receivers are down, work stacks in queue
Work throttled by number of receivers
Queue can be JMS or AMQP
Tooling Support:
• JMS Api (easy API – many use natively)
• Spring JMSTemplate or RabbitTemplate (producer)
23. Designing for Performance
More network traffic
• Make services course-grained
• User Interfaces need a general manager
• Horizontal or Vertical Scaling helps
Common Patterns:
• Back-ends for Front-ends (a.k.a. API Gateway)
• Dispatch via Messaging
• Expiring Cache
25. Back-ends for Front-ends (continued)
Consolidates service calls for the browser
• Enhances performance
Open web often not as performant as local LAN
Also known as “API Gateway”
Implications
• Don’t expose microservices directly to the browser
27. Expiring Cache (continued)
Look up data once and cache it
• Evict data from the cache after a defined time period
• Sometimes known as “Cache Aside”
• Reduces network calls for data
• Trades memory for speed
• More information here
When to use
• Only use with static data
• Different clustered nodes “could” have different data for a short time
Tooling Support:
• I recommend Google Guava
• EHCache, Gemfire, and other tools available
28. Designing for Integrity
Services are context independent
• Have no knowledge of how/when they are executed
One service == One Transaction
• Two-phase commits/rollbacks are a much larger problem
Common Patterns:
• Custom Rollback
Write your own reversing transaction
31. Packaging Support
Microservices are deployed as a process
• For Java, embedded containers are easy
• Spring Boot
• Dropwizard
Docker – standardizes the process deployment and environment
32. Spring Boot
Packages Java EE application into *one* deployment jar
• java –jar myApp.jar
Support for health checks and other admin add ons via ‘Actuator’ add-on
Supports either Jetty or Tomcat
Best for ‘Spring-mvc’ apps
• For non-spring apps, it’s swimming upstream
Required artifacts
• Maven
spring-boot
spring-boot-starter-jetty (tomcat is available)
spring-boot-starter-actuator (optional – health checks, etc.)
• Application class with public static void main()
Configuration coded (usually into the application class)
Will read application.properties (app-specific properties)
33. Dropwizard
Packages Java EE application into *one* deployment jar
• java –jar myApp.jar server myConfig.yaml
Provides file configuration options (yaml format)
• Database connection pools
• Logging config
• Port and other container specs
Provides easy metrics/healthcheck support
Uses Jetty
Required artifacts
• Application class (with main())
• Maven: dropwizard-core, maven-shade-plugin
34. Docker
Is a “mini VM”
• runs a linux kernal
• Compare to shipping container
• Standard “connections” to outside world
Supported formally by Oracle, Tomcat, Jboss, and many more
Docker is Win-Win
• Easier for OPS and system administrators
All software looks the same
Standard interface for disk and network resources
• Containers can be “linked”
Inherently automated
• Easier for developers
Fewer environment difference issues
Less to communicate to OPS / system administrators
Easy to leverage work of others (docker-hub)
• If you haven’t tried Docker yet – you should!
36. Where’s the marketing fluff?
Easier to manage
• Maybe
You *must* be good at contract management
You *must* be good at specifying precisely what a microservice needs to do
You *must* ensure that services make no assumptions on how they get
invoked
Easier for developers to “understand” applications
• No – sorry
It is easier to understand a particular ‘cog’ in the machine (e.g. the function of
one service
It is *not* easier to understand how microservices fit together to provide a
particular piece of business functionality
37. Where’s the marketing fluff? (continued)
Increased Development Throughput
• Maybe
Harder for business to ‘test’ a business function for a specific combination of microservices
Developers work on *one* service at a time.
You *must* be good at error detection (unintended consequences)
The more assumptions a service makes about its execution context, the more unintended
consequences (e.g. errors) you are likely to have on deployment
Services become disposable and can be “replaced” instead of “maintained / fixed”.
• Maybe
It’s more easily replaced than when using traditional architectures
Requires rigorous contract testing
• Can’t have the “replacement” act any differently than the original (except for the bug being
fixed, of course)
Requires architecture support for cross-cutting concerns
• Can’t take a lot of time to implement / test
38. Further Reading
Microservices reading list
http://www.mattstine.com/microservices
Microsoft’s Cloud Design Patterns
https://msdn.microsoft.com/en-us/library/dn600223.aspx
Moneta Java microservice example
https://github.com/Derek-Ashmore/moneta
This slide deck
http://www.slideshare.net/derekashmore