This document provides an overview of microservices architecture and containers. It discusses key microservices principles like independent deployability and private data ownership. It explains that containers provide lightweight isolation and allow applications to be packaged and run consistently. Popular container orchestrators like Kubernetes are able to automate deployment, scaling, and management of containerized applications. Microservices platforms and containers can help reduce integration costs by enabling independently deployable modules.
4. Cloud Computing
Advanced Mobile
Technologies
UI/UX & Graphic
Design
Cross Platform
Development
Advanced Web
Technologies
ALM & DevOps Software Architecture
IOT & Embedded
Software
Training &
Mentoring
Development
Management &
Methodology
About CodeValue
5. Debug like a wizardQuit debugging, spend more time writing brilliant software
Magic Glance / Figure out complex expressionsLINQ Debugging / Know the flow of your LINQ queries
Reveal / Focus on data that actually matterSearch/ Find that needle in a haystack of data
With our Visual Studio extension for C#, follow the road to a bug-free world
oz-code.com | @oz_code
6. Microservices Architecture (MSA) - Wikipedia
“Microservices is a specialization of and implementation approach for
service-oriented architectures (SOA) used to build flexible,
independently deployable software systems”
“Services are small in size, messaging enabled, bounded by contexts,
autonomously developed, independently deployable, decentralized
and built and released with automated processes”
“The benefit of distributing different responsibilities of the system into
different smaller services is that it enhances the cohesion and
decreases the coupling”
6
8. Micro Service Architecture
Some principles:
A micro service should be less then 100 lines of code
100 is just a number that emphasizes: small
Usually can be developed in one scrum sprint
It should be easy to understand, fast to deploy, and cheap to
reimplement (throw the old one)
A micro service should be independently developed &
deployed
A micro service should has private data ownership
Eventual Consistency
Versioning
8
10. Hosting & Containers
To execute code, it has to be hosted
The host provides the runtime environment and facilities
Traditional hosts:
Process - Exe, Windows Service, Windows Task Scheduler,
Unix Demon, App Domain, COM Service, Windows Job Object
Web Server – IIS, Apache, NGINX
Modern Hosts
Virtual Machine (on premise hosted & cloud Hosted)
Amazon Lambda, Azure Functions
Containers – Docker, Service Fabric, Windows Containers, Hyper-V Containers
10
11. What’s a Container?
Containers are made possible by a set of facilities in the OS Kernel
(part of Linux since 1982)
Allow lightweight partitioning of a host OS into isolated spaces
applications can safely be hosted and run in this space
A container solution includes a standard spec for defining the
contents and dependencies of its applications (OCI)
A layered file system with copy-on-write capabilities to share and
isolate files (lib, exe, etc.)
Container Hub or Registry for sharing images
11
12. Server
Host OS
Hypervisor
Server
Host OS
Docker Engine
Guest
OS
Guest
OS
Guest
OS
Bins/Libs Bins/Libs Bins/Libs
App A App A’ App B
Bins/Libs Bins/Libs
AppA
AppA’
AppB
AppB’
AppB
AppB’
AppB
AppB’
Containers are isolated,
but share OS and, where
appropriate,
bins/libraries
Bins/Libs
13. Coordinators/Orchestrators
Container Coordinators Clustering
Automating deployment, scaling (load balancing), and management of
containerized applications
Kubernetes (Google), Swarm mode (Docker), Apache Mesos (UC Berkeley),
Service Fabric (Microsoft)
Managed environments: Azure Kubernetes Service (AKS), Azure Container
Instances, Amazon Elastic Container Service, Google Kubernetes Engine, Open
Stack, Azure Service Fabric, Red Hat OPENSHIFT
13
14. Container Orchestrators Tasks
Scheduling:
Find a suitable machine on which to run the container
Affinity/Anti-affinity: Specify that a set of containers should run nearby each other
Or sufficiently far apart (for availability)
Health monitoring:
Watch for container failures and automatically reschedule them
Failover:
Keep track of what is running on each machine
Reschedule containers from failed machines to healthy nodes
Scaling:
Add or remove container instances to match demand
Networking:
Provide an overlay network for coordinating containers to communicate across multiple host machines
Service discovery:
Enable containers to locate each other automatically
Even as they move between host machines and change IP addresses
Coordinated application upgrades:
Manage container upgrades to avoid application down time
Enable rollback if something goes wrong
14
15. Microservices Platforms Benefits
Modern microservices platforms such as Azure Kubernetes Service
significantly reduce the cost of module integration
Shifting the cost equilibrium towards more modules
Especially true when using proven PaaS platforms
Both public and private cloud based
The integration cost decreases with two factors:
Mature PaaS platform
Proven DevOps process
15
CodeValue is rooted in the Israeli High-tech ecosystem and expertise
Founded by a team of visionary technical experts and consultants in 2010
A team of 200 experts (over 30 leading architects), and growing…
Built around nurturing talents, hiring experts and developing potentials
Growing through a track record of solving complex technical challenges
Successfully implementing software development processes in companies of all scales
CodeValue is at the leading edge of advanced software development
Community of experts globally recognized by Microsoft, Google and Amazon
Early access to new technologies, hands-on practice at all levels
Decades of “real world” development experience
1 Microsoft MRD, 3 Microsoft MVP, 2 Google GDE & Mentors, AWS certified
CodeValue is rooted in the Israeli High-tech ecosystem and expertise
Founded by a team of visionary technical experts and consultants in 2010
A team of 200 experts (over 30 leading architects), and growing…
Built around nurturing talents, hiring experts and developing potentials
Growing through a track record of solving complex technical challenges
Successfully implementing software development processes in companies of all scales
CodeValue is at the leading edge of advanced software development
Community of experts globally recognized by Microsoft, Google and Amazon
Early access to new technologies, hands-on practice at all levels
Decades of “real world” development experience
1 Microsoft MRD, 3 Microsoft MVP, 2 Google GDE & Mentors, AWS certified