Should Information Management systems apply the services architecture? Many data provisioning and BI systems are monolithic, tightly coupled, difficult to scale, and stumble when it comes to delivering MVP in a timely manner. They also don't implement Privacy by Design.
Data as a Service delivers MVP of real-time data management, while implementing privacy practices and avoiding many of the anit-patterns that traditional data provisioning and BI systems portray. Unlike traditional BI tooling, building out a Data as a Service system doesn't require high up-front costs and the welding of multiple products.
Get hands-on experience learning how the Rust language, a Kafka broker, and DaaS and PbD SDK can be used to build out a DaaS platform that delivers faster and more scalable solutions to your customer.
In this workshop we will walk-through and implement the key components of the Data as a Service architecture pattern by building out a simple real-time event driven online report.
In this workshop you will learn:
All you'll need is a computer with an internet browser (Chrome or Firefox, ideally)!
Virtual developer slices will be provided during the workshop by IAPP.org
See the Workshop GitHub repository for more details.
Architecture is not a static representation of a system. There are several complexities and risks involved in creating them. One way to mitigate the risk is to evolve the architecture. But, there are risks of evolving as much as there are the risks of not evolving. In this interactive workshop we will explore a set of practices that we can use to mitigate the risks. Then we will dive into discussing some common and popular architectural patterns.
Finally, we will take some example applications and discuss how to evolve architecture to meet the needs of those applications.
Computer with git client installed to access the version control system which will have lab related material.
AWS Certified Architect is one of the hottest and most valuable certifications in 2021. Amazon Web Services is one of the most popular cloud platforms around.
Abilities Validated by the Certification are:
– Effectively demonstrate knowledge of how to architect and deploy secure and robust applications on AWS technologies.
– Define a solution using architectural design principles based on customer requirements
– Provide implementation guidance based on best practices to the organization throughout the life cycle of the project
In this workshop, we will explore the following topics with hands-on labs:
– Design using compute, networking, storage, and database AWS services, EC2, S3 storage, RDS, DynamoDB
– AWS deployment and management services, Cloud Formation, Identity Access Management
– API Gateway, Route 53
– Serverless architecture, AWS Lambda, Step Functions
– Simple Notification Service (SNS), Simple Queue Service(SQS)
– AWS Cloud Watch, AWS CloudTrail
– Identify and define technical requirements for an AWS-based application
– Recommended best practices for building secure and reliable applications on the AWS platform
– Architectural principles of building on the AWS Cloud
– AWS global infrastructure
– Network technologies as they relate to AWS, Virtual Private Cloud
– Security features and tools that AWS provides and how they relate to traditional services
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Please get free tier AWS account from following link:
https://aws.amazon.com/
AWS Account with free tier
Windows, Mac or Linux PC/laptop
Many developers around the world have jumped on the Microservices bandwagon. Several organizations, in the past and also in the present, have built around monolithic and also service oriented architectures. What separate, however, Microservices from those efforts at large? How does a Microservices based architecture influence the design of the software applications, what are the key design principles we should keep in mind, and how to leverage design goals like reuse and extensibility?
In this presentation we will revisit the design goals we often focus on in software development and how those evolve in the context of Microservices.
Want to bring in [new cool thing X] or [necessary technology change Y] to your company, because you know there's a need for it? GOOD IDEA! Except…now what? If your company is more than about 3 people, how do you explain, enable, and encourage the adoption of this change, especially if it will require some work on everyone’s part?
In How to Technology Good, Josh and Laine will explain how bringing in technology is subject to one of the biggest problems in IT - how to scale it. They'll also talk about tips and tricks for how to be as successful as you can, and the main things to keep track of and watch out for. They'll go through each phase of bringing in new tech, all the way from how to pick your success criteria through what to think about when it comes to maintenance.
The hardest parts of technology are people and what they do - so, culture and process. In the center of that is how to determine the right amount of oversight when implementing technology or the processes around that technology. That “right amount of oversight” is typically referred to as “governance.”
In this talk, Josh and Laine will explain that there is no one right answer for the right amount of oversight, but there are some best practices to keep in mind. There are also some ways to make it easier to think and talk about governance as a whole, and to deliberately apply it. They'll also go over what the wrong amounts of governance look like and give some tips about how to try to correct it when you see it.
Secure, Efficient, Resilient, High-performing, Sustainable, and Cost-effective
Are your applications well-architected? This talk will explore the best practices for operational excellence, Security, Reliability, Performance Efficiency, and cost optimization. Think of systems and services which provide business values. Do you know if all of these services are well-architected? You will learn how to create mechanisms, a repeatable process that allows you to improve over time. We will explore the best practices using real-world examples to make them more concrete and actionable.
Well-Architected helps cloud architects build secure, high-performing, resilient, and efficient infrastructure for various applications and workloads. They are built around six pillars—operational excellence, security, reliability, performance efficiency, cost optimization, and sustainability.
Join expert Rohit Bhardwaj to gain the knowledge and skills you need to solve current cloud implementation problems.
What you'll learn — and how you can apply it
By the end of this live, hands-on, online course, you'll understand the following:
– How to create responsive, maintainable, extensible architecture
– How to manage identities for people and machines and understand the significance of role-based, service-based, and attribute-based access
– How to design network topology and protect your network resources
– How to design interactions in a distributed system to prevent failures and improve performance and resiliency
– How to select the best-performing architecture and choose performant storage and databases
– How to manage demand and supply resources
– How to take advantage of user behavior patterns to support your sustainability goals
Topics covered:
Design Principles
– Scaling patterns
– Architecture Design Principles
– Capacity calculations
– Impact of data on design decisions
– Shared Responsibility Model
Reliability
– Resilient Architecture principles
– Herds of complex real-time distributed systems
– Hands-on Exercises / Case Studies
– Blast radius- fault isolation to protect your workload
– Availability patterns
– Recovery Point Objective and Recovery Time Objectives
– Data backup data patterns
– Routing Strategies
– Service quotas and constraints
– Design your workload service architecture
– Failure management in a distributed system
– Monitoring workload resources
– Calculating the response times
– Fallacies of Distributed Systems
– Testing reliability
– Cost Optimization
– Design cost-optimized storage
– Cost-optimized compute
– Data transfer costs
– Manage demand and supply resources
– Hands-on Exercises / Case Studies
Sustainability
– User behavior patterns
– Data access and usage patterns
– Development and deployment processes
– Hands-on Exercises / Case Studies
Performance Efficiency
– Select the best-performing architecture
– Choosing performant storage and databases?
– No-SQL for performance
– Caching strategies
– DOS attacks
– Tradeoffs to improve performance
– Evolving your workload
– Handle skewed data
– CDN networks like Cloudfront to solve the caching requirements for static and Dynamic
contents
– Monitor and set alarms for performance and network issues
– Hands-on Exercises / Case Studies
Operational Excellence
– Principles for Perform Operation Infrastructure as code
– Annotate Documentation - PlayBooks - Part of code
– Create Runbooks - Server down
– Capture failures and analyze them using Events and Real-Time Actions
– KPIs for cloud dashboard
– Incidence response - Root Cause Analysis
– Hands-on Exercises / Case Studies
Security, Privacy, and Compliance
– Manage identities for people and machines
– Identify Access Management
Role-Based, Service-Based, and Attribute-Based Access
– Securely operate your workload.
– Detect and investigate security events
– Web Application Firewall
– Virtual Private Cloud - design network topology
– Protecting your network resources
– Bastion Hosts
– Data classification
– Protecting data in Transit
– Protecting data at Rest
Hands-on Exercises / Case Studies
Secure, Efficient, Resilient, High-performing, Sustainable, and Cost-effective
Are your applications well-architected? This talk will explore the best practices for operational excellence, Security, Reliability, Performance Efficiency, and cost optimization. Think of systems and services which provide business values. Do you know if all of these services are well-architected? You will learn how to create mechanisms, a repeatable process that allows you to improve over time. We will explore the best practices using real-world examples to make them more concrete and actionable.
Well-Architected helps cloud architects build secure, high-performing, resilient, and efficient infrastructure for various applications and workloads. They are built around six pillars—operational excellence, security, reliability, performance efficiency, cost optimization, and sustainability.
Join expert Rohit Bhardwaj to gain the knowledge and skills you need to solve current cloud implementation problems.
What you'll learn — and how you can apply it
By the end of this live, hands-on, online course, you'll understand the following:
– How to create responsive, maintainable, extensible architecture
– How to manage identities for people and machines and understand the significance of role-based, service-based, and attribute-based access
– How to design network topology and protect your network resources
– How to design interactions in a distributed system to prevent failures and improve performance and resiliency
– How to select the best-performing architecture and choose performant storage and databases
– How to manage demand and supply resources
– How to take advantage of user behavior patterns to support your sustainability goals
Topics covered:
Design Principles
– Scaling patterns
– Architecture Design Principles
– Capacity calculations
– Impact of data on design decisions
– Shared Responsibility Model
Reliability
– Resilient Architecture principles
– Herds of complex real-time distributed systems
– Hands-on Exercises / Case Studies
– Blast radius- fault isolation to protect your workload
– Availability patterns
– Recovery Point Objective and Recovery Time Objectives
– Data backup data patterns
– Routing Strategies
– Service quotas and constraints
– Design your workload service architecture
– Failure management in a distributed system
– Monitoring workload resources
– Calculating the response times
– Fallacies of Distributed Systems
– Testing reliability
– Cost Optimization
– Design cost-optimized storage
– Cost-optimized compute
– Data transfer costs
– Manage demand and supply resources
– Hands-on Exercises / Case Studies
Sustainability
– User behavior patterns
– Data access and usage patterns
– Development and deployment processes
– Hands-on Exercises / Case Studies
Performance Efficiency
– Select the best-performing architecture
– Choosing performant storage and databases?
– No-SQL for performance
– Caching strategies
– DOS attacks
– Tradeoffs to improve performance
– Evolving your workload
– Handle skewed data
– CDN networks like Cloudfront to solve the caching requirements for static and Dynamic
contents
– Monitor and set alarms for performance and network issues
– Hands-on Exercises / Case Studies
Operational Excellence
– Principles for Perform Operation Infrastructure as code
– Annotate Documentation - PlayBooks - Part of code
– Create Runbooks - Server down
– Capture failures and analyze them using Events and Real-Time Actions
– KPIs for cloud dashboard
– Incidence response - Root Cause Analysis
– Hands-on Exercises / Case Studies
Security, Privacy, and Compliance
– Manage identities for people and machines
– Identify Access Management
Role-Based, Service-Based, and Attribute-Based Access
– Securely operate your workload.
– Detect and investigate security events
– Web Application Firewall
– Virtual Private Cloud - design network topology
– Protecting your network resources
– Bastion Hosts
– Data classification
– Protecting data in Transit
– Protecting data at Rest
Hands-on Exercises / Case Studies
Awareness is the knowledge or perception of a situation or fact, which based on myriad of factors is an elusive attribute. Likely the most significant unasked for skill… perhaps because it's challenging to “measure” or verify. It is challenging to be aware of aware, or is evidence of it's adherence. This session will cover different levels of architectural awareness. How to surface awareness and how you might respond to different technical situations once you are aware.
Within this session we look holistically an engineering, architecture and the software development process. Discussing:
* Awareness of when process needs to change (original purpose of Agile)
* Awareness of architectural complexity
* Awareness of a shift in architectural needs
* Awareness of application portfolio and application categorization
* Awareness of metrics surfacing system challenges
* Awareness of system scale (and what scale means for your application)
* Awareness when architectural rules are changing
* Awareness of motivation for feature requests
* Awareness of solving the right problem
The focus of the session will be mindful (defined as focusing on one's awareness), commentating in sharing strategies for heightening awareness as an architect and engineer.
When architecting a critical system the Availability of CAP theorem becomes the most important element. Architecture measures availability in 9s with 99.99% equating less than 1 hour of unplanned downtime. This session will focus on what it takes to get there.
After establishing high availability expectations and measurements, this session will dive into what it takes to establish the highest scale possible. It includes a look at infrastructure needs with a separation between capacity and scale. A look a service discovery with pro and cons of service to service dependencies. We look at infrastructure necessary such as health checks and monitoring. The session will include a look at different layers of fault domains including cross region.
Contrary to popular belief, software engineering culture is not about the free food, open office spaces, and ping pong tables.
You can sense a great team culture when you observe it, and unfortunately you've probably experienced (or are currently experiencing) elements of a bad team culture. Not to worry - it's never too late to grab the reins and make small changes to steer your team in the right direction!
In this talk, Kate will highlight 8 tactical tips that attendees can implement on their teams immediately to help shape their team's culture!
Delivering feedback is arguably the hardest part of being a leader. Eventually, the time will come when someone on your team isn’t meeting expectations, and you will be faced with a choice. You can choose to ignore the situation, hope it improves organically, and accept the toll it takes on the broader team, or you can choose to have the tough conversation.
In this interactive session, you will learn more about your communication style, a simple framework to provide actionable feedback, common red flags to watch out for, and advice on how to quickly course correct on a dev team. You’ll leave with a template for giving feedback that you can tie directly to a situation you’re currently facing as well as plenty of examples that you can leverage in the future.
Software metrics can be used effectively to judge the maintainability and architectural quality of a code base. Even more importantly, they can be used as canaries in a coal mine to warn early about dangerous accumulations of architectural and technical debt.
First we will introduce some key metrics that every architect should know (e.g., average component dependency, propagation cost, structural debt index, and more). Then we talks about the journey to create a metric to measure maintainability and introduces a new metric maintainability level. This metric is promising because its value usually matches quite well the gut feeling of developers about the maintainability of their software systems. Also covered is the use of free and commercial tools to gather metrics and follow their trends in an automated way.
A good software architecture is the foundation for any successful software system. Your architectural choices affect almost every aspect of the software you are building from maintainability to stability, scalability and cyber vulnerability. Matching software architecture patterns and styles with requirements is a difficult task that requires knowledge and experience as well as the willingness to pick the right trade-offs.
Way too often the originally intended architecture erodes during the development process making the software harder to understand, to maintain and to adapt to changing requirements. By losing architectural coherence you also lose all the other benefits coming from a good architectural foundation. This drives up cost, reduces the happiness of your development team and ultimately will also impact the users of your software negatively.
Join expert Alexander von Zitzewitz to learn the foundations of good architecture. You’ll explore the concept of architecture styles and architectural fitness functions and dive into software metrics with architectural relevance. You’ll also investigate architectural smells like cyclic dependencies and bottleneck classes along with ways to refactor to prevent quality issues.
After learning the fundamentals, you’ll do some real code analysis using a free tool called Sonargraph-Explorer. Get hands-on with basic assessment and analysis techniques as well as techniques and methods for breaking up or restructuring monolithic applications—and measure your progress every step of the way. Then we will talk about how you can enforce architectural models during development and therefore avoid the common problem of architectural erosion in the first place. At the end, we will look at techniques to break up monolithic applications into more manageable pieces.
Please register on ww.hello2morrow.com and download and install Sonargraph-Explorer. The license is free and you will need the tool if you want to actively want to join exercises. You can also bring one of your projects, if you want to analyze your own code. (Java, C#, C/C++ or Python). I will provide snapshots of some open source projects if you prefer to work with an example.
Download link for examples: https://www.dropbox.com/scl/fi/znp5m7x8giiqmkaxp6ktg/ArchConf.zip?rlkey=bifgjeqim939gv9w5noiaobvn&st=ziows6zg&dl=0
According to a CareerBuilder study, only 40% of new tech leaders receive formal training when they become a boss for the first time. The rest are forced to get scrappy to quickly equip themselves with new skills, techniques, and mindsets to effectively transition into their new roles.
This workshop was designed to fill this gap; providing tactical techniques and resources for both new and seasoned technical leaders!
In this full day workshop, you will learn how successfully navigate the complexities of Engineering Management. Topics include:
Purposeful leadership, emotional intelligence, self awareness, time management, prioritizing the right things, social styles, giving feedback, career conversations, 1:1s, psychological safety, recruiting, interviewing, onboarding, measuring team metrics, motivation, engagement, team building, and building sustainable relationships.
Interactive group exercises will help you practice these new ideas and techniques in a safe and engaging environment.
You will leave with new perspectives on Engineering Management, as well as handouts and plenty of resources to grow and further develop skills in your daily work.
Please download (and print if possible) the handout before joining this workshop! (located with session slides).
Please download (and print if possible) the handout before joining this workshop! (located with session slides).
A large part of embracing DevOps involves embracing automation. Over the last decade we have seen the emergence of “as Code” — Build-as-Code, Configuration-as-Code and Infrastructure-as-Code. The benefits to utilizing such tools are huge! We can codify the state of the world around our applications, giving us the ability to treat everything that our code needs like we treat the code itself. Version control, release management, tagging, even rolling backs are now possible.
Terraform, an open-source tool from HashiCorp allows us to build, control and modify our infrastructure. Terraform exposes a Domain-specific language (DSL) that we can use to express what our infrastructure should look like. Terraform can work with all the major cloud providers, including Amazon AWS, Google GCP and Microsoft Azure.
We will be using AWS as our playground for this workshop
Agenda
apply
-ing terraformdata
and output
in your terraform scriptsInstructions
Please visit https://github.com/looselytyped/terraform-workshop/ for detailed instructions. They might seem a tad arduous but it's not as bad as it looks :)
Please visit https://github.com/looselytyped/terraform-workshop/ for detailed instructions. They might seem a tad arduous but it's not as bad as it looks :)
A large part of embracing DevOps involves embracing automation. Over the last decade we have seen the emergence of “as Code” — Build-as-Code, Configuration-as-Code and Infrastructure-as-Code. The benefits to utilizing such tools are huge! We can codify the state of the world around our applications, giving us the ability to treat everything that our code needs like we treat the code itself. Version control, release management, tagging, even rolling backs are now possible.
Terraform, an open-source tool from HashiCorp allows us to build, control and modify our infrastructure. Terraform exposes a Domain-specific language (DSL) that we can use to express what our infrastructure should look like. Terraform can work with all the major cloud providers, including Amazon AWS, Google GCP and Microsoft Azure.
We will be using AWS as our playground for this workshop
Agenda
apply
-ing terraformdata
and output
in your terraform scriptsInstructions
Please visit https://github.com/looselytyped/terraform-workshop/ for detailed instructions. They might seem a tad arduous but it's not as bad as it looks :)
Please visit https://github.com/looselytyped/terraform-workshop/ for detailed instructions. They might seem a tad arduous but it's not as bad as it looks :)
A long time ago, in a land far far away, there were monoliths. These fabled artifacts brought consistency and stability to the land - but there was a cost in speed, agility, time, and development pain.
Whether Java EE, .NET, or something else, the big ol' integrated plexi-purpose binaries or yore (and also now…) have grown into problems that hurt developers, architects, and the execution of business goals.
In this talk, Josh and Laine will talk specifics about the pain points of monoliths, and the various strategies they've seen to alleviate that pain.
Many developers aspire to become architects. Some of us serve currently as architects while the rest of us may hope to become one some day. We all have worked with architects, some good, and some that could be better. What are the traits of a good architect? What are the skills and qualities we should pick to become a very good one?
Come to this presentation to learn about things that can make that journey to be a successful architect a pleasant one.
Spring has always been defined by its lightweight core. While there has been an overwhelming explosion in the external projects and protocols it integrates seamlessly with, it has also evolved internally to meet the needs of modern development requirements.
One of the biggest changes in the last several years has been the emergence of Reactive Spring, an attempt to embrace the idea of Reactive Systems in the Spring ecosystem. This is a vision of responsive, resilient, elastic systems. Unfortunately, code alone cannot solve the problems so this is a case where software and architecture meet.
You will learn about:
- The Reactive System vision
- How Spring absorbed these ideas without complicating or
eliminating the more conventional styles
- How to build, test and consume Reactive Spring applications
- How to architect entire Reactive chains of interacting systems
Spring has always been defined by its lightweight core. While there has been an overwhelming explosion in the external projects and protocols it integrates seamlessly with, it has also evolved internally to meet the needs of modern development requirements.
One of the biggest changes in the last several years has been the emergence of Reactive Spring, an attempt to embrace the idea of Reactive Systems in the Spring ecosystem. This is a vision of responsive, resilient, elastic systems. Unfortunately, code alone cannot solve the problems so this is a case where software and architecture meet.
You will learn about:
- The Reactive System vision
- How Spring absorbed these ideas without complicating or
eliminating the more conventional styles
- How to build, test and consume Reactive Spring applications
- How to architect entire Reactive chains of interacting systems
Should Information Management systems apply the services architecture? Many data provisioning and BI systems are monolithic, tightly coupled, difficult to scale, and stumble when it comes to delivering MVP in a timely manner.
In this session we will look at the common obstacles such systems inherently bring with them, and how the Data as a Service architecture pattern addresses many of these issues.
Agenda
Privacy by Design is rapidly becoming the new focus for go forward architecture and application design. However, few companies have the luxury of building out new solutions and are struggling with ways to adapt their current systems to meet Privacy by Design criteria. If you find yourself in such a situation, know that you're not alone.
In this session we'll review some common legacy designs and provided suggestions for them that you can implement to better align your systems toward privacy strategies.
Agenda
We are all familiar with the 3rd Normal form. Does that scale? What are the best practices for designing resilient, multi-tenant, performant databases? In this talk, we will explore the database evaluation process, where we will make choices on technology stacks based on requirements and analyzing the CAP theorem. We will discover different Consistency, Availability, and Partition Tolerance techniques, investigate No-SQL databases, and help new cloud deployments using the 3rd Platform.
Big data has characteristics in the new Cloud domain, which requires storing various data for different use-cases. We will explore the Document data store, Key-value, Columnar NoSQL, Graph NoSQL and NewSQL databases.
Next, we will look at how to do data modeling for NoSQL columnar databases to support highly available partition tolerant use-cases. We will discover different strategies to help multi-tenant requirements. In the end, we will look at how to choose the right database? We will also see what the future of Databases are comparing based on Consistency Models, Schema Models, Database Languages, and Database storage.
We will look at data quality patterns and issues and how to use MDM strategy to fix these issues. We will explore survivor ship records and how to validate if the data is correct in system. In the end we will also look at GDPR and PII data strategies.
We will be exploring following databases types:
Key-value stores
Wide column stores
Document stores
Time Series DBMS
Graph DBMS
Object oriented DBMS
Search engines
RDF stores
Spatial DBMS
Event Stores
Content stores
A few of the technologies we will explore are
Cassandra
Amazon DynamoDB
MongoDB, HBase
REDIS, MemcacheDB,
RDF / SPARQL
Graph Databases, Neo4J
CockroachDB
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
We are all familiar with the 3rd Normal form. Does that scale? What are the best practices for designing resilient, multi-tenant, performant databases? In this talk, we will explore the database evaluation process, where we will make choices on technology stacks based on requirements and analyzing the CAP theorem. We will discover different Consistency, Availability, and Partition Tolerance techniques, investigate No-SQL databases, and help new cloud deployments using the 3rd Platform.
Big data has characteristics in the new Cloud domain, which requires storing various data for different use-cases. We will explore the Document data store, Key-value, Columnar NoSQL, Graph NoSQL and NewSQL databases.
Next, we will look at how to do data modeling for NoSQL columnar databases to support highly available partition tolerant use-cases. We will discover different strategies to help multi-tenant requirements. In the end, we will look at how to choose the right database? We will also see what the future of Databases are comparing based on Consistency Models, Schema Models, Database Languages, and Database storage.
We will look at data quality patterns and issues and how to use MDM strategy to fix these issues. We will explore survivor ship records and how to validate if the data is correct in system. In the end we will also look at GDPR and PII data strategies.
We will be exploring following databases types:
Key-value stores
Wide column stores
Document stores
Time Series DBMS
Graph DBMS
Object oriented DBMS
Search engines
RDF stores
Spatial DBMS
Event Stores
Content stores
A few of the technologies we will explore are
Cassandra
Amazon DynamoDB
MongoDB, HBase
REDIS, MemcacheDB,
RDF / SPARQL
Graph Databases, Neo4J
CockroachDB
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Modern applications are all built using Serverless Computing. Serverless is one of the top-paying cloud skills. In this talk, we will explore the AWS Serverless framework. Serverless architecture is a way to build and run applications and services without having to manage infrastructure.
You’ll learn Serverless Computing from beginning to end. We will take a deep dive into best practices, core features, and advanced features including step functions.
We will go over the following topics:
– AWS Lambda
– AWS API Gateway
– Amazon DynamoDB
– AWS Step Functions
– AWS SAM (Serverless Application Model)
– Serverless Framework design patterns
– AWS Continuous Integration Tools like Git, CodeCommit, CodeBuild, CodePipeline
Serverless Integrations Best Practices
Who will benefit from this course?
– Developers and Architects to discover AWS Serverless Lambda and the Serverless Architecture
– DevOps Professionals who want to understand CICD pipelines
– Developers or Architects who want to design serverless applications using the best practices in serverless computing
Prerequisites?
Have access to an AWS Account, some familiarity to AWS
JavaScript knowledge
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Modern applications are all built using Serverless Computing. Serverless is one of the top-paying cloud skills. In this talk, we will explore the AWS Serverless framework. Serverless architecture is a way to build and run applications and services without having to manage infrastructure.
You’ll learn Serverless Computing from beginning to end. We will take a deep dive into best practices, core features, and advanced features including step functions.
We will go over the following topics:
– AWS Lambda
– AWS API Gateway
– Amazon DynamoDB
– AWS Step Functions
– AWS SAM (Serverless Application Model)
– Serverless Framework design patterns
– AWS Continuous Integration Tools like Git, CodeCommit, CodeBuild, CodePipeline
Serverless Integrations Best Practices
Who will benefit from this course?
– Developers and Architects to discover AWS Serverless Lambda and the Serverless Architecture
– DevOps Professionals who want to understand CICD pipelines
– Developers or Architects who want to design serverless applications using the best practices in serverless computing
Prerequisites?
Have access to an AWS Account, some familiarity to AWS
JavaScript knowledge
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
These days, you can’t swing a dry erase marker without hitting someone talking about microservices. Developers are studying Eric Evan’s prescient book Domain Driven Design. Teams are refactoring monolithic apps, looking for bounded contexts and defining a ubiquitous language. And while there have been countless articles, videos, and talks to help you convert to microservices, few have spent any appreciable time asking if a given application should be a microservice. In this talk, I will show you a set of factors you can apply to help you decide if something deserves to be a microservice or not. We’ll also look at what we need to do to maintain a healthy micro(services)biome.
Microservices demand more than just a new architecture, they require a cultural shift. In this workshop, we'll cover:
This workshop builds an entire event driven data pipeline with Machine Learning and Kafka. From Kafka where we use producers or Kafka Connect to generate information, we then will Kafka Streams to apply a machine learning model to make business decisions.
This intensive lab will start by integrating sources into our backplane, then train our models, and operationalize our model using Kafka Streams. We will then create result topics when we can read in as a report and display visualizations of our data. The result will also be scalable and fault tolerant.
*Github Account
As we migrate towards distributed applications, it is more than just our architectures that are changing, so too are the structures of our teams. The Inverse Conway Maneuver tells us small, autonomous teams are needed to produce small, autonomous services. Architects are spread thin and can’t be involved with every decision. Today, we must empower our teams but we need to ensure our teams are making good choices. How do we do that? How do you put together a cohesive architecture around distributed teams?
This talk will discuss creating “paved roads”, well worn paths that we know works and we can support. We will also explore the importance of fitness functions to help our teams adopt appropriate designs.
With globally distributed applications (and teams!) the job of software architect isn’t getting any easier; applications are growing increasingly complex and architects are spread thin. You can’t be involved with every decision, you must empower your teams while ensuring they are making good choices. How do you do that? How can frameworks like Spring not only make your life easier but help your teams deliver robust applications to production? Spring Cloud has a veritable plethora of sub projects from circuit breakers to functions simplifying the task of building cloud native applications while making it easy for developers to adhere to best practices. At the same time it can be overwhelming to get your head wrapped around all the features Spring offers. This talk will show how Spring allows architects to focus on the critical design decisions they need to make while ensuring developers are empowered to implement critical business use cases. Today’s cloud native applications have similar pitfalls, luckily Spring is here to help you resolve them!
This talk will show how Spring allows architects to focus on the critical design decisions they need to make while ensuring developers are empowered to implement critical business use cases. Today’s cloud native applications have similar pitfalls, luckily Spring is here to help you resolve them!
Software development has changed dramatically in recent years; no longer can you afford to say, “That’s how we’ve always done it.” Applications are evolving rapidly, which requires you to move fast and fix things. And don’t neglect the cultural shift inherent in any technical change. (Some developers, for instance, reject build-break notifications, going so far as removing themselves from the email list.)
If you’re just starting your CI/CD journey, you must ensure everyone understands the benefits, including increased speed-to-market, stable builds, and reduced drama around releases. That way, CI/CD won’t just help you deliver for your customers—it will help you sleep better at night.
We live in a world of microservices. Yet, what is a microservice? What defines the boundaries of a microservice? How do we define the relationships between microservices? Thankfully domaindriven design gives us the concepts and practices to better design and decompose our services.
In this session we will consider many of the concepts of DDD — How bounded contexts use Ubiquitous language to model the domain, how context maps can be used to establish the interconnections between services as well aggregates and domains events, all of which will service us well as we go about creating our microservices.
In this session we will go further with DDD, considering aspects like aggregates, domain events, factories and repositories, and consider how DDD can be represented in architecture, be that hexagonal, REST or RPC.
If you need a deeper dive into DDD, then this is the session for you.
Development teams often focus on getting code to production losing site of what comes after the design and build phase. But we must consider the full life cycle of our systems from inception to deployment through to sunset, a discipline many companies refer to as site reliability engineering.
While your organization may or may not have an SRE team, you have someone playing that role and we can all benefit from looking at the principles and practices that we can bring to bear on our projects. In this talk, I will introduce the concepts of SRE and how you can adopt these ideas on your applications.
By now your organization has planted a flag in “the Cloud” and it up to you to figure out just what that means to your application portfolio. Should everything be a microservice? Wait, what is a microservices anyway? How do you deal with massively distributed applications? How can event storming fix the gap between your business problems and domain model?
In this workshop, you will take a kata from event storming through to an initial design stopping along the way to discuss:
By now your organization has planted a flag in “the Cloud” and it up to you to figure out just what that means to your application portfolio. Should everything be a microservice? Wait, what is a microservices anyway? How do you deal with massively distributed applications? How can event storming fix the gap between your business problems and domain model?
In this workshop, you will take a kata from event storming through to an initial design stopping along the way to discuss:
Becoming a software architect is a longed-for career upgrade for many software developers. While the job title suggests a work day focused on technical decision-making, the reality is quite different. In this workshop, software architect Nathaniel Schutta constructs a real world job description in which communication trumps coding.
Discover the skill sets needed to juggle multiple priorities, meetings, and time demandsLearn why your best team leadership tool is not a hammer, but a shared cup of coffeeHear the best ways to give and take criticismUnderstand the necessity of writing effective email and formal architecture documentsGet tips for delivering confident career-building presentations to any audienceReview essential techniques for stakeholder management and relationship buildingExplore the critical needs for architecture reviews and an effective process for conducting themThrough lecture and small group exercises, Nathaniel will help you understand what it means to be a successful architect. Working through various problems, attendees will have opportunities to think through architectural decisions and patterns, discuss the importance of non functional requirements and why architects cannot afford to practice resume driven design.
Becoming a software architect is a longed-for career upgrade for many software developers. While the job title suggests a work day focused on technical decision-making, the reality is quite different. In this workshop, software architect Nathaniel Schutta constructs a real world job description in which communication trumps coding.
Discover the skill sets needed to juggle multiple priorities, meetings, and time demandsLearn why your best team leadership tool is not a hammer, but a shared cup of coffeeHear the best ways to give and take criticismUnderstand the necessity of writing effective email and formal architecture documentsGet tips for delivering confident career-building presentations to any audienceReview essential techniques for stakeholder management and relationship buildingExplore the critical needs for architecture reviews and an effective process for conducting themThrough lecture and small group exercises, Nathaniel will help you understand what it means to be a successful architect. Working through various problems, attendees will have opportunities to think through architectural decisions and patterns, discuss the importance of non functional requirements and why architects cannot afford to practice resume driven design.
Knowledge graphs are a rapidly emerging concept for machine-processable models of complex and dynamic domains. They represent the intersection of Web architecture and information. If your organization wants to resolve its most pernicious data integration problems or facilitate machine learning initiatives, knowledge graphs are likely to be part of your future.
We will discuss the emergence of Knowledge Graphs as an emerging solution to a missing capability in most organization's IT strategies. We will discuss how some of the biggest organizations in the world are heading in this direction, it's impact on API design and more. We will focus on specific tools, platforms and standards that are making Knowledge Graphs a crucial part of your overall solutions.
Decentralization and Content-based addressing represent a significant advancement in the development of stable, scalable, censorship-resistant systems. They require a remarkable amount of architectural thinking to work effectively. The Interplanetary File System (IPFS) is an umbrella project covering a cornucopia of extremely well designed layers that will prop up and extend the Web in many new directions. Come here about a future that looks a little bit like combining the Web with Git, Bittorrent, Self-certifying file systems, Distributed Hash Tables and more.
We will discuss the architectural layers of this approach and what each brings to the table.
Machine Learning is clearly here to stay. While it is a far cry from actual Artificial Intelligence, it provides many invaluable and remarkable ways to learn from the data we are collecting about our customers, products and daily activities. The past afforded us machine learning libraries which became machine learning frameworks. Now, we are designing and building machine learning platforms that facilitate entire initiatives in reusable and extensible ways.
We will discuss many of the drivers of modern machine learning systems and the architectures that we are seeing emerge as well as the security implications of protecting them.
Networking technologies may seem like done deals, but that could not be further from the truth. We will introduce you to some of the most important advances happening in the world of networking including current and upcoming changes to HTTP.
We will discuss pluggable network architectures such as libp2p and the emergence of software-defined networks.
While still new to most people, WebAssembly provides a formidable vision of safe, fast, portable code. Through clever choices and well-considered design, the basic vision allows us to target browsers as a platform using a variety of languages other than (but compatible with) Javascript. This technology coupled with advancements in the Web platform are setting up the future of Web-delivered applications to look more like (and likely to replace) desktop applications.
The more interesting possibilities, however, will be realized when WebAssembly escapes the browser and ushers in a whole new era of ubiquitous, secure computing. We will discuss the various container environments and how they will solve some of the more persistent issues with more conventional software development technologies. Given the heterogeneity of modern architectures, you need a strategy for code use, reuse and positioning to best meet your customer’s needs.
The LLVM Project has been around for over a decade, but is increasingly important as a compiler infrastructure to get reuse and portability, shared optimizations and a faster time to market. It achieves this by having a pluggable, layered architecture compared to other compiler infrastructure. Many newer programming languages have chosen it as the basis of their toolchain including Swift, Julia, Rust and more.
In this talk, we will talk about the tools, components and layers of LLVM and how it is helping usher in new visions of portability and reuse.
In the last 30 years, our industry has been upended by advancements that unlock previously unimaginable capabilities. It still seems like there is far too much failure and not enough success in IT systems though. To be successful in the 21st Century, you will need to understand where we are and where we are going. It is a complex amalgamation of developments in hardware, computer languages, architectures and how we manage information. Very few people understand all of the pieces and how they connect.
In this talk we will cover how technology changes are enabling longer term capture of business value, modernization of legacy systems, resilience in the face of increased mobile user bases, IT sovereignty and distributed, layered, heterogeneous architectures.
Event-driven architectures are not new, but they are newly ascendant. For the first time since the client-server revolution of 40 years ago, a new architectural paradigm is changing the way we build systems. Apache Kafka and microservices are at the center of this movement.
In this workshop, we’ll discuss the issues that arise turning a monolith into a set of reactive services, including issues like data contracts, integrating with the systems you can't change, handling request-response interfaces, and more. We'll also discuss common infrastructure choices like Apache Flink and Apache Pinot. Hands-on exercises will focus on understanding your organization's data and forming a plan to refactor that monolith that seems like it will never go away.
I'm looking forward to having you in the Event-Driven Architecture Workshop! To get the best use of our time together, the in-person exercises will focus on understanding the systems you're currently using at work and planning their refactoring to microservices. You should bring a laptop, a pen, and energy for the day!
Normally simple tasks like running a program or storing and retrieving data become much more complicated when we start to do them on collections of computers, rather than single machines. Distributed systems has become a key architectural concern, and affects everything a program would normally do—giving us enormous power, but at the cost of increased complexity as well.
Using a series of examples all set in a coffee shop, we’ll explore topics like distributed storage, computation, timing, messaging, and consensus. You'll leave with a good grasp of each of these problems, and a solid understanding of the ecosystem of open-source tools in the space.
Alistair Cockburn has described software development as a game in which we choose among three moves: invent, decide, and communicate. Most of our time at No Fluff is spent learning how to be better at inventing. Beyond that, we understand the importance of good communication, and take steps to improve in that capacity. Rarely, however, do we acknowledge the role of decision making in the life of software teams, what can cause it to go wrong, and how to improve it.
In this talk, we will explore decision making pathologies and their remedies in individual, team, and organizational dimensions. We'll consider how our own cognitive limitations can lead us to to make bad decisions as individuals, and what we might do to compensate for those personal weaknesses. We'll learn how a team can fall into decisionmaking dysfunction, and what techniques a leader might employ to healthy functioning to an afflicted group. We'll also look at how organizational structure and culture can discourage quality decision making, and what leaders to swim against the tide.
Software teams spend a great deal of time making decisions that place enormous amounts of capital on the line. Team members and leaders owe it to themselves to learn how to make them well.
Containers enable rapid development and rapid software delivery - and with that increase in speed comes a need to shift how people think about and tackle security. Running those containers is part of this consideration - the platform and container orchestration has to figure out and handle all of the moving parts.
In this talk, Laine and Josh will give their recommendations for Kubernetes as a platform to run containers. They'll go through talking about security from the perspective of the pieces that make up the container - the ingredients, and how it runs in addition to where it runs. They'll discuss application and platform boundaries while explaining a simple model to use in order to think about and discuss this complex topic.
Serverless! Functions as a service! DIGITAL TRANSFORMATION!
…just kidding.
One of the ideas in IT that's been gathering buzz for a while is “serverless.” Or sometimes “functions as a service,” used interchangeably. And…okay, but what does that actually mean? And…how does it help what you're trying to accomplish in your organization?
In this talk, Josh and Laine talk about what serverless is, and what it isn't, along with why you should care and how it can help with actual “digital transformation.” They'll go over the benefits and drawbacks of this method of implementing applications and show a demo of how it works using Knative (https://knative.dev/) on a Kubernetes cluster.
There is pain inherent in development - monoliths, confusing deployment processes, conflict between dev/ops/security/business… IT is complicated, and hard to do well, and the pace of change expected by customers makes it all even MORE difficult.
It can also be massively overwhelming to try to fix any of these pain points. A plan can help, but…how do you go about making that plan, and how do you share the plan with other people in a way that's easy to understand?
Join Josh and Laine as they talk about how to create a version of this map for your organization - by focusing on what you want to accomplish and the pain points in the way. You'll leave with a version of the problems in the way of accomplishing CD at your organization, along with some “huh, this isn't as overwhelming as it seemed before!”
This workshop will include a lot of discussion and interaction, and probably some feels!
The vast majority of developers have experience creating monoliths. Whereas that experience is really good to have from the point of view of building monoliths, they may become a hindrance when creating microservices. There are a few things we have to do differently, we have to unlearn a few design principles, we have to adhere to a few different architectural goals, and yet carry forward some of the techniques that have worked well before.
In this presentation, we will focus on how to transition from building monoliths to creating microservices.
We all are familiar with SOLID and other software design principles and have explored many design patterns. There is no better way to get a deeper understanding than to practice the concepts. Furthermore, some of the principles and patterns manifest themselves in what appear to be rather unconventional ways when applied under a set of constraints and requirements.
In this hands-on intensive workshop, we will take some problems and device elegant lightweight design, in code, and discuss the tradeoffs. Come experience the evolution of ideas into code and take shape by way of incremental development.
Computer with git client to access git repository.
Java 8 or newer
Your favorite IDE
We all are familiar with SOLID and other software design principles and have explored many design patterns. There is no better way to get a deeper understanding than to practice the concepts. Furthermore, some of the principles and patterns manifest themselves in what appear to be rather unconventional ways when applied under a set of constraints and requirements.
In this hands-on intensive workshop, we will take some problems and device elegant lightweight design, in code, and discuss the tradeoffs. Come experience the evolution of ideas into code and take shape by way of incremental development.
Computer with git client to access git repository.
Java 8 or newer
Your favorite IDE
Design patterns are commonplace in OO programming. With the introduction of lambda expressions in languages like Java, one has to wonder about their influence on design patterns.
In this presentation, we will take up some of the common design patterns and rework them using lambda expressions. We will also explore some other patterns that are not so common but are quite useful ways to apply lambdas.
git client
Java 8 or newer
Your favorite IDE, IntelliJ IDEA community edition recommended
Functional programming has been around for a long time, but in recent years almost all mainstream languages have eagerly embraced it. Developers are no longer thinking it is a good idea, but are building systems with the constructs of functional programming. In reality, we are building systems with hybrid models, imperative, object-oriented, and functional paradigms.
In this presentation, we will take a quick look at the main benefits and capabilities of functional programming, some of the requirements, and how we can design systems in a way we can practically honor those requirements in order to reap the benefits of the paradigm. We will draw inspirations from practical applications and libraries that illustrate how to design and architect using the functional approach.
The modern systems we build, whether they are distributed monoliths, service-oriented systems, or microservices, involve multiple moving parts that continuously change and evolve. One of the nightmares for every developer is waking up to calls that their service does not work because another service they depend on downstream has changed. A sensible solution would be to know of changes well ahead of time to prevent applications from breaking or falling apart. Consumer-Driven Contracts, which serve as executable documentation of the interface between systems, are a good proactive way to ensure that.
In this presentation, we will discuss the needs, the cost, and the perils of evolving interfaces. Then we will discuss how consumer-driven contracts can help mitigate the risk. We will learn by creating executable contracts for Spring endpoints as a way to illustrate the concepts.
By now I bet your company has hundreds, maybe thousands of services, heck you might even consider some of them micro is stature! And while many organizations have plowed headlong down this particular architectural path, your spidey sense might be tingling…how do we keep this ecosystem healthy?
In this talk, I will go beyond the buzzwords into the nitty gritty of actually succeeding with a service based architecture. We will cover the principles and practices that will make sure your systems are stable and resilient while allowing you to get a decent night's sleep!
This session will be a deep dive into the machine learning & artificial intelligence services and associated MLOPS within AWS. This will include updates to existing services, Amazon Data Wrangler, Sagemaker Studio, Sagemaker Pipelines, Sagemaker Endpoints, and any new services added (Amazon is constantly evolving in this space). We will cover key concepts of each of the services, common use cases, and design patterns.
Come to this session if you want to get up to speed on the ML/AI services in AWS.
This session will be a deep dive into the machine learning & artificial intelligence services and associated MLOPS within AWS. This will include updates to existing services, Amazon Data Wrangler, Sagemaker Studio, Sagemaker Pipelines, Sagemaker Endpoints, and any new services added (Amazon is constantly evolving in this space). We will cover key concepts of each of the services, common use cases, and design patterns.
Come to this session if you want to get up to speed on the ML/AI services in AWS.
This session will take a look at how the pandemic has impacted the skills needed by software architects from ideation to product delivery. For many architects, it’s not the technology-related areas that give you problems, but people-related areas (some things never change). We will dive into both areas.
Come to this session if you want to learn some tricks and tips for how to raise your game as an architect.
This session will be a deep dive into the software architecture and ecosystem surrounding cryptocurrencies. This will include mining, staking, hardware and software wallets, ledgers, and exchanges. We will also take a look at several of the latest design patterns, features, and trends in this marketplace.
Come to this session if you want to get up to speed on cryptocurrencies, the underlying software architecture, and the surrounding ecosystem.
A barrage of software philosophies have hit the industry over the last few years, all claiming to reduce friction in digital transformation. But what does that mean organizationally and where does open source play into all of this?
We'll talk about the roots of DevOps in the Theory of Constraints, how 12-Factor principles can guide your microservice and cloud migration refactor efforts, and how building an optimal strategy for the use of open source within your organization can tie all of these concepts together.
What if we could achieve completely ‘contactless’ software security scanning? As the lines between physical and digital security become blurrier and blurrier, software quality standards and testing methodologies must continue to keep pace. Software fuzzing has long been a trusted method for finding vulnerabilities that are difficult to discover using traditional methods.
The application of AI and ML to this field has already begun to bear very promising results. By leveraging deep learning techniques to improve our input corpus and better understand our program's states, we can shine areas on the code logic that would be hidden by approaches like vulnerability scanning and static code analysis, and even traditional software fuzzing.
Real-world applications nowadays are designed using both art and science. What is the process of coming up with a solution which works, scales, and is resilient?
What is it challenging to design a system for disruptive technologies?
System design is unstructured, and there are many ways to solve problems.
Gaining experience in new applications and technologies
Best practices change with time. The best way ten years ago can quickly become an anti-pattern.
In this talk, we will explore step by step guide to approach System design using real-world applications.
Come prepared to design a system for following applications interactively.
We will gain more knowledge with collective experience and best practices.
UBER System Design
NETFLIX System Design
INSTAGRAM System Design
YELP System Design
TWITTER System Design
Search Engines
Auto Suggestions / Recommendations System Design
Fraud Detection System Design
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Real-world applications nowadays are designed using both art and science. What is the process of coming up with a solution which works, scales, and is resilient?
What is it challenging to design a system for disruptive technologies?
System design is unstructured, and there are many ways to solve problems.
Gaining experience in new applications and technologies
Best practices change with time. The best way ten years ago can quickly become an anti-pattern.
In this talk, we will explore step by step guide to approach System design using real-world applications.
Come prepared to design a system for following applications interactively.
We will gain more knowledge with collective experience and best practices.
UBER System Design
NETFLIX System Design
INSTAGRAM System Design
YELP System Design
TWITTER System Design
Search Engines
Auto Suggestions / Recommendations System Design
Fraud Detection System Design
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Securing a web application is an enormous task. In this talk, we will explore how to protect enterprise applications. Can we shift left and do continuous exploitation testing while the code is still in development?
We will explore different kinds of vulnerabilities and how to secure your applications properly. Security patterns need to be understood by first wearing a hacker's hat and then putting the hat as a defender. In this workshop, we will explore different security patterns and determine how to prevent attacks.
We will be using OWASP ZAP to exploit applications.
Metrics are essential to measuring success for DevOps. In this talk, we will explore different dimensions and measure the Metrics and apply quality gates for DevSecOps projects.
As part of our exploration, we will look at how businesses can connect DevOps with Business Metrics. Ultimately Business value is critical for survival for any business. Management needs to realize that keeping DevSecOps will help in the speed of development and track how well the company is doing.
Key takeaways for this workshop is:
Threat Modeling techniques using the Threat modeling tool
Reconnaissance to gather information, Google hacking database, Exploit Database
Scanning for vulnerabilities using OWASP ZAP
Exploitation with DOS attacks
Lead Time: The time from code written to entering production
Deployment Frequency: How often deploys happen
Mean-Time-To-Recover (MTTR): How quickly can teams restore service after production outages
Change Fail Rate: What percentage of deploys result in service impairment or an outage
What will benefit from this course?
Developers and Architects who want to shift left for Ethical Hacking
Some knowledge of Linux
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Securing a web application is an enormous task. In this talk, we will explore how to protect enterprise applications. Can we shift left and do continuous exploitation testing while the code is still in development?
We will explore different kinds of vulnerabilities and how to secure your applications properly. Security patterns need to be understood by first wearing a hacker's hat and then putting the hat as a defender. In this workshop, we will explore different security patterns and determine how to prevent attacks.
We will be using OWASP ZAP to exploit applications.
Metrics are essential to measuring success for DevOps. In this talk, we will explore different dimensions and measure the Metrics and apply quality gates for DevSecOps projects.
As part of our exploration, we will look at how businesses can connect DevOps with Business Metrics. Ultimately Business value is critical for survival for any business. Management needs to realize that keeping DevSecOps will help in the speed of development and track how well the company is doing.
Key takeaways for this workshop is:
Threat Modeling techniques using the Threat modeling tool
Reconnaissance to gather information, Google hacking database, Exploit Database
Scanning for vulnerabilities using OWASP ZAP
Exploitation with DOS attacks
Lead Time: The time from code written to entering production
Deployment Frequency: How often deploys happen
Mean-Time-To-Recover (MTTR): How quickly can teams restore service after production outages
Change Fail Rate: What percentage of deploys result in service impairment or an outage
What will benefit from this course?
Developers and Architects who want to shift left for Ethical Hacking
Some knowledge of Linux
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
We have systems that can tell us in some amount what's wrong with them, but the sheer volume of data, and the sheer volume of systems, make it so that we can't do anything useful with (all of!) that information.
In this talk, Josh and Laine will talk about “wise alerting” to try to understand what both Dev and Ops teams (along with architects and dev/ops management, and even business units) REALLY need to know, along with an overview of their definition of ChatOps, or the idea of systems interacting with people via the chat platforms they use. They'll walk through how to think about parsing and forwarding alerts for maximum efficiency and action-ability, and how to build community via these typically confusing bits of data.
In Cloud Integrations and Data Architecture talk, we will examine secure, scalable integrations on Enterprise applications. Through various scenarios, we will explore designing and implementing intricate integration patterns on multiple platforms. We will review how to communicate the solution and design trade-offs to business and technical people.
We will explore the following topics:
Design high-performing, secure, and reliable integrations with applications.
Analyze existing as-is and future to-be integration models.
Integration Architecture blueprint. Streaming patterns.
MDM Tools (Master Data Management)
Integration with cloud applications. Error handling.
Effectively communicate architecture design to various stakeholders at many levels.
Follow best Domain practices in integration.
Data modeling/Database Design. Data Stewardship. Data Quality Skills (concerned with clean data). Data Governance. Large Data Volume Considerations. Data Migration best practices.
Architect robust, scalable security mechanisms for interfaces.
In Cloud Integrations and Data Architecture talk, we will examine secure, scalable integrations on Enterprise applications. Through various scenarios, we will explore designing and implementing intricate integration patterns on multiple platforms. We will review how to communicate the solution and design trade-offs to business and technical people.
We will explore the following topics:
Design high-performing, secure, and reliable integrations with applications.
Analyze existing as-is and future to-be integration models.
Integration Architecture blueprint. Streaming patterns.
MDM Tools (Master Data Management)
Integration with cloud applications. Error handling.
Effectively communicate architecture design to various stakeholders at many levels.
Follow best Domain practices in integration.
Data modeling/Database Design. Data Stewardship. Data Quality Skills (concerned with clean data). Data Governance. Large Data Volume Considerations. Data Migration best practices.
Architect robust, scalable security mechanisms for interfaces.
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
Seven steps methodology for designing superior AI-Enabled Microservices
In most of the Monolithic applications business objects and data, model designs are already present. As part of moving to cloud, companies miss out of the use-cases the REST APIs need to support. Implementing cloud solutions on top of existing models may lead to performance issues with APIs and cause scalability issues. Clients need to rewrite code due to a new version of APIs.
In most of the Monolithic applications business objects and data, model designs are already present. As part of moving to cloud, companies miss out of the use-cases the REST APIs need to support. Implementing cloud solutions on top of existing models may lead to performance issues with APIs and cause scalability issues. Clients need to rewrite code due to a new version of APIs.
In this talk, we will explore ten steps methodology for designing superior Cloud Native RESTFul Microservices APIs. Firstly, define the business domain objects and how they relate to use cases. If the use-case is to support <500 ms response time and availability of 99.99%, design the application for Consistency, Availability, and Partition tolerant. Next, Create an ideal design which solves the use-cases, refer to the industry standard JSONs and designs from schema.org, iana.org, and microformats.org. Later, find the fail points in the process and go back to the first step to resolving the pain points: Go back to Define the problem. Question to ask is what can go wrong? When can it go wrong? Next, create a Facade pattern to connect to either the existing Monolithic App or create a new App to support the new cloud use-cases. Create API Gateway, so other companies can build software and create more offerings. Next, design common Layers for error handling, logs, and security. For API security, perform Threat Modeling to find security vulnerabilities and plan for mitigation of risks. Use generic authentication using SAML, OAuth, and JWT to support Authentication and Authorization. Next, create an API Versioning strategy so that the REST API can evolve with minimal client changes. Apply Cloud Native design patterns for Resiliency. In the end, test APIs using contract driven testing and PACT files.
This talk is ideal for the following roles:
Architects
Technical Leads
Programers
Integration Architects
Solution Architects
If you’ve spent any amount of time in the software field, you’ve undoubtably found yourself in a (potentially heated) discussion about the merits of one technology, language or framework versus another. And while you may have enjoyed the technical debate, as software professionals, we owe it to our customers (as well as our future selves) to make good decisions when it comes to picking one technology over another.
In this talk, I will explore what criteria we should consider when comparing technologies, how we can avoid burning platforms as well as what to do when we’ve reached a dead end. We will also apply these techniques to a current technology or two.
Since 1994, the original Gang of Four Design Patterns book, “Design Patterns: Elements of Reusable Object-Oriented Software” has helped developers recognize common patterns in development. The book was originally written in C++, but there have been books that translate the original design patterns into their preferred language. One feature of “The Gang of Four Design Patterns” that has particularly stuck with me has been testability for the most part. With the exception of singleton, all patterns are unit testable. Design Patterns are also our common developer language. When a developer says “Let's use the Decorator Pattern” we know what is meant.
What's new though is functional programming, so we will also discuss how these patterns change in our new modern functional programming world. For example, functional currying in place of the builder pattern, using an enum for a singleton and reconstructing the state pattern using sealed interfaces. We will cover so much more, and I think you will be really excited about this topic and putting it into practice on your own codebase.
We will be using a cloud environment, so you can relax
But if you want to, you don't have to, but if you want to run locally, you should have JDK 19
Since 1994, the original Gang of Four Design Patterns book, “Design Patterns: Elements of Reusable Object-Oriented Software” has helped developers recognize common patterns in development. The book was originally written in C++, but there have been books that translate the original design patterns into their preferred language. One feature of “The Gang of Four Design Patterns” that has particularly stuck with me has been testability for the most part. With the exception of singleton, all patterns are unit testable. Design Patterns are also our common developer language. When a developer says “Let's use the Decorator Pattern” we know what is meant.
What's new though is functional programming, so we will also discuss how these patterns change in our new modern functional programming world. For example, functional currying in place of the builder pattern, using an enum for a singleton and reconstructing the state pattern using sealed interfaces. We will cover so much more, and I think you will be really excited about this topic and putting it into practice on your own codebase.
We will be using a cloud environment, so you can relax
But if you want to, you don't have to, but if you want to run locally, you should have JDK 19
If there is one thing guaranteed to be part of the micro-services story, networking and service stand out. Network management in a highly orchestrated world of networks, subnets and overlays increases the challenge. Add the topic of security and traffic management and the picture can be overwhelming.
This session will cover solutions to day 2 operations of networking a micro-service based cluster leveraging Istio, Jaeger and Kiali. Labs of specific solutions and on the fly network management will part of the presentation covering the following:
You will need for the labs:
If there is one thing guaranteed to be part of the micro-services story, networking and service stand out. Network management in a highly orchestrated world of networks, subnets and overlays increases the challenge. Add the topic of security and traffic management and the picture can be overwhelming.
This session will cover solutions to day 2 operations of networking a micro-service based cluster leveraging Istio, Jaeger and Kiali. Labs of specific solutions and on the fly network management will part of the presentation covering the following:
You will need for the labs:
If there is one thing guaranteed to be part of the micro-services story, networking and service stand out. Network management in a highly orchestrated world of networks, subnets and overlays increases the challenge. Add the topic of security and traffic management and the picture can be overwhelming.
This session will cover solutions to day 2 operations of networking a micro-service based cluster leveraging Istio, Jaeger and Kiali. Labs of specific solutions and on the fly network management will part of the presentation covering the following:
You will need for the labs:
Don't fear entropy, embrace it.
When you move toward distributed computing the likelihood of failure proportionally increases. It's not your fault, it's simply physics. Once you start spreading your data and applications across more devices, then access to resources such as CPU, memory, and I/O have a higher rate of failure.
Embrace entropy with chaos experiments and increase your cloud native capability model. We’ll investigate some of the leading chaos frameworks for Kubernetes and dive into hands-on experiments targeted within blast radiuses.
Distributed computing has surprising challenges. When targeting applications for Kubernetes your capabilities should meet its demands. If you can raise your team’s understanding of the cloud native maturity model, then it will increase your success with Kubernetes solutions.
I get it, we don’t always follow the best techniques and your team does not do everything perfectly. However, it would be sad if you did not lay out some plans to eventually raise your capability goals. We’ll examine some worthwhile goals and applicable techniques.
Hopefully, your DevOps team is ensuring that your platform is healthy and its delivery system is frictionless with new updates continuously rolling out. How can you achieve an automated and reliable delivery pipeline? Fortunately, your pipelines can all be run on Kubernetes. One of the highest maturity model goals with pipelines is automated delivery models. Specifically Progressive Delivery.
We’ll look at delivery model techniques and how Kubernetes and meshes provide a framework to make deliveries successful.
Distributed computing is hard. A significant challenge is typically when you want to get something done you have to call another service. Understanding how services are discovered and connected is fundamental to understanding Kubernetes' strengths.
We’ll walk through some networking concepts and hands-on examples of various techniques to understand simple to sophisticated traffic control and routing. Ingress and Istio will be demystified.
Continuous refactoring is critical to succeeding in projects and is an important part of sustainable agile development.
In this workshop, we will start by discussing how to approach refactoring, the essential steps we need to take, and look into how to incrementally improve the internal design of code to make it extensible, maintainable, and cost-effective to change. In addition to discussing the concepts, we will take several code examples from real projects, discuss the code smells and explore the refactoring techniques. Along the way, we will also dive into refactoring short code samples and measure the quality of code before and after refactoring.
Computer with git client to access git repository.
Java 8 or newer
Your favorite IDE
Continuous refactoring is critical to succeeding in projects and is an important part of sustainable agile development.
In this workshop, we will start by discussing how to approach refactoring, the essential steps we need to take, and look into how to incrementally improve the internal design of code to make it extensible, maintainable, and cost-effective to change. In addition to discussing the concepts, we will take several code examples from real projects, discuss the code smells and explore the refactoring techniques. Along the way, we will also dive into refactoring short code samples and measure the quality of code before and after refactoring.
Computer with git client to access git repository.
Java 8 or newer
Your favorite IDE
Cloud native applications are distributed to reap the benefits of resource scaling. Distributed computing is powerful but it also makes you think differently in designing applications. Atomic, modular, highly cohesive, and low coupled applications play nicely on these distributed systems. But it comes with costs.
We’ll look at architecture styles that adapt well to running in containers and on Kubernetes. Along the way, we’ll note the extra things your application should do to play nicely with distributed cloud native targets.
The organization has grown and one line of business has become 2 and then 10. Each line of business is driving technology choices based on their own needs. Who and how do you manage alignment of technology across the entire Enterprise… Enter Enterprise Architecture! We need to stand up a new part of the organization.
This session will define the role of architects and architectures. We will walk through a framework of starting an Enterprise Architecture practice. Discussions will include:
Albert Einstein once said — “We cannot solve our problems with the same thinking we used when we created them.”
As developers, architects, managers, tech-leads, our job entails solving big problems. However, our systems are composed of parts, and it is the interaction of those parts that ensure the system works, and tells us where to go looking when things fail. What does it mean to think in systems? What are the benefits, and what are tools are available to us? If any of this intrigues you (and it should) come join me as we explore a new way of thinking about problems, both big and small.
In this session we will take a page from Donella H. Meadows fantastic book “Thinking in Systems” and attempt to get an understanding of what makes up a system, how we can tease apart the moving parts of the system, and get into the mindset of a “systems thinker”.
Application Programmer Interfaces (APIs) by definition are directed at software developers. They should, therefore, strive to be useful and easy to use for developers. However, when engaging design elements from the Web, they can be useful in much larger ways than simply serializing states in JSON.
There is no right or perfect API design. There are, however, elements and choices that induce certain properties. This workshop will walk you through various approaches to help you find the developer experience and long-term strategies that work for you, your customers and your organization.
We will cover:
The Web Architecture as the basis of our APIs
The REST Architectural Style and its motivations
The Richardson Maturity Model as a way of discussing design choices and induced properties
The implications of contentnegotiation and representation choices such as JSON or JSONLD
The emergence of metadata approaches to describing and using APIs such as OpenAPI and HydraCG
Security considerations
Client technologies
API Management approaches
Application Programmer Interfaces (APIs) by definition are directed at software developers. They should, therefore, strive to be useful and easy to use for developers. However, when engaging design elements from the Web, they can be useful in much larger ways than simply serializing states in JSON.
There is no right or perfect API design. There are, however, elements and choices that induce certain properties. This workshop will walk you through various approaches to help you find the developer experience and long-term strategies that work for you, your customers and your organization.
We will cover:
The Web Architecture as the basis of our APIs
The REST Architectural Style and its motivations
The Richardson Maturity Model as a way of discussing design choices and induced properties
The implications of contentnegotiation and representation choices such as JSON or JSONLD
The emergence of metadata approaches to describing and using APIs such as OpenAPI and HydraCG
Security considerations
Client technologies
API Management approaches
Rich Hickey once said programmers know the benefits of everything and the trade offs of nothing…an approach that can lead a project down a path of frustrated developers and unhappy customers. As architects though, we must consider the trade offs of every new library, language, pattern or approach and quickly make decisions often with incomplete information. How should we think about the inevitable technology choices we have to make on a project? How do we balance competing agendas? How do we keep our team happy and excited without chasing every new thing that someone finds on the inner webs?
As architects it is our responsibility to effectively guide our teams on the technology journey. In this talk I will outline the importance of trade offs, how we can analyze new technologies and how we can effectively capture the inevitable architectural decisions we will make. I will also explore the value of fitness functions as a way of ensuring the decisions we make are actually reflected in the code base.
How do we move information realtime and connect machine learning models to make decisions on our business data? This presentation goes through machine learning and Kafka tools that would help achieve that goal.
In this presentation, we start with Kafka as our data backplane and how we get information to our pub/sub. As they enter Kafka, how do we sample that data and train our model, then how do we unleash that model on our real-time data? In other words, picture extracting samples for credit card approvals for training, then attaching the model for online processing: The moment we receive an application, we can either approve or disapprove a credit application based on a machine learning model trained on historical data. We will discuss other options as well like Spark, H2O, and more.
There is pain inherent in development - monoliths, confusing deployment processes, conflict between dev/ops/business.
IT is hard and the pace of change now makes it even more difficult. Join Josh and Laine as they talk about how focusing on solving this pain can help in a lot of surprising ways - kickstarting DevOps, speeding up product delivery, and even enabling the business as a whole.
Business requirements are not the only influencers of our technical solutions. Laws and Regulations transform the technical landscape in ways that require us to redefine our architecture, as well as our skill-set. This is especially true with Data Privacy. Since GDPR and CCPA, our industry is witnessing a new career path emerge: the Privacy Engineer. Where security started 10 years ago, so does privacy engineering. Join us as we look at Privacy by Design (PbD) and introduce some architecture patterns that align with privacy strategies.
Agenda: