SlideShare a Scribd company logo
1 of 39
Running micro service
environments is no free lunch
Dynatrace – Alois Mayr
B2W digital – Alexander Ramos
@alexander__ @mayralois
@alexander__ @mayralois
Enterprises often still run traditional monolithic applications
@alexander__ @mayralois
Deliver value at the speed of business
700 deployments / YEAR
10 + deployments / DAY
50 – 60 deployments / DAY
Every 11.6 SECONDS
@alexander__ @mayralois
-1000ms +2%
Response Time Conversions
-1000ms +10%
+100ms -1%
Not only fast delivered but also delivering fast
@alexander__ @mayralois
Not only technical metrics count…
@alexander__ @mayralois
…but also business metrics
@alexander__ @mayralois
@alexander__ @mayralois
@alexander__ @mayralois
Biggest LatAm e-commerce company
R$ 10+ billion revenue
(~ U$ 3 billion)
Americanas, Submarino
Shoptime, Soubarato
Rio de Janeiro and São Paulo,
Brazil
@alexander__ @mayralois
Why are we doing micro services?
@alexander__ @mayralois
July 2014
The Night of Darkness
@alexander__ @mayralois
What exactly was broken?
@alexander__ @mayralois
We didn’t know fast enough
Something in the monolith!
@alexander__ @mayralois
Who’s involved in fixing it?
Devs write bugfixes
Ops had to act like heroes
during incidents
@alexander__ @mayralois
What we have changed!
@alexander__ @mayralois
@alexander__ @mayralois
Change responsibilities!
 Code business rules into micro services
 Each dev team owns its micro services
 You developed it, you operate it in production
 Dev teams have on call rotation too
 Ops keep the platform, the databases, and facilities (logging, authorization, etc)
@alexander__ @mayralois
Change communication!
 Unified chat room and alerting system
 Transparency is key
 More and Faster deployments
(~50/day)
@alexander__ @mayralois
How we did it?
@alexander__ @mayralois
Empower your developers!
 Devs need to be responsible for running services in production
 Devs know the business domain
 Devs know who should fix each service
@alexander__ @mayralois
From monolith to micro services
Monolith
cart freight
sku
inventory
Micro services
cart freight
sku inventory
@alexander__ @mayralois
Dynatrace Ruxit service flow makes micro services visible
@alexander__ @mayralois
Dynatrace Ruxit service flow makes micro services visible
@alexander__ @mayralois
The Platform
@alexander__ @mayralois
server server server server server server server server server server server server
Apache Mesos
Marathon Framework
Run micro services
Auto-healing
Service discovery
Chronos Framework
Run batch jobs
Retry
Orchestration API
CI / CD
One PaaS to run all micro services
@alexander__ @mayralois
Which technology a micro service is built?
We don’t care!
@alexander__ @mayralois
@alexander__ @mayralois
What have we learned?
@alexander__ @mayralois
#1 – From monolith to bad app
 First services didn’t scale well
 It’s all about resource sharing
- File descriptors
- Connection pools
- Docker image sizes
If it needs local state, it is a bug
@alexander__ @mayralois
#2 – Legacy systems
 Most of your bad apps are legacy systems
 We keep legacy systems aside from Mesos
 Do Ops teams own legacy systems?
- 99.99% of the time the answer is yes
- So, don’t mess with them
- Write as many monitors as possible
- Ops team should invest some time in auto remediation
Don’t treat legacy systems like micro services
@alexander__ @mayralois
Datacenter BDatacenter A
#3 – Multi datacenter PaaS
server server server server server server server server server server
Apache Mesos
Marathon
Framework
Chronos
Framework
Orchestration API
CI / CD
Marathon
Framework
Chronos
Framework
(failover)
Apache Mesos
Don’t put all your eggs in one basket
@alexander__ @mayralois
Filters wrong
HTTP Methods (415)
HTTP Caching
policy (304)
Throttling (503)
Request/response
transforming
#4 – Seriously, you need an API Gateway
Edge
balancer
Api
gateway
Api
gateway
Api
gateway
Edgetraffic
Cart
Freight
Sku
Inventory
Build micro service architecture with API Gateway
@alexander__ @mayralois
#5 – Databases
 Flexibility is overrated when talking about databases
 Databases need state and overcommit
 Keep your database clusters isolated per application
 Right tool for the right problem (don’t throw everything on relational DB or on MongoDB)
 Run databases out of Mesos cluster. It is not that hard
