Micro Services are a new approach to software architecture. This presentation discusses how small they should be - and wether they are really service - in the SOA sense.
Continuous Delivery and Micro Services - A SymbiosisEberhard Wolff
Continuous Delivery profits from Micro Services - and the other way round. This presentation shows how the two technologies work together - and how Micro Services can be used to simplify the transition to Continuous Delivery.
Continuous Delivery and Micro Services - A SymbiosisEberhard Wolff
Continuous Delivery profits from Micro Services - and the other way round. This presentation shows how the two technologies work together - and how Micro Services can be used to simplify the transition to Continuous Delivery.
Developing Resilient Cloud Native Apps with Spring CloudDustin Ruehle
Distributed and massively scalable systems are difficult to design, implement, and operate. Further, microservice architectures are supposed to enable your business to be disruptive and innovative. Thankfully, two communities have emerged to facilitate easier solutions for these concerns and do a lot of the work for you: Spring Cloud OSS and Cloud Foundry. In this talk, we will take a deeper look at preventing cascading failures using Hystrix, as well as illustrate a mechanism for A/B testing using Eureka and blue-green deployments on Cloud Foundry.
High Availability and Scalability: Too Expensive! Architectures for Future E...Eberhard Wolff
High availability and scalability used to be solved in hardware - but that is quite expensive. This presentation shows how modern technologies like virtualization, cloud, NoSQL and new software architectures provide new and cheaper solutions - that are probably also even better than the traditional approaches.
Java Application Servers Are Dead! - Short VersionEberhard Wolff
Java Application Server have long dominated the middleware market. This presentations show the weaknesses of them and some alternatives.
Short version of http://de.slideshare.net/ewolff/java-application-servers-are-dead
CI/CD and Asset Serving for Single Page AppsMike North
A journey through best practices and technology for the modern build/deploy pipeline that your modern web app deserves! Also, an introduction to the concept and architecture of a new open source turnkey asset serving layer "Banker".
SpringOne Platform 2017
Marcin Grzejszczak, Pivotal; Cora Iberkleid, Pivotal
"“I have stopped counting how many times I’ve done this from scratch” - was one of the responses to the tweet about starting the project called Spring Cloud Pipelines. Every company sets up a pipeline to take code from your source control, through unit testing and integration testing, to production from scratch. Every company creates some sort of automation to deploy its applications to servers. Enough is enough - time to automate that and focus on delivering business value.
In this presentation we’ll go through the contents of the Spring Cloud Pipelines project. We’ll start a new project for which we’ll have a deployment pipeline set up in no time. We’ll deploy to Cloud Foundry and check if our application is backwards compatible so that we can roll it back on production."
How Netflix tests in production to augment more traditional testing methods. This talk covers the Simian Army (Chaos Monkey & friends, code coverage in production, and canary testing.
Continuous Deployment of your Application @SpringOneciberkleid
Spring Cloud Pipelines is an opinionated framework that automates the creation of structured continuous deployment pipelines.
In this presentation we’ll go through the contents of the Spring Cloud Pipelines project. We’ll start a new project for which we’ll have a deployment pipeline set up in no time. We’ll deploy to Cloud Foundry and check if our application is backwards compatible so that we can roll it back on production.
DevCon 2018 - 5 ways to use AWS with AlfrescoGavin Cornwell
Learn how to leverage AWS with Alfresco. We will look at current and future methods for deploying onto AWS, how you can use serverless and AI technologies to power your next generation extensions and how we’re using AWS internally to manage online trials and improve user experience.
Introducing Kafka Streams: Large-scale Stream Processing with Kafka, Neha Nar...confluent
The concept of stream processing has been around for a while and most software systems continuously transform streams of inputs into streams of outputs. Yet the idea of directly modeling stream processing in infrastructure systems is just coming into its own after a few decades on the periphery.
At its core, stream processing is simple: read data in, process it, and maybe emit some data out. So why are there so many stream processing frameworks that all define their own terminology? And are the components of each even comparable? Why do I need to know about spouts or DStreams just to process a simple sequence of records? Depending on your application’s requirements, you may not need a framework.
This talk will be delivered by one of the creators of the popular stream data systems Apache Kafka and will abstract away the details of individual frameworks while describing the key features they provide. These core features include scalability and parallelism through data partitioning, fault tolerance and event processing order guarantees, support for stateful stream processing, and handy stream processing primitives such as windowing. Based on our experience building and scaling Kafka to handle streams that captured hundreds of billions of records per day — this presentation will help you understand how to map practical data problems to stream processing and how to write applications that process streams of data at scale.
Developing Resilient Cloud Native Apps with Spring CloudDustin Ruehle
Distributed and massively scalable systems are difficult to design, implement, and operate. Further, microservice architectures are supposed to enable your business to be disruptive and innovative. Thankfully, two communities have emerged to facilitate easier solutions for these concerns and do a lot of the work for you: Spring Cloud OSS and Cloud Foundry. In this talk, we will take a deeper look at preventing cascading failures using Hystrix, as well as illustrate a mechanism for A/B testing using Eureka and blue-green deployments on Cloud Foundry.
High Availability and Scalability: Too Expensive! Architectures for Future E...Eberhard Wolff
High availability and scalability used to be solved in hardware - but that is quite expensive. This presentation shows how modern technologies like virtualization, cloud, NoSQL and new software architectures provide new and cheaper solutions - that are probably also even better than the traditional approaches.
Java Application Servers Are Dead! - Short VersionEberhard Wolff
Java Application Server have long dominated the middleware market. This presentations show the weaknesses of them and some alternatives.
Short version of http://de.slideshare.net/ewolff/java-application-servers-are-dead
CI/CD and Asset Serving for Single Page AppsMike North
A journey through best practices and technology for the modern build/deploy pipeline that your modern web app deserves! Also, an introduction to the concept and architecture of a new open source turnkey asset serving layer "Banker".
SpringOne Platform 2017
Marcin Grzejszczak, Pivotal; Cora Iberkleid, Pivotal
"“I have stopped counting how many times I’ve done this from scratch” - was one of the responses to the tweet about starting the project called Spring Cloud Pipelines. Every company sets up a pipeline to take code from your source control, through unit testing and integration testing, to production from scratch. Every company creates some sort of automation to deploy its applications to servers. Enough is enough - time to automate that and focus on delivering business value.
In this presentation we’ll go through the contents of the Spring Cloud Pipelines project. We’ll start a new project for which we’ll have a deployment pipeline set up in no time. We’ll deploy to Cloud Foundry and check if our application is backwards compatible so that we can roll it back on production."
How Netflix tests in production to augment more traditional testing methods. This talk covers the Simian Army (Chaos Monkey & friends, code coverage in production, and canary testing.
Continuous Deployment of your Application @SpringOneciberkleid
Spring Cloud Pipelines is an opinionated framework that automates the creation of structured continuous deployment pipelines.
In this presentation we’ll go through the contents of the Spring Cloud Pipelines project. We’ll start a new project for which we’ll have a deployment pipeline set up in no time. We’ll deploy to Cloud Foundry and check if our application is backwards compatible so that we can roll it back on production.
DevCon 2018 - 5 ways to use AWS with AlfrescoGavin Cornwell
Learn how to leverage AWS with Alfresco. We will look at current and future methods for deploying onto AWS, how you can use serverless and AI technologies to power your next generation extensions and how we’re using AWS internally to manage online trials and improve user experience.
Introducing Kafka Streams: Large-scale Stream Processing with Kafka, Neha Nar...confluent
The concept of stream processing has been around for a while and most software systems continuously transform streams of inputs into streams of outputs. Yet the idea of directly modeling stream processing in infrastructure systems is just coming into its own after a few decades on the periphery.
At its core, stream processing is simple: read data in, process it, and maybe emit some data out. So why are there so many stream processing frameworks that all define their own terminology? And are the components of each even comparable? Why do I need to know about spouts or DStreams just to process a simple sequence of records? Depending on your application’s requirements, you may not need a framework.
This talk will be delivered by one of the creators of the popular stream data systems Apache Kafka and will abstract away the details of individual frameworks while describing the key features they provide. These core features include scalability and parallelism through data partitioning, fault tolerance and event processing order guarantees, support for stateful stream processing, and handy stream processing primitives such as windowing. Based on our experience building and scaling Kafka to handle streams that captured hundreds of billions of records per day — this presentation will help you understand how to map practical data problems to stream processing and how to write applications that process streams of data at scale.
Vertical thinking for a simple architecture!
Micro Services are a new way of architectural thinking in web platforms. The key idea is strongly aligned on the unix philosophy: Create small services which are only responsible for one thing and make them work together. With this in mind, you get simple applications, which can be developed, deployed and scaled independent from each other.
The key challenge in using micro services is to decompose applications vertically, by their functional domains. Only with this, you are able to reduce dependencies and create simple applications.
On a technical side, micro services are backed by a wide support in different programming languages and open source frameworks. Especially the state of the art deployment mechanisms make this approach possible at all.
SOA, service-oriented architectures, burst on the scene in the new millennium as the latest technology to support application growth. In concert with the Web, SOA ushered in new paradigms for structuring enterprise applications.
At the Forward Internet Group in London, we are implementing SOA in unusual ways. Rather than a few, businessrelated services being implemented per the original vision, we have developed systems made of myriads of very small, usually shortlived services.
In this workshop, we will start by exploring the evolution of SOA implementations by the speaker. In particular, lessons learned from each implementation will be discussed, and reapplication of these lessons on the next implementation. Challenges (and even failures) will be explicitly identified.
We will arrive at a model of the current systems: An environment of very small services that are loosely coupled into a complex system. We explore the demise of acceptance tests in this complex environment, and the clever replacement of business metrics in their stead.
Finally, we will conclude with the surprising programmer development process impacts of this architecture. Indeed, bedrock principles of Agile have been rendered unnecessary, something that equally surprised us. (Presented at Agile India 2013)
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...Amazon Web Services
Gilt, a global e-commerce company, implemented a sophisticated microservices architecture on AWS to handle millions of customers visiting their site at noon every day. The microservices architecture pattern enables independent service scaling, faster deployments, better fault isolation, and graceful degradation. In this session, Emerson Loureiro, Sr. Software Engineer at Gilt, will share Gilt's experiences and lessons learned during their evolution from a single monolithic Rails application in a traditional data center to more than 300 Scala/Java microservices deployed in the cloud. Derek Chiles, AWS Solutions Architect, will review best practices and recommended architectures for deploying microservices on AWS.
Microservice With Spring Boot and Spring CloudEberhard Wolff
Spring Boot and Spring Cloud are an ideal foundation for creating Microservices based on Java. This presentation explains basic concepts of these libraries.
Continuous Delivery & DevOps in the EnterpriseEberhard Wolff
Continuous Delivery and DevOps have a different value proposition in the Enterprise and therefore must be implemented differently. This presentation ta
NoSQL Riak MongoDB Elasticsearch - All The Same?Eberhard Wolff
Gives a general introduction to NoSQL and modeling data with JSON. Goes on to compare MongoDB, Riak and Elasticsearch - that seem to be the same at first sight but are in fact pretty different. Presented at JavaLand.
Talk from the API Management Meeting, San Francisco, 9/11/2013. Covering how APIs change the way be build applications. Also covers why the API Economy will be a complex distributed system.
In the world of big systems and soa the services need to be highly available and always accessible. If developers forget to implement this, ops needs to step in and feel the void. This presentation aims to show you a relatively simple way to achieve this using the clustered filesystem GlusterFS. The main accent is on organising synchronisation, replication and disaster recovery.
But we're already open source! Why would I want to bring my code to Apache?gagravarr
From ApacheCon Europe 2015 in Budapest
So, your business has already opened sourced some of its code? Great! Or you're thinking about it? That's fine! But now, someone's asking you about giving it to these Apache people? What's up with that, and why isn't just being open source enough?
In this talk, we'll look at several real world examples of where companies have chosen to contribute their existing open source code to the Apache Software Foundation. We'll see the advantages they got from it, the problems they faced along the way, why they did it, and how it helped their business. We'll also look briefly at where it may not be the right fit.
Wondering about how to take your business's open source involvement to the next level, and if contributing to projects at the Apache Software Foundation will deliver RoI, then this is the talk for you!
The Office Add-ins April community call features an overview of the Office Add-ins platform, what’s new in the Excel JavaScript APIs, plans to implement the Edge WebView control for Office Add-ins and provided guidance about implications of this upcoming change for add-in developers, and the COM:Web add-in bridge feature and how Excel custom functions can be saved in a compatible format as XLL UDFs.
Office Add-ins feedback and additional content please visit the following.
Technical questions – https://stackoverflow.com/questions/tagged/office-js
Developer Center - https://developer.microsoft.com/en-us/office
• Issues – https://github.com/OfficeDev/office-js/issues
• Recommendations and suggestions - https://officespdev.uservoice.com/
Cloud system configurations and their dependencies can quickly grow into the thousands of virtual machine, network and storage components. Once software is included, the number of components can easily rise into six figures.
Frequent releases using continuous integration and deployment tools makes a repository of these components and relationships absolutely critical to cloud system integrity and quality of service no matter what cloud management tools you use.
Systems configurations are more naturally represented using a graph database than the relational representations used by traditional IT management products.
Our talk will explore how we use Neo4J to create a live, active, self-updating repository service, containing nearly all virtual hardware, network and software components and their dependencies, enabling continuous deployment in any cloud environment at scale.
Getting a Neural Network Up and Running with OpenLabMelvin Hillsman
Access to hardware for AI/ML for the everyday developer wanting to explore this field can be challenging to obtain and maintain for even the most rudimentary applications and testing. Needing to go beyond a single development machine running locally only increases this. OpenLab is curated infrastructure accessible to open source projects and individuals working within and on open source projects designed to help address this use case. Access to GPU, FPGA, IoT, and more, allows HPC, AI/ML, Deep Learning, or other testing and applications. In this presentation, we will walk through getting an account with OpenLab, obtaining resources, and getting a neural network up and running with an app that will bring back great childhood memories.
Similar to Micro Services - Neither Micro Nor Service (20)
Limiting software architecture to the traditional ideas is not enough for today's challenges. This presentation shows additional tools and how problems like maintainability, reliability and usability can be solved.
Continuous Delivery solves many current challenges - but still adoption is limited. This talks shows reasons for this and how to overcome these problems.
Four Times Microservices - REST, Kubernetes, UI Integration, AsyncEberhard Wolff
How you can build microservices:
- REST with the Netflix stack (Eureka for Service Discovery, Ribbon for Load Balancing, Hystrix for Resilience, Zuul for Routing)
- REST with Consul for Services Discovery
- REST with Kubernetes
- UI integration with ESI (Edge Side Includes)
- UI integration on the client with JavaScript
- Async with Apache Kafka
- Async with HTTP + Atom
This presentation show several options how to implement microservices: the Netflix stack, Consul, and Kubernetes. Also integration options like REST and UI integration are covered.
There are many different deployment options - package managers, tools like Chef or Puppet, PaaS and orchestration tools. This presentation give an overview of these tools and approaches like idempotent installation or immutable server.
Held at Continuous Lifecycle 2016
How to Split Your System into MicroservicesEberhard Wolff
Splitting a system into microservices is a challenging task. This talk shows how ideas like Bounded Context, migration scenarios and technical constraints can be used to build a microservice architecture. Held at WJAX 2016.
Microservices and Self-contained System to Scale AgileEberhard Wolff
Architectures like Microservices and Self-contained Systems provide a way to support agile processes and scale them. Held at JUG Saxony Day 2016 in Dresden.
Data Architecturen Not Just for MicroservicesEberhard Wolff
Microservices change the way data is handled and stored. This presentation shows how Bounded Context, Events, Event Sourcing and CQRS provide new approaches to handle data.
We assume software should contain no redundancies and that a clean architecture is the way to a maintainable system. Microservices challenge these assumptions. Keynote from Entwicklertage 2016 in Karlsruhe.
Nanoservices are smaller than Microservices. This presentation shows how technologies like Amazon Lambda, OSGi and Java EE can be used to enable such small services.
Microservices: Architecture to scale AgileEberhard Wolff
Microservices allow for scaling agile processes. This presentation shows what Microservices are, what agility is and introduces Self-contained Systems (SCS). Finally, it shows how SCS can help to scale agile processes.
Microservices, DevOps, Continuous Delivery – More Than Three BuzzwordsEberhard Wolff
Microservices, DevOps and Continuous Delivery are three hypes at the moment. This talk looks into the relationships between these three approaches and gives an idea how these approaches help to solve concrete problems. Held at Continuous Lifecycle 2015.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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/
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.
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
12. Micro Services: Definition
• Small
• Independent deployment units
• i.e. processes
Eberhard Wolff - @ewolff
• Any technology
• Any infrastructure
Micro
Service
Server
Micro
Service
Server
14. Why Micro Services?
• Strong modularization
• Small deployment units
• Faster & easier deployment
• Continuous Delivery
• Less risk in deployment
• Choose best technology for each
service
Eberhard Wolff - @ewolff
19. Game of Life in one line of APL
life←{ ⍝ John Conway's "Game of Life".
↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵
⍝ Expression for next generation.
}
LOC is really a bad metric
dyalog.com
Eberhard Wolff - @ewolff
20. Eberhard Wolff - @ewolff
Larger?
• Micro Services have an overhead
• Build & deployment pipeline
• Version control
21. 1st Law of Distributed Objects
• Don’t Distribute Your Objects!
• Too much remote communication &
overhead
• Lesson learned from CORBA etc
• http://martinfowler.com/bliki/
FirstLaw.html
Eberhard Wolff - @ewolff
23. 1st Law of Distributed Objects &
Micro Services
• Small Micro Services mean a lot of
communication
• Violate the 1st Law
• Seems to work, though
• http://martinfowler.com/articles/
distributed-objects-microservices.
Eberhard Wolff - @ewolff
html
24. Too small =
too much
communication
Eberhard Wolff - @ewolff
28. How to scale
Eberhard Wolff - @ewolff
agile?
Implement
more feature
29. Eberhard Wolff - @ewolff
Conways Law
Architecture
copies
communication structures
of the organization
30. Conway’s Law as a Limit
• Won’t be able to create an
architecture different from your
organization
• I.e. mobile, GUI & database team
• Three technical artifacts
Eberhard Wolff - @ewolff
31. Conway’s Law as an Enabler
• Desired architecture =
project structure
• Team for each Micro Service
• Team should be responsible for
meaningful features
• Ideal: Independent features
Eberhard Wolff - @ewolff
32. On team can
build and
deploy features
Eberhard Wolff - @ewolff
–
independently!
33. Micro Services
must provide a
sensible set of
functionality
Eberhard Wolff - @ewolff
34. Conway’s Law & Size
• Upper limit: What a (small) team
can handle
• …and a meaningful set of features
• Probably not too small
• Lower limit: Depends on overhead /
technology
Eberhard Wolff - @ewolff
35. Micro Service = Micro?
• Size doesn’t matter too much
• Teams must be able to work
independently
• Small enough for one team
• Not too much overhead
Eberhard Wolff - @ewolff
38. Service?
unassociated
loosely coupled
units of functionality
that are self-contained
(Wikipedia, SOA)
Eberhard Wolff - @ewolff
39. Portal / Web
Service
Service
Service
Service
Eberhard Wolff - @ewolff
SOA
Service
Service
Service
Service
Integration
CRM Order
40. Eberhard Wolff - @ewolff
SOA
• Enterprise wide effort
• Services provided by different
organizational units
• Large monolithic deployments
• …offer multiple services
• Enterprise-wide integration
• Portal / Web as universal GUI for all
services
41. Eberhard Wolff - @ewolff
SOA Service
• Just one interface of a large
monolith
• No GUI
• Different projects for different
services
42. Micro Services CRM
Eberhard Wolff - @ewolff
Forecast
Reporting
Mass EMailing
Web Tracking
Integration
43. SOA vs. Micro Services
Eberhard Wolff - @ewolff
• Technology: Similar
• i.e. integration
• But: Smaller deployment units
44. Micro Services just
structure the
application
Like JARs etc.
Eberhard Wolff - @ewolff
45. GUI for Micro Services
• Meaningful features will need a GUI
• Customer talks to one team for GUI
& logic
• Less communication
• 1st Law of Distributed Objects
Eberhard Wolff - @ewolff
46. Micro Services
Eberhard Wolff - @ewolff
SOA
• Enterprise wide
effort
• Services provided
by different
organizational
units
• Large monolithic
deployments
• …offer multiple
services
• Just one project
• Services provided
by one team
• Small deployments
• …offer one service
each
47. Micro Services
Eberhard Wolff - @ewolff
SOA
• Enterprise wide
integration
• Portal / Web as
universal GUI
for all services
• Just one project
• Each
component has
its own GUI
49. Conclusion: Micro Services
• Micro Services are a new way of
modularization
• More technological freedom
• Easier, faster and less risky
deployment
Eberhard Wolff - @ewolff
50. Conclusion: Micro
Eberhard Wolff - @ewolff
• Size not too important
• Meaningful set of features
• Smaller than SOA services
51. Conclusion: Service
• Modules of an application
• Include GUI
• Provide not just an interface to call
Eberhard Wolff - @ewolff
• Structure one project
• …not the Enterprise IT