The Gib Five - Modern IT Architecture
- 1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
The Big Five
IT Architektur Today
Anatole Tresch, Principal Consultant AD-ZH
anatole.tresch@trivadis.com
Twitter: @atsticks
- 3. The good old times…
Schwarzwaldgipfel3 22.03.2018
• Requirements
• Specification
• Implementation
• Operations
• Maintenance
-> Clear targets
-> Long term and relatively stable
- 4. …and as of today?
Schwarzwaldgipfel4 22.03.2018
• New, complex requirements
• Increased flexibility
• Functional
• Time wise
• Multi device support
• Truely distributed systems
• Exploding Complexity and maintenance efforts
• 24x7 world-wide operations
- 8. Advantages of Microservices
Schwarzwaldgipfel8 22.03.2018
• Independent teams -> Scaling the development process, enable agility
• Easy to adapt or replace
• Stable architecture
• Long term productivity in development
• Independent scalable
• Emracing with failures of other services rendering the system as a whole stable
• Continuous Delivery
• Managed and flexible Technology stack
- 9. Disadvantages of Microservices
Schwarzwaldgipfel9 22.03.2018
• Exposed Complexity
• Network-Latencies, Load balancing or network failures
• Increased failure probability for the system as a whole
• Complex software distribution and rollback
• High efforts for migrating legacy systems towards MS
• Logging and Monitoring
• Different Time zones
• CAP-Theorem (Availability vs. Consistency)
• Multiple programming languages and software stacks
- 11. Advantages of Containers
Schwarzwaldgipfel11 22.03.2018
• Portability
• Efficient ressource consumption (CPU, RAM, FS)
• Restartability, simple recovery
• Simply resettable
• Full runtime isolation incl. dependencies
- 12. Disadvantages of Containers
Schwarzwaldgipfel12 22.03.2018
• Kernel isolation is complex
• Update of multiple containers in case of issues/upgrades
• Many configuration options may lead to errors (eg privileged containers)
• Quality of container registries
- 17. DevOps in Practice
Schwarzwaldgipfel17 22.03.2018
• Automation of processes with CI- and CD-Tools as „Deployment Pipeline“:
• Code – Development and review, version control and merging/branching
• Build – Continuous-Integration-Tools, Build Status
• Test – Static code analysis and dynamic tests
• Package – Packing into a binary formatted deliverable
• Release – Change Management, Promoting and publishing of releases
• Configure – Configuration / System Management tools
• Monitoring – Application performance, Customer feedback
• Common Tools: Docker, Jenkins, Ansible, Puppet
- 19. BigData – «Big»
Schwarzwaldgipfel19 22.03.2018
• Volume
Amount, volume
• Velocity
Speed at which data is generated or transferred
• Variety
Different data types and -sources
- 20. BigData – «Data»
Schwarzwaldgipfel20 22.03.2018
• Improvements of bussiness processes in all areas, especially in
• Technology evolution and information technology
• Marketing
• Distribution and service optimization
• Trend research and detection
• Prognosis
- 21. IoT
Schwarzwaldgipfel21 22.03.2018
• Internet of Things
• Vision of a global infrastructure
of information societies
• Linking of physical and virtual things
based on information and communication
technology
• Applicable to all areas
- 23. Artificial Intelligence
Schwarzwaldgipfel23 22.03.2018
• Automating intelligent behaviour and
machine learning
• What is „intelligent behaviour“ ?
• Key drivers of the digital revolution
• Artificial model of human comparable decision logic
• Often only «fake» intelligence:
• Simulation of „intelligent behaviour“ with simple algorithms
- 24. Impact
Schwarzwaldgipfel24 22.03.2018
• Automatisierung intelligenten Verhaltens und
Maschinenlernen
• „Intelligenz“ ?
• Wegweisende Antriebskräfte der Digitalen Revolution
• Nachbildung menschenähnlicher Entscheidungsstrukturen
• Oftmals «nachgeahmte» Intelligenz:
• Simulation „intelligentes Verhalten“ mit einfachen
Algorithmen
And in Practice?
- 25. Modern Architecture in Practice
Schwarzwaldgipfel25 22.03.2018
• Multiple Solution Options
• Distribution and separation creates new concerns
• Combination of *old* and *new*
• Challenging traditional concepts
• Cloud Native Know How is rare
- 26. Know How Example – Web-Shop for …
Schwarzwaldgipfel26 22.03.2018
• Webshop
• 1 Database
• 1 Business Tier (REST API)
• 1 Frontend
// Add a product
POST /cart/product/123
// View basket
GET /cart
// View products
GET /products
// Place Order
POST /order (with product data)
- 27. Know How Example – Web-Shop
Schwarzwaldgipfel27 22.03.2018
• Let’s split up in «Microservices»
• Products API
• Order API
• Cart API
// Place Order
POST /order (with product data)
// View products
GET /products
// Add a product
POST /cart/product/123
// View basket
GET /cart
Service
Service
Service
- 28. Know How Example – Web-Shop
Schwarzwaldgipfel28 22.03.2018
• The «Product» Microservice
• REST Service
• Messaging Service
• Datastore Service
• Monitoring Service
// View products
GET /products
- 29. Know How Example – Web-Shop
Schwarzwaldgipfel29 22.03.2018
• Final draft Microservice Architecture
-> Wow! We have already 12 microservices!
Products Orders Cart
REST Service REST Service REST Service
Messagebus Messagebus Messagebus
Datastore Datastore Datastore
Monitoring Monitoring Monitoring
- 39. ...and our new toys do not really help...
Schwarzwaldgipfel39 22.03.2018
- 46. Going Resilient…46 19.10.16
Characteristics of Resilient Systems
• Asynchronous communication
• Idempotente, self-contained events
• Location transparency
• Isolation & recursive restartability
• Complete Input and Output Validation
• Managed Error Handling and Monitoring
• Supervision
• Minimal shared state, redundancy
- 47. Going Resilient…47 19.10.16
Resilient Platforms
• Cloud (resilience delegated to cloud provider)
• Orchestration (zB Mesos, Kubernetes, Openshift)
• Software-Containers
In most cases on-premise operations is not recommened.
Mind Cloud-Vendor-Lock-in.
- 48. Going Resilient…48 19.10.16
Resilient Software Design
• Bounded Queues
• Fan out & quickest reply
• Circuit Breakers and Fail Fast
• Timeouts
• Throttling, Semaphores
• Failover
• Degradation of service level
- 49. DevOps
• DevOps ensure the required flexibilität and agility
• Without DevOps the archicture and systems will stay inflexible
• DevOps Plattforms can be set in production within hours
• Establish collaborative working and accounting mechanisms
• Use PoCs and Pilot projects
- 50. Managing Data
• Storage is cheap
• Store data easy accessible and ready for analysis
• Support on-the-fly queries
• Use advantages of no-sql
• Use event driven mechanisms, zB Event-Sourcing nutzen
• Scale in the cloud (Storage and CPU)
- 51. Artificial Intelligece
• Still in ist early days
• All services available in the cloud
• Huge impact on many today‘s manual processes to be expected
- 53. Schwarzwaldgipfel53 22.03.2018
…well, basically «only» microservices…
We just wanted a modern architecture…
…ok. Perhaps also some BigData ând IoT,
Cause it’s so cool...
DevOps belongs to the Charta of Human Rights
for developers ;-)
We simply ignore any Legacy-Systems…
- 54. A modern Cloud Architecture
Schwarzwaldgipfel54 22.03.2018
1. Scalable
2. Microservices and Container Based
3. Elastic amd Load Balanced
4. Decoupled by APIs
5. With DevOps and Continuous Deployment in Place
6. With a resilient and Failure Tolerant Design
7. Connected
8. Collecting Data
9. Monitored
- 56. Schwarzwaldgipfel56 22.03.2018
DANKE
• Fallacies of Distributed Computing:
https://de.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
• 21 DevOps und Docker Reference Architectures:
https://devops.com/21-devops-docker-reference-architectures/
• Cloud Native Computing Foundation:
https://www.cncf.io/
• Docker: http://docker.com
• Openshift: http://openshift.org
Anatole Tresch
Principal Consultant AD-ZH
anatole.tresch@trivadis.com
Twitter: @atsticks