Manage state isolated on the PaaS
@alexander__ @mayralois
#6 – DevOps? Dev and Ops need to work closely together
 Ops own the platform but not the services running on it
 As long as Ops simplify Devs workflows, the job is good enough
 If Devs don’t like what Ops are doing, Ops are doing it wrong
 The platform’s sole purpose is to turn Devs life easier
Devs should think like Ops and Ops should think like Devs
Devs are the stars of the show
@alexander__ @mayralois
Black Friday?
@alexander__ @mayralois
We survived Black Friday
@alexander__ @mayralois
Thanks!
Questions?

More Related Content

What's hot

Kill the fail whale for your API
Kill the fail whale for your APIKill the fail whale for your API
Kill the fail whale for your API
3scale
 
Waiter: An Open-Source Distributed Auto-Scaler
Waiter: An Open-Source Distributed Auto-ScalerWaiter: An Open-Source Distributed Auto-Scaler
Waiter: An Open-Source Distributed Auto-Scaler
Two Sigma
 

What's hot (20)

Kafka
KafkaKafka
Kafka
 
Azure Microservices in Practice - Radu Vunvulea ITCamp Community Timisoara 07...
Azure Microservices in Practice - Radu Vunvulea ITCamp Community Timisoara 07...Azure Microservices in Practice - Radu Vunvulea ITCamp Community Timisoara 07...
Azure Microservices in Practice - Radu Vunvulea ITCamp Community Timisoara 07...
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
Kill the fail whale for your API
Kill the fail whale for your APIKill the fail whale for your API
Kill the fail whale for your API
 
Building a reliable, scalable service with Clojure and Core.async
Building a reliable, scalable service with Clojure and Core.asyncBuilding a reliable, scalable service with Clojure and Core.async
Building a reliable, scalable service with Clojure and Core.async
 
Azure Mobile Apps with Xamarin
Azure Mobile Apps with XamarinAzure Mobile Apps with Xamarin
Azure Mobile Apps with Xamarin
 
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
(DVO205) Monitoring Evolution: Flying Blind to Flying by Instrument
 
Full Stack Application Monitoring for AWS Powered by AI
Full Stack Application Monitoring for AWS Powered by AIFull Stack Application Monitoring for AWS Powered by AI
Full Stack Application Monitoring for AWS Powered by AI
 
QAing in a data platform project - Kalyan Muthiah
QAing in a data platform project - Kalyan MuthiahQAing in a data platform project - Kalyan Muthiah
QAing in a data platform project - Kalyan Muthiah
 
Artificial Intelligence & Machine learning foundation topic in AWS
Artificial Intelligence & Machine learning foundation topic in AWS Artificial Intelligence & Machine learning foundation topic in AWS
Artificial Intelligence & Machine learning foundation topic in AWS
 
Akka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeAkka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in Practice
 
.NET Security (Radu Vunvulea)
.NET Security (Radu Vunvulea).NET Security (Radu Vunvulea)
.NET Security (Radu Vunvulea)
 
DevOps in Amazon.com
DevOps in Amazon.com DevOps in Amazon.com
DevOps in Amazon.com
 
Keeping Rails on the Tracks
Keeping Rails on the TracksKeeping Rails on the Tracks
Keeping Rails on the Tracks
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.
 
Application Insights for Integration Developers
Application Insights for Integration DevelopersApplication Insights for Integration Developers
Application Insights for Integration Developers
 
"Hacking" JIRA and Confluence Cloud Part 2 - Build Your Own - Luke Kilpatrick
"Hacking" JIRA and Confluence Cloud Part 2 - Build Your Own - Luke Kilpatrick"Hacking" JIRA and Confluence Cloud Part 2 - Build Your Own - Luke Kilpatrick
"Hacking" JIRA and Confluence Cloud Part 2 - Build Your Own - Luke Kilpatrick
 
Ben Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of ThingsBen Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of Things
 
Waiter: An Open-Source Distributed Auto-Scaler
Waiter: An Open-Source Distributed Auto-ScalerWaiter: An Open-Source Distributed Auto-Scaler
Waiter: An Open-Source Distributed Auto-Scaler
 
How LEGO.com Accelerates With Serverless
How LEGO.com Accelerates With ServerlessHow LEGO.com Accelerates With Serverless
How LEGO.com Accelerates With Serverless
 

Similar to Running microservice environments is no free lunch

Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
JAXLondon2014
 

Similar to Running microservice environments is no free lunch (20)

