Download - Microservices from operations aspect
David Papp @pappdav
Chief Architect @ghostmonitor
Who we are?
• Established in May 2015• The team headcount: 11• Company profile: E-Commerce analytics
What technologies do we use?
Microservices from operational aspect
”…the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
- Martin Fowler
12factor application1. Codebase2. Dependencies3. Config4. Backing services5. Build release run6. Process
7. Port binding8. Concurrency9. Disposability10.Dev/Prod parity11.Logs12.Admin process
Microservices patterns•Service communication HTTP/AMQP or
asynchronous protocols
•API gateway
•Service discovery
•Multiple service instances per host
•Serverless deployment
•Database per Service
•Event-driven architecture
•Database triggers
Database per Service
Service discovery
The problems…1. Framework
2. Local development
3. Testing
4. Build
5. Deploy
6. Infrastructure
7. Monitoring
8. Logging
Framework•Koa.jso gm-core-libo Moduleso SQSo Service Discoveryo Rediso APIo MongoDB
Local development1. Docker2. Docker-compose3. Codeship jet4. Minikube5. Kube-Solo
Testing & Build•Unit test
•E2e test
•Integration test
codeship-services.yml
codeship-steps.yml
Deploy – Ever Given•Codeship2Kubernetes wrapper
•Written in Ruby
•Async• Worker
•Message queue for Redis
•Notification
•Rollback ( soon )
•Template management• Resource control• Version control• Environment variables
Infra
stru
ctur
eInfrastructure
Monitoring •NewRelic
•Trace by Risingstack
•Apex.sh
•Pingdom
Logging•Airbrake/Errbit
•Logentries
•Trace by Risingstack
Service types• API
•Service
•Mservice
•Worker
System statistics• 50+ different services
• 550+ containers
• 100+ different builds
Microservices cobweb
Dashboard
Service communications
Stat communications
Thanks
Questions?