101 advantages Its faster Its more portable It
101 advantages • It’s faster • It’s more portable • It improves the dev cycle • It improves the ops cycle • It promises to help make you more agile
How did we do that? Lets look at some “code”
Dockerfile FROM [BASE_IMAGE] COPY [SOME_CONTENT] CMD [TO_RUN_ON_STARTUP]
Build and Run Dev docker build –tag MY_CONTAINER_NAME. docker run MY_CONTAINER_NAME Test (CI? ) docker build –tag MY_CONTAINER_NAME. docker push MY_CONTAINER_NAME Ops (and CD? ) docker run MY_CONTAINER_NAME
Azure Container Services
Azure Container Service Application Orchestrator Infrastructure
Azure Container Service
Where is the service boundary? Shelf Fork. Lift Stock. Item Picker Picking. Order Processing Stock. Item Company Valuation Stock. Report General Ledger Finance
Building Microservices, Sam Newman, O’Reilly Media • A change in one service does not require a change in another • Related behavior sits together, unrelated behavior sits separately Building Microservices, Sam Newman, O’Reilly Media
Bounded Contexts? Shelf Fork. Lift Stock. Item Picker Picking. Order processing Stock. Item Company Valuation Stock. Report General Ledger Finance
Bounded Contexts? Shelf Fork. Lift Stock. Item Picker Picking. Order processing Stock. Item Company Valuation Stock. Report General Ledger Finance
Things? Shelf Fork. Lift Stock. Item Picker Picking. Order Processing Stock. Item Company Valuation Stock. Report General Ledger Finance
Sam Newman’s High Level Advice: Do whatever works • Err towards the monolithic side • Getting boundaries wrong can result in problems, e. g. chatty services • Easier to move boundaries in than out • NOTE: this means that if you are new to microservices it can be easier to start with an existing monolithic codebase • Bypass the temptation to decompose too early
How did we build that? Lets look at the configuration
Comparing OS Architectures Platform Independent Docker Platform Specific Docker Client Docker Compose Docker Swarm Docker Registry REST Interface Docker Engine libcontainerd libnetwork graph plugins Layer Capabilities Other OS Functionality Containerd + run. C Compute Services Windows Linux Control Groups Namespaces Job objects Object Namespace, Process Table, Networking Control Groups Namespaces cgroups Pid, net, ipc, mnt, uts Registry, Union like filesystem extensions Layer Capabilities Union Filesystems: AUFS, btrfs, vfs, zfs*, Device. Mapper Other OS Functionality
Not Everything is a Docker Container
www. microsoft. com/itprocareercenter www. microsoft. com/itprocloudessentials www. microsoft. com/mechanics https: //techcommunity. microsoft. com
http: //myignite. microsoft. com https: //aka. ms/ignite. mobileapp
- Slides: 27