public API • Use the right tool for the job • Secure your services • Be a good microservices citizen • Organizational changes matters • Automate where plausible
I do zero downtime or blue green deployments? How do I keep my containers alive? How can my containers talk to each other? How do I do service discovery? What about secrets? How do I best optimize my "pool of compute”?
rights reserved. Amazon Elastic Container Service • Highly scaleable, high performance container management system. • Eliminates the need to install, operate and scale your own container management system.
rights reserved. Kubernetes • Container orchestration platform that manages containers across your infrastructure in logical groups • Rich API to integrate 3rd parties • Open Source
rights reserved. Fargate Fargate mode! For ECS right now, for EKS in 2018 • No infrastructure to manage or scale • Scale seamlessly on demand • Manage everything at the container level
• e.g. git and AWS CodeCommit, registries • Smart image tagging • Shared dependencies • Deploy fast and often (and small!) • For Kubernetes: fault tolerance requires an extra step! Make sure you have tolerance for failure, and use autoscaling groups.
of the built-in AWS alert systems • e.g. aws-log driver or CloudWatch • Put checks or limits on services or clusters scaling • Log sorting for severity is important to avoid unnecessarily sending an alert
AWS CloudWatch, Datadog • Logging for both containers and hosts • Avoid unnecessary noise here too: • Log levels! • Meaningful log messages (don’t just log the default) • Logs should actually help
• e.g. CodeCommit, CodePipeline, CodeDeploy • …but add checks by a human • Templates and tools are your friends! • CloudFormation, etc: use tools to help setup and create repeatable infrastructure
• Not all languages need to build the same • Set Service level scaling policies, plus cluster scaling policies • Regardless of orchestration tool, use a VPC! • Multi AZ • Bottom line: use what works for you!