cloud strategy with a set of pluggable modules deployed on a SaaS architecture. • multi-layer (bazaar vs cathedral) • pluggable serverless microservices • API-first • event-driven • Infrastructure-as-Code • AI-enabled services
Tomcat / JBoss • Shared RDS database managed by Hibernate • Autoscaling group for EC2 instances, Elastic IP Pros • Everything within a single package • Simple CI workflow • Easy services coordination Cons • Lifecycle: one change in code requires a full release of Neosperience • Scalability / Costs: planning autoscale for different usages is not easy The age of the monolith ( 2008 — 2012 )
for each service within NGINX • DynamoDB used as façade towards clients • RDS managed through Spring Data • Coordination service (Module Manager) Pros • Smaller services, same technology for everything • Immutable deployments: from CI to Docker registry • Easy services coordination Cons • Still paying for idle (database, instances) • Manual provisioning of resources (through Beanstalk) Separation of concerns ( 2012 — 20125)
with ephemeral compute power that comes into existence on request and disappears immediately after use. Use of this architecture can mitigate some security concerns such as security patching and SSH access control, and can make much more efficient use of compute resources. These systems cost very little to operate and can have inbuilt scaling features.” — ThoughtWorks, 2016
its own persistence • Communication is handled through Kinesis • Immutable deployments Benefits • Many small packages • Extremely fast release cycles (smaller changes) • No servers to manage (woot-woot) • Scalability at its best / Cost reduction • no difference between dev/stage/production Here comes the age of serverless ( 2015 — now)
perspective towards software development (there is no one size fits all architecture) • Raises the bar of team technology adoption • Required shifting towards Cloud Native paradigm • Expensive when utilization close to 100% • No support for dedicated hardware
domain specific computing units using Domain Driven Development (DDD) Do we want to reinvent the wheel? AWS provides a variety of managed services that can ease out software development, reducing time to market of orders of magnitude. Every time we had to implement a new functionality we asked ourselves whether there was an AWS service for that. How to deal with the outside world? Neosperience is a B2B2C ISV vendor. Our product can be used SaaS by companies or integrated through API. We need to rely on web standards REST and OAuth2 How about vendor lock-in? Serverless does not lock you in. Data does. But it’s the same with languages, tools or frameworks. Neosperience Cloud — FAQ
5-10 microservices each domain ✓ a dozen of support services (monitoring, maintenance, OAuth2, Organization, multi-tenancy, etc.) Serverless ✓ 100% Serverless except for ML model training Lambda Functions ✓ 300+ functions AWS Resources ✓ 450+ AWS resources ✓ managed through a 25+ CloudFormation stacks Neosperience Cloud — wrap up Time to market ✓ improved from months to weeks ✓ business features released every sprint ✓ technical features released multiple times a week Costs ✓ reduced by an order of magnitude Ownership ✓ developers provision cloud resources ✓ innovation in encouraged, failure impact is bounded ✓ shifted from running after business requirements to waiting for business requirements Business Value ✓ Dev Team has full control on delivery ✓ Business Team has control on feature delivery
of technologists with the goal of building tools and knowledge in the Kubernetes and cloud-native space. It hosts different open source projects that aim at simplifying the deployment and operation of Kubernetes-based platforms and streamlining the delivery of cloud-native apps on public cloud, private clouds and bare-metal environments. Everyone is welcome to participate, contribute, and help push forward the developer experience of using Kubernetes and cloud-native infrastructure in production! works great with karavel.io