(BDT312) Using the Cloud to Scale from a Database to a Data Platform | AWS re...
(BDT312) Using the Cloud to Scale from a Database to a Data Platform | AWS re...(BDT312) Using the Cloud to Scale from a Database to a Data Platform | AWS re...
(BDT312) Using the Cloud to Scale from a Database to a Data Platform | AWS re...
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...Microservices: Decomposing Applications for Deployability and Scalability (ja...
Microservices: Decomposing Applications for Deployability and Scalability (ja...
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
 
RightScale Roadtrip - Accelerate to Cloud
RightScale Roadtrip - Accelerate to CloudRightScale Roadtrip - Accelerate to Cloud
RightScale Roadtrip - Accelerate to Cloud
 
Microservices envy at Lisbon DDD Meetup
Microservices envy at Lisbon DDD MeetupMicroservices envy at Lisbon DDD Meetup
Microservices envy at Lisbon DDD Meetup
 
Mircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.comMircoservices, dev ops and Engineering best practices at Wix.com
Mircoservices, dev ops and Engineering best practices at Wix.com
 
Dix conseils pour supporter la croissance de votre Startup de 0 à 10 millions...
Dix conseils pour supporter la croissance de votre Startup de 0 à 10 millions...Dix conseils pour supporter la croissance de votre Startup de 0 à 10 millions...
Dix conseils pour supporter la croissance de votre Startup de 0 à 10 millions...
 
How To Modernize Enterpize Apps, Including Windows and .NET on AWS
How To Modernize Enterpize Apps, Including Windows and .NET on AWSHow To Modernize Enterpize Apps, Including Windows and .NET on AWS
How To Modernize Enterpize Apps, Including Windows and .NET on AWS
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
Jconf Colombia Nowadays Architecture Trends, from Monolith to Microservices a...
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
 
#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?#dbhouseparty - Should I be building Microservices?
#dbhouseparty - Should I be building Microservices?
 
AWS Startup Insights Kuala Lumpur
AWS Startup Insights Kuala LumpurAWS Startup Insights Kuala Lumpur
AWS Startup Insights Kuala Lumpur
 
Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014
 
Microservices: Data & Design - Miguel Cervantes
Microservices: Data & Design - Miguel CervantesMicroservices: Data & Design - Miguel Cervantes
Microservices: Data & Design - Miguel Cervantes
 
Gluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeGluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A Challenge
 
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise StrategyAWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
AWS Summit Kuala Lumpur Keynote with Stephen Orban - Head of Enterprise Strategy
 
AWS Startup Insights Singapore
AWS Startup Insights SingaporeAWS Startup Insights Singapore
AWS Startup Insights Singapore
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

Running microservice environments is no free lunch

Editor's Notes

  1. We have a lot customers running classical monolith apps – on Java, .NET, PHP – yes even on the mainframe
  2. We have a lot customers running classical monolith apps – on Java, .NET, PHP – yes even on the mainframe
  3. We see the need at most of them to change to a more rapid deployment model – just as we have heard over the years from companies like cars, etsy, amazon, … Several companies changed their way they develop and deploy software over the years. Here are some examples (numbers from 2011 – 2014) Cars: from 2 deployments to 700 Flicks: 10+ per Day Etsy: lets every new employee on their first day of employment make a code change and push it through the pipeline in production: THAT’S the right approach towards required culture change Amazon: every 11.6s Remember: these are very small changes – which is also a key goal of continuous delivery. The smaller the change the easier it is to deploy, the less risk it has, the easier it is to test and the easier is it to take it out in case it has a problem.
  4. But it is not only about delivering features faster – it is also about delivering fast features! These stats come from here: http://nft.atcyber.com/infographics/infographic-the-importance-of-web-performance-20140913
  5. Not only technical metrics count but also business metrics
  6. Learn from the best?…. E.g. all the cloud scale companies we know and from the well-known stories at Netflix etc.
  7. Enterprises go new technologies. Now lets hear from Alex – on their journey – where they started – where they struggled – where they are right now and where they are going
  8. everyone knows what has been deployed, when it will be deployed and every major incident
  9. Dev teams know what, where and who fix a problem Devs know where something is hanging/not working
  10. Where should we run it? We don’t care. Let Mesos and Marathon distribute the workload. What about batch jobs and crons? Chronos does the job. Just be sure to dockerize your batch job.
  11. We don’t care. Just dockerize it. And run it on the platform.
  12. One Mesos cluster per DC CI/CD should know nothing about DC’s The orchestration layer knows each Marathon/Chronos cluster Chronos should be used in failover fashion
  13. Seriously, you need it! Simplifies micro services development Improved security (authentication, authorization goes here) Protect your apps against bad requests Throttling Turns service discovery a little more complicated
  14. New databases: should I hire specialists? Data visualization (big data, or whatever) deserves a separate operation Ops should always help dev decide what is the appropriate architectural pattern for any given situation