Very large portion of the world’s business critical systems are considered to be ‘legacy’ –and so is the code underpinning them (ie COBOL, PASCAL, C, to name a few). Although in many cases it is the case that these systems are robust, stable and fit for the main purpose they were originally built, they aren’t flexible and scalable enough to support emerging requirements mainly derived from a more demanding ‘always on the move’ and ‘always connected’ user.
These systems struggle to meet these demands mainly because of the ‘monolithic’ approach on which they were built and the complexity hidden in millions of lines of code that is only understood a very few hand-full of people that still remain active from the teams that several years ago developed these systems.
In almost an equal amount there have also been thousands of failed attempts to modernise these legacy systems. The ‘eating the elephant’ in one go approach certainly didn’t work, and the traditional SOA approach alone although worked till certain extend, it also fell short when it came down to addressing specific requirements around scalability and platform/service inter-dependencies.
In this presentation I will talk about how a legacy modernisation framework based on Microservice Architecture (MSA) in conjunction with some other known SOA patterns (ie. ESB, API Gateway), can be applied to ‘eat the elephant one piece at the time’ but most importantly ‘without getting indigestion’
Why Your Digital Transformation Strategy Demands Middleware ModernizationVMware Tanzu
Your current middleware platform is costing you more than you think. It wasn't designed to support high-velocity software releases and frequent iteration of applications—prerequisites for success in today’s world. A new, modern approach to middleware is needed that enables both developer productivity and operational efficiency.
Join Pivotal’s Rohit Kelapure and Perficient’s Joel Thimsen as they discuss:
- The limitations of traditional middleware
- The benefits of middleware modernization
- Your options for modernization, including a cloud-native platform
- Tips for overcoming some common challenges
Presenters: Rohit Kelapure, Pivotal, Joel Thimsen, Perficient & Jeff Kelly, Pivotal (Host)
Agile integration at its heart aims to bring cloud native practices to the integration space. This session will discuss IBM's perspective on what cloud native really means, and then we will explore the many ways that applies to integration. We'll provide insight into how this has affected the IBM integration portfolio roadmap, and discuss examples of recent enhancements to our products.
A proper Microservice is designed for fast failure.
Like other architectural style, microservices bring costs and benefits. Some development teams have found microservices architectural style to be a superior approach to a monolithic architecture. Other teams have found them to be a productivity-sapping burden.
This material start with the basic what and why microservice, follow with the Felix example and the the successful strategies to develop microservice application.
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...DataWorks Summit
Scheduler of a container orchestration system, such as YARN and K8s, is a critical component that users rely on to plan resources and manage applications.
And if we assess where we are today, in YARN effectively it had two power schedulers (Fair and Capacity scheduler) and both serve many strong use cases in big data ecosystem. It can scale up to 50k nodes per cluster, and schedule 20k containers per second, and extremely efficient to manage batch workloads.
K8s default scheduler is an industry-proven solution to efficiently manage long-running services. As more big data apps are moving to K8s and cloud world, but many features like hierarchical queues to support multi-tenancy better, fairness resource sharing, and preemption, etc. are either missing or not mature enough at this point of time to support big data apps running on K8s.
At this point, there is no solution that exists to address the needs of having a unified resource scheduling experiences across platforms. That makes it extremely difficult to manage workloads running on different environments, from on-premise to cloud.
Hence evolving a common scheduler powered from YARN and K8s’s legacy capabilities and improving towards cloud use cases will focus more on use cases like:
Better bin-packing scheduling (and gang scheduling)
Autoscale up and shrink policy management
Effectively run batch workloads and services with clear SLA’s
In summary, we are improving core scheduling capabilities to manage both K8s and YARN cluster which is cloud aware as a separate initiative and above-mentioned cases will be the core focus of this initiative. More details of our works will be presented in this talk.
Why Your Digital Transformation Strategy Demands Middleware ModernizationVMware Tanzu
Your current middleware platform is costing you more than you think. It wasn't designed to support high-velocity software releases and frequent iteration of applications—prerequisites for success in today’s world. A new, modern approach to middleware is needed that enables both developer productivity and operational efficiency.
Join Pivotal’s Rohit Kelapure and Perficient’s Joel Thimsen as they discuss:
- The limitations of traditional middleware
- The benefits of middleware modernization
- Your options for modernization, including a cloud-native platform
- Tips for overcoming some common challenges
Presenters: Rohit Kelapure, Pivotal, Joel Thimsen, Perficient & Jeff Kelly, Pivotal (Host)
Agile integration at its heart aims to bring cloud native practices to the integration space. This session will discuss IBM's perspective on what cloud native really means, and then we will explore the many ways that applies to integration. We'll provide insight into how this has affected the IBM integration portfolio roadmap, and discuss examples of recent enhancements to our products.
A proper Microservice is designed for fast failure.
Like other architectural style, microservices bring costs and benefits. Some development teams have found microservices architectural style to be a superior approach to a monolithic architecture. Other teams have found them to be a productivity-sapping burden.
This material start with the basic what and why microservice, follow with the Felix example and the the successful strategies to develop microservice application.
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...DataWorks Summit
Scheduler of a container orchestration system, such as YARN and K8s, is a critical component that users rely on to plan resources and manage applications.
And if we assess where we are today, in YARN effectively it had two power schedulers (Fair and Capacity scheduler) and both serve many strong use cases in big data ecosystem. It can scale up to 50k nodes per cluster, and schedule 20k containers per second, and extremely efficient to manage batch workloads.
K8s default scheduler is an industry-proven solution to efficiently manage long-running services. As more big data apps are moving to K8s and cloud world, but many features like hierarchical queues to support multi-tenancy better, fairness resource sharing, and preemption, etc. are either missing or not mature enough at this point of time to support big data apps running on K8s.
At this point, there is no solution that exists to address the needs of having a unified resource scheduling experiences across platforms. That makes it extremely difficult to manage workloads running on different environments, from on-premise to cloud.
Hence evolving a common scheduler powered from YARN and K8s’s legacy capabilities and improving towards cloud use cases will focus more on use cases like:
Better bin-packing scheduling (and gang scheduling)
Autoscale up and shrink policy management
Effectively run batch workloads and services with clear SLA’s
In summary, we are improving core scheduling capabilities to manage both K8s and YARN cluster which is cloud aware as a separate initiative and above-mentioned cases will be the core focus of this initiative. More details of our works will be presented in this talk.
Want to see a high-level overview of the products in the Microsoft data platform portfolio in Azure? I’ll cover products in the categories of OLTP, OLAP, data warehouse, storage, data transport, data prep, data lake, IaaS, PaaS, SMP/MPP, NoSQL, Hadoop, open source, reporting, machine learning, and AI. It’s a lot to digest but I’ll categorize the products and discuss their use cases to help you narrow down the best products for the solution you want to build.
Distributed Transactions is a key concept for Micro Services based Apps and Saga Design Pattern helps out over here. However, developers struggle to shift their mindset from CRUD based design to Event Sourcing / CQRS concept. To solve this problem we are introducing the concept of Event Storming and Event Storming Process map.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
The introduction covers the following
1. What are Microservices and why should be use this paradigm?
2. 12 factor apps and how Microservices make it easier to create them
3. Characteristics of Microservices
Note: Please download the slides to view animations.
Introduction to Snowflake Datawarehouse and Architecture for Big data company. Centralized data management. Snowpipe and Copy into a command for data loading. Stream loading and Batch Processing.
The evolving story for Agile Integration Architecture in 2019Kim Clark
Agile integration architecture (AIA) has moved well beyond its roots around decentralization of the ESB into a more containerized and cloud native approach to integration. We're now exploring how integration modernization affects API management, messaging, events, file movement, and how all this dovetails with the iPaaS and more.
The Ideal Approach to Application Modernization; Which Way to the Cloud?Codit
Determine your best way to modernize your organization’s applications with Microsoft Azure.
Want to know more? Don't hesitate to download our White Paper 'Making the Move to Application Modernization; Your Compass to Cloud Native': http://bit.ly/39XylZp
Cloud Migration, Application Modernization, and Security Tom Laszewski
As AWS continues to expand, enterprise customers are looking to our partner ecosystem to assist in migrating their workloads to the cloud. This session describes the challenges, lessons learned and best practices for large scale application migrations. We will use real examples from our consulting partners and AWS Professional Services to illustrate how to move workloads to the cloud while modernizing the associated applications to take advantage of AWS’ unique benefits. We will also dive into how to use an array of AWS services and features to improve a customer’s security posture as they are migrating and once they are up and running in the cloud
Want to see a high-level overview of the products in the Microsoft data platform portfolio in Azure? I’ll cover products in the categories of OLTP, OLAP, data warehouse, storage, data transport, data prep, data lake, IaaS, PaaS, SMP/MPP, NoSQL, Hadoop, open source, reporting, machine learning, and AI. It’s a lot to digest but I’ll categorize the products and discuss their use cases to help you narrow down the best products for the solution you want to build.
Distributed Transactions is a key concept for Micro Services based Apps and Saga Design Pattern helps out over here. However, developers struggle to shift their mindset from CRUD based design to Event Sourcing / CQRS concept. To solve this problem we are introducing the concept of Event Storming and Event Storming Process map.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
The introduction covers the following
1. What are Microservices and why should be use this paradigm?
2. 12 factor apps and how Microservices make it easier to create them
3. Characteristics of Microservices
Note: Please download the slides to view animations.
Introduction to Snowflake Datawarehouse and Architecture for Big data company. Centralized data management. Snowpipe and Copy into a command for data loading. Stream loading and Batch Processing.
The evolving story for Agile Integration Architecture in 2019Kim Clark
Agile integration architecture (AIA) has moved well beyond its roots around decentralization of the ESB into a more containerized and cloud native approach to integration. We're now exploring how integration modernization affects API management, messaging, events, file movement, and how all this dovetails with the iPaaS and more.
The Ideal Approach to Application Modernization; Which Way to the Cloud?Codit
Determine your best way to modernize your organization’s applications with Microsoft Azure.
Want to know more? Don't hesitate to download our White Paper 'Making the Move to Application Modernization; Your Compass to Cloud Native': http://bit.ly/39XylZp
Cloud Migration, Application Modernization, and Security Tom Laszewski
As AWS continues to expand, enterprise customers are looking to our partner ecosystem to assist in migrating their workloads to the cloud. This session describes the challenges, lessons learned and best practices for large scale application migrations. We will use real examples from our consulting partners and AWS Professional Services to illustrate how to move workloads to the cloud while modernizing the associated applications to take advantage of AWS’ unique benefits. We will also dive into how to use an array of AWS services and features to improve a customer’s security posture as they are migrating and once they are up and running in the cloud
How can Oracle Forms (or other legacy) applications be modernized to fit in a contemporary IT architecture? Trends, concepts and technologies are discussed.
Case Study of Financial Web System Development and Operations with Oracle Web...Hirofumi Iwasaki
To stay ahead of the technology curve, financial companies require the power, flexibility, and scalability of latest enterprise technologies for 24/7 services. Rakuten Card, one of the largest credit card companies in Japan, recently renewed its web front-end systems utilizing Java EE. This session provides answers to the following questions: Among the myriad of available technologies, why did it choose Oracle WebLogic and Oracle Exadata, managed by Oracle Enterprise Manager? How did it drive this huge project to completion in only six months, using only in-house development? What were the key success factors in launching and operating this mission-critical service? Hear about its extraordinary improvement results and how its selections are effective for financial enterprise systems.
Stay productive while slicing up the monolithMarkus Eisele
Microservices-based architectures are in vogue. Over the last couple of years, we have learned how thought leaders implement them, and it seems like every other week we hear about how containers and platform-as-a-service offerings make them ultimately happen.
Tech Talent Night Copenhagen 11/22/17
https://greenticket.dk/techtalentnightcph
API monetization extends beyond the simple selling of an API to realize new revenue streams. Monetization enables multi-pronged business relationships, for example, a SaaS provider, an industry focused ISV and a SaaS customer. Learn more about how Oracle is helping customers in the Hospitality industry realize the true value of APIs. In this talk, we will also cover some future capabilities that will help enterprises monetize their APIs for both revenue streams, and insights into the value all their APIs provide
Changing the game in hospitality integrationsluisw19
The hospitality industry is undergoing the greatest transformation in its contemporary history. An industry known for its ‘high-touch’ nature and not necessarily famous for embracing the latest / greatest tech, has been forced to adapt and embrace modern technologies or risk becoming irrelevant in a post-pandemic world.
Join this talk to learn how Oracle Hospitality’s Open API strategy is changing the game in hospitality integrations by not only enabling innovation at an unprecedented rate, but also by changing the API-value chain to ensure that all participants of the Hospitality API economy benefit from this move.
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...luisw19
Originally designed by Facebook to allow its mobile clients to define exactly what data should be send back by an API and therefore avoid unnecessary roundtrips and data usage, GraphQL is a JSON based query language for Web APIs. Since it was open sourced by Facebook in 2015, it has undergone very rapid adoption and many companies have already switch to the GraphQL way of building APIs – see http://GraphQL.org/users.
However, with some many hundreds of thousands of REST APIs publicly available today (and many thousands others available internally), what are the implications of moving to GraphQL? Is it really worth the effort of replacing REST APIs specially if they’re successful and performing well in production? What are the pros/cons of using GraphQL? What tools / languages can be used for GraphQL? What about API Gateways? What about API design?
With a combination of rich content and hands-on demonstrations, attend this session for a point of view on how address these and many other questions, and most importantly get a better understanding and when/where/why/if GraphQL applies for your organisation or specific use case.
There is no doubt that Web APIs have become a fundamental aspect of modern architectures. However how to distinct a “good” API from an “evil” one is a topic for debate and one that often ends up in a “religious” debate. However, the one thing that is clear to most people, is that it all starts with a design, and getting that design right up-front will likely result in less headaches down the line.
So how to avoid “evil” APIs?
In this presentation, I will talk about the 7 most common pitfalls I’ve come across when doing API design in large implementations. With real-life examples, I will describe why such pitfalls deserved to be called “evil” and how to remediate them with “good" design practices.
The presentation will also touch upon how API-design first techniques can be applied to solve prevent some of the common issues.
It will be a highly interactive session with good balance of theory and practice.
DEVOXX UK 2018 - GraphQL as an alternative approach to RESTluisw19
Originally designed by Facebook to allow its mobile clients to define exactly what data should be send back by an API and therefore avoid unnecessary roundtrips and data usage, GraphQL is a JSON based query language for Web APIs. Since it was open sourced by Facebook in 2015, it has undergone very rapid adoption and many companies have already switch to the GraphQL way of building APIs – see http://GraphQL.org/users.
However, with some many hundreds of thousands of REST APIs publicly available today (and many thousands others available internally), what are the implications of moving to GraphQL? Is it really worth the effort of replacing REST APIs specially if they’re successful and performing well in production? What are the pros/cons of using GraphQL? What tools / languages can be used for GraphQL? What about API Gateways? What about API design?
With a combination of rich content and hands-on demonstrations, attend this session for a point of view on how address these and many other questions, and most importantly get a better understanding and when/where/why/if GraphQL applies for your organisation or specific use case.
Oracle API Platform Cloud Service Best Practices & Lessons Learntluisw19
I did this presentation in Split/Croatia on March 2017 where I shared our experiences and insights when implementing the Oracle API Platform Cloud Service.
Oracle Code Capgemini: API management & microservices a match made in heavenluisw19
Oracle Code London presentation by Capgemini Luis Weir and Phil Wilkins. Talking about API management relation to microservices, evolution of API gateways and why should developers care about APIs
UKOUG - Implementing Enterprise API Management in the Oracle Cloudluisw19
API-led connectivity has become the main mechanism to integrate with SaaS applications. Mobile applications, modern web applications and Internet of things also need APIs. In the Oracle Cloud there are at least 6 cloud services offering a solution for APIs, (Mobile Cloud Service, API Manager Cloud Service, API Platform Cloud Service, API Catalog Cloud Service, IoT Cloud Service and Integration Cloud Service).
This presentation will first and foremost describe what an enterprise-wide API management solution looks like, will elaborate on a solid API taxonomy to then show how to position each of the mentioned cloud services to deliver an end to end API management solution in the Oracle Cloud but also capable of handling hybrid cloud use cases.
In addition real live use cases will be referenced to help contextualise the content presented.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
2. {2}
About me
Luis Weir
Oracle Ace Director – Principal Architect
in assisting organisations define and implement solutions and strategies that can help
them realise the benefits that such technologies have to offer.
I am very passionate about technology. I have be the lead authored of two books (Oracle
SOA Governance 11g Implementation and Oracle API Management 12c Implementation), I am a
regular blogger and speaker in major conferences and events. A well-known industry expert
especially when it comes to Oracle middleware technologies I am also an OTN certified SOA
black belt.
I am an Oracle Ace Director, principal architect and a thought leader
specialised in Oracle Fusion Middleware & Oracle PaaS technologies. With
more than 15 years of experience implementing IT solutions across the
globe, I have been exposed to a wide wide variety of business problems
many of which I’ve helped solved by adopting SOA architectural styles such
as traditional SOA, API management and now Microservices. My current focus
is
2nd Place
1st OTN
Cloud
Hackathon
June, 2016
Cloud
Contribution
Award
SOA Community
March, 2016
Latest Media:
•Oracle Magazine May/June 2016
(http://bit.ly/1RTCAU3)
•Systematic Approach for
Migrating to Oracle Cloud SaaS
(http://bit.ly/1Xr6acs)
•Oracle Magazine Jan/Feb 2016
(http://ora.cl/Vhh)
•API Management Implementation
(http://ora.cl/Gcw)
•A Word About Microservices and
SOA (http://bit.ly/25Dk5go)
5. {5}
… what is a legacy system?
Monolithic applications that significantly
resists modification and evolution [1], seem
frozen in time [6] and thus do not fit with
the organisations future IT strategy [7]
Characteristics:
• They are business critical
[1][2][4][5][6][7][8][12][15]
• Typically been around for a
while (in some cases 30+
years) [2][7][8]
• End of life tech stacks
[1][2][5][8][12][15]
• Not necessarily defined by
age. Lack of vendor support or
inflexibility also mean legacy
[2][5][7][14]
• They are stable, reliable and
performing [4][5][7][14]
6. {6}
Does the world run on legacy?
• 80% of the worlds systems are legacy [3][5]
• 200 billion lines of legacy code are still in use [5][7]
• 1+ million COBOL programmers world wide maintaining an
approximate of 100 billion lines of COBOL code [7][11]
• 75% of financial institutions in Europe are using out-
dated systems (legacy) for core business [9]
• COBOL powers 80% of all daily business transactions [17]
• 30+ years of legacy modernisation research and 80% of
world systems are still “legacy”? [10][7]
[11]
7. {7}
Driving forces
• Lack of flexibility.
Extremely difficult to
change to take new
requirements affecting
new product
development and time
to market
[1][2][3][4][5][7][8][9][12][15]
• High costs of
maintenance and change
[1][2][3][4][5][7][8][9][12][15]
• End of life tech-stacks(out of support, no new
or major feature releases) [1][2][3][5][7][8][9][12][15]
• People [with relevant skills] are scarce
[4][5][7][10][11][17]
• Integration is difficult [1][4][5][6][12][15]
• Security (no new security patches) [6][9][13]
9. {9}
Arguments against modernisation
• High risk of failure – “we’ve tried before
(several times) and failed” [1][2][4][6][7][10][12][15]
• Too costly without clear justification. Ie.
When will we see ROI? [1][2][3][4][6][7][8][12][14][15]
• Lack of knowledge and skills –
[1][4][5][7][12][10][11][14][17]
• “If ain’t broken don’t fix it”, the system is
doing what’s supposed to why change it? [3][6][7][14]
“They [Top management] are
always looking for a short
term Return of Investment.
Once they put the money in,
they want to earn it back”
[7]
We didn’t
fix it last
year, and
survived.
Why should
this year
be
different?
[7]
“I think top management
doesn’t understand the issue
and they don’t give budget
for it [legacy
modernisation]” [7]
11. {11}
Faults are as big as the legacy!!
(2012) 16 million (RBS, NatWest,
Ulster Bank) customer accounts
ended up being frozen
(Dec, 2014) Cancelation of 40
flights in UK affecting 1.9k
other flights and 230k
passengers
(Jan, 2016) Customers couldn't
access accounts for 2 days
12. {12}
Not failing is not success [16]
Insight into legacy modernisation success rate:
• Success rates vary from 24% to 39%, depending
on study and the type of technology project [16]
• 1 in 6 projects (17%) result in "black swan” [16]
• Only 50% of projects deliver 44% of the
intended business benefits [16]
“Healthcare.gov is just a
frontend. The heavy lifting takes
place in the back ends, a
extremely complex array of legacy
systems that span multiple US
federal agencies” [20]
“The worry is that trying to
promise a startup-style
experience on the back of
multiple old and lumbering IT
systems. There's a long way to
go, even after all the initial
issues with accessing the site
itself are resolved” [20]
13. {13}
Usual suspects: reasons for failure
• Lack of documentation and knowledge of the
system leading to issues like bad scoping, poor
estimation and planning, inappropriate target
designs and incomplete testing [1][2][3][4][7][8][12][14]
• Wrong approach specially based on “Eating the
elephant in one go” (cold turkey)”
[1][4][7][8][12][15][16]
• Time pressures. Rushing through project phases
to meet deadlines – [1][4][5][7][12][10][11][14][17]
• Lack of people with relevant skills –
[1][4][5][7][12][10][11][14][17]
15. {15}
What is a Microservice? SOA 2.0?
Loosely coupled service oriented
architecture with bounded context [27]
“The value of the term
microservices is that it
allows to put a label on
a useful subset of the
SOA terminology” [22]
[21]
Functional decomposition
of systems into
manageable and
independently deployable
components[18]
20. {20}
Order & Fulfillment
Domain
Customer Relations
Domain
ERP
Domain
(P2C, R2C,
HR, GL,
Billing,
etc)
MSA – Architectural
API Gateway(s)
Microservice Architecture
Async
Communication
Microservice Architecture Legacy
Message Pipe
Mobile Apps
Adapter
Adapter
Sync
Communication Managed API Microservice
Monolith
ServiceChoreography
Contac
t
Custom
er
Bounded
Context
Shipme
nt
Order
Produc
t
Web Apps
Applications
21. {21}
MSA - Architectural
Pattern Traditional SOA MSA
Monolith pattern (http://bit.ly/1Gjr2Y0) Yes No
Polyglot Programming & Persistence
(http://bit.ly/18BvDIj & http://bit.ly/1XYiak2)
Not traditionally (use
of Suites)
Yes
API gateway pattern (http://bit.ly/1WTyNLJ) Yes Yes
Orchestration (http://bit.ly/1U0SWil) Yes No
Choreography (http://bit.ly/1ssALZQ) No Yes
Event Collaboration (http://bit.ly/25Dk7oE) Yes Yes
Canonical Schema (http://bit.ly/1r6KkfK) Very common No
Schema centralization (http://bit.ly/1sVlqkc) Very common No
Decouple Contract (http://bit.ly/1O8mVpm) Yes Could be….
Bounded Context (http://bit.ly/1o7AK8B) Some times Yes
Ubiquitous Language (http://bit.ly/1c8nXQe) Some times Yes
Bulkhead (http://bit.ly/1c8nXQe) Not really… Yes
Tolerant Reader (http://bit.ly/1aa4mr9) Some times Yes
Client-side Service Discovery
(http://bit.ly/1OunUyq)
Initially only
(service registry)
Recommended
Server-side Service Discovery
(http://bit.ly/1X3RmzA)
Yes Yes
ESB Pattern (http://bit.ly/1ZlSKeT) Yes Across bounded contexts
or domains (dump pipe)
[19]
Yes = Applied most of the time
No = Not applied most of the time
22. {22}
MSA – Organisational
Microservice
Teams organized around business capabilities
Small teams
You build it you
run it
Decentralised governance
Culture of
automation
Products not
projects
23. {23}
MSA – Organizational
Development and support teams
organized by technologies resulting
in siloes(Conway’s law in action)
SOA
Support
Team
DB
Support
Team
UI
Support
team
UI Dev Team
Database
Dev Teams
SOA Dev Team
ProjectTeams
Coms
Gaps
Multi-disciplinary [small] teams
organized by business capability
resulting in modular systems
Customer
U
I D
B
MW
Orders
U
I D
B
MW
Items
U
I D
B
MW
Shipment
U
I D
B
MW
Traditional Operations Model
DevOps /
Continuous Delivery
MSA Operations Model
[19]
Customer
Microservice
Orders
Microservice
Items
Microservice
Shipment
Microservice
24. {24}
Recommend watching
https://www.youtube.com/watch?v=yPvef9R3k-M
DDD & Microservices
By Eric Evans
Goto Berlin, Nov 2014
https://www.youtube.com/watch?v=nMTaS07i3jk
State of the art in MSA
By Adrian Cockcroft
Dockercon Amsterdam, Nov 2015
https://www.youtube.com/watch?v=wgdBVIX9ifA
Microservices
By Martin Fowler
Goto Berlin, Nov 2014
26. {26}
Ok cool, but why MSA for this?
Modularity
Eat the elephant one piece at the time.
Phased implementation approach. Starting
small. Small teams owning full lifecycle
of their piece(a business capability)[23]
Segmented complexity
Separate a big problem into smaller
problems handled by small teams ensures
mental models are retained avoiding a
“legacy in the making” [5]
Easy of deployment / speed
Moving away from entire system deployment
(ie. “one line change to a million-line-long
monolithic”). Deploy services independently
and fast (ie. with containers) and introduce
automation (continuous delivery) [23]
27. {27}
(continuation)
Scalability & resilience
Scale independently and possibly on-demand.
Bulkheads to isolate problems and avoid
whole system failures (avoiding the cascade
effect), Then purposely test resilience [23]
Enabling cloud transition
Building container-based modular applications
whilst adhering to basic principles (like 12
factor [30], Lehman’s law [31], and the
reactive manifesto [33]) cloud adoption is a
real option
Breaking organisational silos
Organise small teams based on business
capabilities in order to avoid
organisational silos being reflected in the
way systems are built (Conway's law [32])
29. {29}
Modernisation Strategies
Cold Turkey
[8]
• Big-bang approach
• High risk and Costly (big
project)
• Reduced business benefits
Monolith
Ie. COBOL
Monolith
Ie. Java
Tool
Refactor / Replace
Convert legacy code and/or
replace with COTS
Monolith
Ie. COBOL
Tools,
manual,
any
other..
Rebuild
Rebuild from ground up in
modern language in one-go
Monolith
Ie. Java
Apps
Chicken
Little [8]
• Phased approach based on
coexisting with legacy using
gateways
• Less risky but complex
Monolith Decomp
ose
A1
Gateways
An
Re-engineer
Decompose legacy into
modules and then rebuild
whilst coexisting with
legacy using gateways
Butterfly [15]
• Phased approach based on
coexisting with legacy
without gateways
• Less risky but complex
Re-engineer
Decompose legacy into
modules and then rebuild
whilst coexisting with
legacy using data access
allocators and chrysaliser
Monolith
Decomp
ose
A1
An
Chrysaliser
Wrapping[15]
• As little modification to
legacy as possible (tactical
approach in nature)
• Used of wrapper technologies
like CICS, screen-scrapers or
ESBs with legacy adapters
• Lower risk, quicker results
• Higher costs, complexity and
risk in the mid-long term
Monolith
A1
Wrappers
An
31. {31}
I) API-fication (wrap)
Onpremise
Terminals
Oracle Cloud PaaS
Mainframe
DB2
Order
Mng
Inventory
Pricing
Product
Shipment
Consignment
s
Sales Purchasing Payables
Receivables GL Etc..
Weblogic
API Gateway (OAPCS)
Oracle SOA Suite
(11g or 12c when
Adapter is certified)
Product API
CICS PROGRAMS Oracle
Connect
JCA Legacy Adapter
REST Adapter
Native
Apps
Web
Apps
OACCS MCSJet on Node Mobile Backend
32. {32}
Oracle Cloud PaaS
APICS Gateway
Native
Apps
Web
Apps
I) API-fication (wrap)
Terminals
Mainframe
DB2
Order
Mng
Inventory
Pricing
Product
Shipment
Consignment
s
Sales Purchasing Payables
Receivables GL Etc..
Weblogic
Oracle SOA Suite
(11g or 12c when
Adapter is certified)
CICS PROGRAMS
Oracle Connect
JCA Legacy Adapter
REST Adapter
OACCS MCS
ICS
Jet on Node
Onpremise Agent
Mobile Backend
Onpremise
Rest endpoint
Product API
33. {33}
Weblogic
Oracle SOA Suite
(11g or 12c when
Adapter is certified)
Oracle Cloud PaaS
APICS Gateway
Native
Apps
Web
Apps
II) Re-engineer (MSA) & coexist
Terminals
Mainframe
DB2
Inventory Orders
Pricing
Product
Shipment
Consignmen
ts
Sales Purchasing Payables
Receivable
s
GL Etc..
CICS PROGRAMS
JCA Legacy Adapter
REST Adapter
OACCS MCS
ICS
Jet on Node
Onpremise Agent
Mobile Backend
Onpremise
Rest endpoint
OACCS ODCS
ProductProduct
Product API
Oracle
Connect
ODI
DB2 KM
Sync
34. {34}
Weblogic
Oracle SOA Suite
(11g or 12c when
Adapter is certified)
Oracle Cloud PaaS
APICS Gateway
Native
Apps
Web
Apps
III) Switch over & start over
Terminals
Mainframe
DB2
Inventory Orders
Pricing
Product
Shipment
Consignment
s
Sales Purchasing Payables
Receivables GL Etc..
CICS PROGRAMSOracle
Connect
JCA Legacy Adapter
REST Adapter
OACCS MCS
ICS
Jet on Node
Onpremise Agent
Mobile Backend
Onpremise
Rest endpoint
OACCS ODCS
Product API
Inventory API
ODI
DB2 KM
updates
ProductProductProducts
Changes in
terminals
blocked
37. {37}
The WAGILE Approach
Sprint
1
Sprint
2
Sprint
3
Sprint
4
Sprint
5
Sprint
N
W-Agile Methodology
Functional
Technical
Solution
Design
New
Requirements
Decompositions
End to
end
testing
SIT,
UAT,
PPT
Release
Support
Several iterations – small scopeFew iterations – large scope
Solution build & component test
Factory Management & Governance
Centre of Excellence
Relea
se
Mgmt.
&
Deplo
yment
Detail Design
Sprint Backlog
Sprints
Scrum Master
DevOps
Pre-SIT
ModernisationFactory
Build & Test
Sprints
DevOps
Work Items Job Card
Cut
over
Go-
Live
Roll
out
39. {39}
I) Avoid the obvious!
Avoid legacy to legacy modernisation!!
A fundamental goal of legacy systems
modernisation is that the target system
doesn’t become a legacy [8]. Modular systems
are easier to evolve
40. {40}
II) No big bangs or cold turkeys
One piece a the time!
Understand the problem. Slice and dice your
elephant by defining boundaries in the
business capabilities. Modernise one piece
at the time. Starting small
Replenishment
Orders
Sales
Orders
Logist
ics
Tracki
ng
41. {41}
III)One domain to rule them all [26]
Gather together those things that change
for the same reason, and separate those
things that change for different reasons
[23][25]
[24]
Domain driven design (DDD) divides up a large system
into Bounded Contexts, each of which can have a unified
model - essentially a way of structuring Multiple
Canonical Models[24]
42. {42}
IV) The main prereq is setting the right goals
Do “You have to be this tall to use
microservices[28]”? – perhaps not!
Sure you need a degree of operational
maturity to adopt microservices, however
maturity is a journey that can be achieved
by setting the right goals and objectives.
So set the right goals!!!
[27]
43. {43}
V) Optimise for speed not efficiency [29]
Speed means learning about your customers and
giving them what they want at a faster
pace[29]. Use simple patterns automated by
tooling [27]. Learn the walk before running.
Speed wins in the
marketplace [27]
44. {44}
VI) 30+ years of research [5][10] proves that:
What you have seen early is just a point of
view (mine!). Do dui-diligence and find the
right approach for your environment. Get
inspiration from lots of research work
There is no silver bullet [26]
45. {45}
VII) The world runs on legacy
So, let’s learn legacy!
Credible research shows that there already
is a huge skill gap in the industry on
COBOL, RPG, PL/I, FORTRAN, PASCAL, C++, etc
[4][5][7][10][11][17].
“Study the past if you would define the future” -
Confucius
46. {46}
References (I)
[1] Legacy Information Systems: Issues and Direction by Bisbal, J.; Lawless, D.; Bing Wu;
Grimson, J.; October 1999 (http://bit.ly/1sVnOYo)
[2] Software Engineering by Ian Sommerville, 10th
edition 2015 (http://amzn.to/1Uo5QnB)
[3] Legacy systems definition by Techopedia(http://bit.ly/1UXRpf8)
[4] Portfolio Analysis, The business case, Aand solution for reducing risk in legacy environments
by Modern Systems (http://bit.ly/22Ezw69)
[5] The burden of legacy by Dr. Toby Sucharov and Philip Rice of Erudine (http://bit.ly/1XYkSWM)
[6] Legacy systems continue to have a place in the enterprise, by computerweekly, June 2008
(http://bit.ly/XeUQ5M)
[7] How Do Professionals Perceive Legacy Systems and Software Modernization? By Utrecht
University, 2014 (http://dl.acm.org/citation.cfm?id=2568318)
[8] DARWIN: On the Incremental Migration of Legacy Information Systems by Michael L. Brodie GTE
laboratories and Michael Stonebreaker University of California Berkeley, March 1993
(http://db.cs.berkeley.edu/papers/S2K-93-25.pdf)
[9] Banks still handicapped by IT legacy, by computerweekly, May 2012(http://bit.ly/1U0UN6N)
[10] Moving from your legacy system- COBOL conversion, cost, and consequences bt Logapps LLC,
August 2015 (http://bit.ly/24orJJ9)
[11] Who Maintains The Legacy Code by Vishwesh Bhat, October 2015 (http://bit.ly/1Y7L7du)
[12] A survey research into legacy system migration by Jesus Bisbal et al, 1997
(https://www.scss.tcd.ie/publications/tech-reports/reports.97/TCD-CS-1997-01.pdf)
[13] Security Concerns for Legacy Systems. An on-going process by Robert Annett, March 2015
(http://www.codingthearchitecture.com/2015/03/07/security_concerns_for_legacy_systems.html)
[14] Working with Legacy Systems, A Practical Guide to the Systems we Inherit and Maintain by
Robert Annett. 80% complete in May 2016 (https://leanpub.com/WorkingWithLegacySystems)
47. {47}
References (II)
[15] The Butterfly Methodology: A Gateway-free Approach for Migrating Legacy Information Systems
by Bing Wu et al (http://dl.acm.org/citation.cfm?id=852129)
[16] Why legacy modernization projects fail, advice on how to how to steer your project toward
Success by David Weldon, October 2014 (http://bit.ly/1t852xy)
[17] Academia needs more support to tackle the IT skills gap by Microfocus, March 2013
(http://bit.ly/22EAb7E)
[18] Microservice Architectures by Dr. Andreas Schroeder (http://bit.ly/1TOGZK8)
[19] Oracle Service Bus for Modernisation strategies by Robert Wunderlich, Ricardo Ferreira, Luis
Weir, October 2015 (http://bit.ly/1ZlWtZR)
[20] Misunderstanding the Problem? By John Marshall, October 2013 (http://bit.ly/1U0TVyT)
[21] Tweet by Adrian Cockcroft (https://twitter.com/adrianco/status/542850261782237184)
[22] Microservices by Martin Fowler (minute 14), GOTO conference, Berlin November 2014
(https://www.youtube.com/watch?v=wgdBVIX9ifA)
[23] Building microservices, designing fine-grained systems by Sam Newman, October 2015
(http://shop.oreilly.com/product/0636920033158.do)
[24] Bounded context by Martin Follower, January 2014
(http://martinfowler.com/bliki/BoundedContext.html)
[25] The single responsibility principle by Robert C. Martin, November 2009
(http://bit.ly/1VDgw79)
[26] The seven deadly sins of Microservices by Daniel Bryant, January 2016
(https://www.infoq.com/presentations/7-sins-microservices)
48. {48}
References (III)
[27] Microservice workshop – craft conference by Adrian Cockcroft, April 2015
(http://bit.ly/24os3aL)
[28] Microservice prerequisites by Martin Fowler, August 2014 (http://bit.ly/1wIjY58)
[29] Adopting Microservices at Netflix: Lessons for Team and Process Design by Tony Mauro, March
2015 (http://bit.ly/25DnkVc)
[30] The twelve factor app by Adam Wiggins (http://12factor.net/)
[31] Lehman's laws of software evolution by Meir "Manny" Lehman and László Bélády, Sep 1980
(https://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolution)
[32] Conway’s law by Melvin Conway, 1967 (https://en.wikipedia.org/wiki/Conway's_law)
[33] The reactive manifesto by Jonas Bonér, Dave Farley, Roland Kuhn, and Martin Thompson, Sep
2014 (http://www.reactivemanifesto.org/)