{"id":899,"date":"2026-04-16T14:56:34","date_gmt":"2026-04-16T14:56:34","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-timesten-database-for-oke-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-data-management\/"},"modified":"2026-04-16T14:56:34","modified_gmt":"2026-04-16T14:56:34","slug":"oracle-cloud-timesten-database-for-oke-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-data-management","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/oracle-cloud-timesten-database-for-oke-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-data-management\/","title":{"rendered":"Oracle Cloud TimesTen Database for OKE Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Data Management"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Data Management<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What this service is<\/h3>\n\n\n\n<p><strong>TimesTen Database for OKE<\/strong> is an Oracle Cloud solution for running <strong>Oracle TimesTen In-Memory Database<\/strong> on <strong>Oracle Kubernetes Engine (OKE)<\/strong>. In practice, it is typically delivered as an <strong>Oracle Cloud Marketplace<\/strong> offering (or deployment artifacts) that helps you deploy and operate TimesTen in Kubernetes on Oracle Cloud Infrastructure (OCI).<\/p>\n\n\n\n<blockquote>\n<p>Status\/packaging note: TimesTen itself is an Oracle database product (software). <strong>TimesTen Database for OKE is not positioned like a fully managed \u201cAutonomous\u201d database service<\/strong>; it\u2019s a Kubernetes-based deployment approach\/solution on OCI. Exact packaging (Helm charts, operators, Terraform\/Resource Manager stacks, images) can change\u2014<strong>verify the current Marketplace listing and docs before production use<\/strong>.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">One-paragraph simple explanation<\/h3>\n\n\n\n<p>If you need extremely fast reads\/writes (microseconds to low milliseconds) and your data can live primarily in memory, TimesTen gives you an in-memory relational database. <strong>TimesTen Database for OKE<\/strong> lets you run that database inside <strong>containers on OKE<\/strong>, using Kubernetes primitives (StatefulSets, PersistentVolumes, Services) for deployment and lifecycle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One-paragraph technical explanation<\/h3>\n\n\n\n<p>TimesTen is a <strong>relational, in-memory database<\/strong> with SQL interfaces and durability options (checkpointing\/logging to storage). Running it on OKE usually means deploying TimesTen engine pods (often as a StatefulSet), using OCI CSI storage for persistence, and exposing access through Kubernetes Services (ClusterIP\/LoadBalancer\/Ingress). Operations become a blend of <strong>DBA tasks<\/strong> (schema, backups, replication, tuning) and <strong>platform\/SRE tasks<\/strong> (Kubernetes scheduling, node sizing, storage classes, upgrades, observability, and security hardening).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What problem it solves<\/h3>\n\n\n\n<p>This service pattern solves the common gap between:\n&#8211; <strong>Low-latency, high-throughput<\/strong> data access requirements (trading, telco charging, real-time personalization, session\/state),\n&#8211; and the operational need to run databases on a <strong>standardized Kubernetes platform<\/strong> with repeatable deployments, isolation, and cloud infrastructure controls.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is TimesTen Database for OKE?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Official purpose<\/h3>\n\n\n\n<p>The purpose of <strong>TimesTen Database for OKE<\/strong> is to provide a supported way (via Oracle-provided assets) to deploy <strong>Oracle TimesTen In-Memory Database<\/strong> on <strong>Oracle Kubernetes Engine<\/strong> in Oracle Cloud, enabling in-memory relational performance with Kubernetes-based operations.<\/p>\n\n\n\n<p>Because packaging varies by Oracle offering, treat the \u201cofficial\u201d purpose as:\n&#8211; <strong>TimesTen<\/strong>: in-memory RDBMS for ultra-low-latency transactional workloads.\n&#8211; <strong>for OKE<\/strong>: deployment and operational integration with Kubernetes on OCI.<\/p>\n\n\n\n<p><strong>Verify in official docs\/Marketplace<\/strong> for the exact artifacts included (operator\/Helm charts\/images\/reference architectures).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core capabilities (what you should expect)<\/h3>\n\n\n\n<p>At a high level, you should expect:\n&#8211; <strong>In-memory relational storage<\/strong> optimized for speed\n&#8211; SQL access (and TimesTen tooling) for data operations\n&#8211; <strong>Durability<\/strong> options (checkpoint\/log to persistent storage) so data can survive restarts (configuration-dependent)\n&#8211; Deployment on OKE using Kubernetes concepts:\n  &#8211; Stateful workloads\n  &#8211; Persistent volumes\n  &#8211; ConfigMaps\/Secrets\n  &#8211; Services for connectivity<\/p>\n\n\n\n<p>TimesTen also has features such as replication and scale-out modes in some editions\/architectures\u2014<strong>confirm what the OKE offering supports<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Major components<\/h3>\n\n\n\n<p>Common components in a TimesTen-on-OKE deployment include:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Component<\/th>\n<th>What it is<\/th>\n<th>Why it matters<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OKE cluster<\/td>\n<td>Managed Kubernetes control plane + worker nodes<\/td>\n<td>Schedules and runs TimesTen pods<\/td>\n<\/tr>\n<tr>\n<td>TimesTen container image \/ software<\/td>\n<td>TimesTen database engine packaged for deployment<\/td>\n<td>Runs the DB, exposes SQL endpoints<\/td>\n<\/tr>\n<tr>\n<td>StatefulSet (typical)<\/td>\n<td>Kubernetes controller for stateful pods<\/td>\n<td>Stable identity + volume attachment<\/td>\n<\/tr>\n<tr>\n<td>PersistentVolumes (OCI Block Volume via CSI)<\/td>\n<td>Durable storage for checkpoints\/logs<\/td>\n<td>Durability and restart behavior<\/td>\n<\/tr>\n<tr>\n<td>Kubernetes Service<\/td>\n<td>Stable virtual IP\/DNS for DB access<\/td>\n<td>Enables application connectivity<\/td>\n<\/tr>\n<tr>\n<td>Secrets<\/td>\n<td>Credentials \/ wallet \/ registry auth<\/td>\n<td>Secure handling of passwords\/tokens<\/td>\n<\/tr>\n<tr>\n<td>Observability (OCI + Kubernetes)<\/td>\n<td>Logs, metrics, events<\/td>\n<td>Troubleshooting and SRE operations<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Service type<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Type<\/strong>: Self-managed database software deployed on a managed Kubernetes platform (OKE).<\/li>\n<li><strong>Management model<\/strong>: You manage database lifecycle (configuration, backups, HA design, upgrades) while OCI manages the Kubernetes control plane.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scope (regional\/global\/zonal)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OKE<\/strong> is a <strong>regional<\/strong> service (control plane is regional; worker nodes live in subnets\/ADs\/FDs depending on configuration).<\/li>\n<li>TimesTen pods run where your node pools run (zonal\/AD placement depends on node pool subnet placement).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How it fits into the Oracle Cloud ecosystem<\/h3>\n\n\n\n<p>TimesTen Database for OKE typically integrates with:\n&#8211; <strong>Oracle Kubernetes Engine (OKE)<\/strong> for orchestration\n&#8211; <strong>OCI Compute<\/strong> (worker nodes)\n&#8211; <strong>OCI Block Volume<\/strong> (persistent disks for durability artifacts)\n&#8211; <strong>OCI Load Balancer<\/strong> (if exposing outside cluster)\n&#8211; <strong>OCI Vault<\/strong> (optional, recommended for secret management)\n&#8211; <strong>OCI Logging\/Monitoring<\/strong> (cluster and node metrics\/logs; exact integration depends on your setup)\n&#8211; <strong>OCI IAM<\/strong> (policies, compartments, dynamic groups if needed)<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use TimesTen Database for OKE?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Faster user experiences<\/strong>: real-time decisions and responses.<\/li>\n<li><strong>Higher transaction throughput<\/strong> for revenue-critical systems.<\/li>\n<li><strong>Standardization on Kubernetes<\/strong>: consistent deployment model across services.<\/li>\n<li><strong>Modernization<\/strong>: move latency-sensitive state from monolith DB bottlenecks into purpose-built in-memory tier.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>In-memory architecture<\/strong> reduces I\/O latency.<\/li>\n<li><strong>Relational model + SQL<\/strong> fits teams that need strong data modeling and transactional semantics (versus pure key-value caches).<\/li>\n<li><strong>Kubernetes-native operational patterns<\/strong>: declarative manifests, rolling updates (with careful DB coordination), namespace isolation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Repeatable environments<\/strong>: dev\/test\/prod parity using Helm\/Terraform\/Resource Manager.<\/li>\n<li><strong>Scaling worker nodes<\/strong>: scale compute\/memory capacity by resizing node pools (and redesigning DB topology accordingly).<\/li>\n<li><strong>Integration with OCI infrastructure controls<\/strong>: compartments, tagging, IAM policies, VCN isolation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Network isolation<\/strong> using private subnets, NSGs, and Kubernetes NetworkPolicies (where applicable).<\/li>\n<li><strong>Encryption at rest<\/strong> for OCI Block Volumes (default behavior in OCI, but verify configuration).<\/li>\n<li><strong>Auditing<\/strong> through OCI Audit for infrastructure actions; Kubernetes audit if enabled.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TimesTen is designed for <strong>low-latency<\/strong> and <strong>high throughput<\/strong> when the active dataset fits in memory.<\/li>\n<li>Kubernetes enables controlled placement and resource limits\/requests, but you must size nodes appropriately.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose it<\/h3>\n\n\n\n<p>Choose <strong>TimesTen Database for OKE<\/strong> when you need:\n&#8211; Ultra-fast transactional access to relational data\n&#8211; Predictable low latency\n&#8211; A database tier that can run inside Kubernetes on Oracle Cloud\n&#8211; Strong control over deployment topology and networking<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should not choose it<\/h3>\n\n\n\n<p>Avoid (or be cautious) if:\n&#8211; You want a <strong>fully managed<\/strong> database service with minimal DBA\/SRE overhead (consider <strong>Oracle Autonomous Database<\/strong>).\n&#8211; Your dataset does <strong>not fit in memory<\/strong> or grows unpredictably.\n&#8211; You need multi-region active-active with a simple toggle (you\u2019ll need careful replication design).\n&#8211; Your organization is not ready to operate stateful databases on Kubernetes (backup\/restore, upgrades, HA testing).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is TimesTen Database for OKE used?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Industries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Telecommunications (rating\/charging, subscriber session state)<\/li>\n<li>Financial services (trading, risk checks, market data processing)<\/li>\n<li>Retail\/e-commerce (real-time pricing, inventory checks, personalization)<\/li>\n<li>Gaming (leaderboards, matchmaking state)<\/li>\n<li>Logistics (real-time routing\/dispatch optimization)<\/li>\n<li>Ad tech (real-time bidding and frequency capping)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Platform engineering teams standardizing on Kubernetes<\/li>\n<li>SRE\/Operations teams supporting low-latency services<\/li>\n<li>Application teams building event-driven systems<\/li>\n<li>Data engineering teams implementing serving layers for real-time data<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hot-path transactional reads\/writes<\/li>\n<li>Session\/state management that requires relational constraints<\/li>\n<li>Real-time scoring\/decisioning<\/li>\n<li>Caching with stronger consistency than typical caches (design-dependent)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Microservices on OKE with a dedicated in-memory DB tier<\/li>\n<li>Event-driven pipelines with a low-latency serving store<\/li>\n<li>Hybrid architectures where TimesTen accelerates a slower system of record<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Real-world deployment contexts<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Private OKE clusters inside a VCN with no public endpoints<\/li>\n<li>Dedicated node pools sized for memory-heavy workloads<\/li>\n<li>Strict change control: blue\/green upgrades with careful data migration<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Production vs dev\/test usage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dev\/test<\/strong>: validate schemas, performance, connection pooling, and failure modes (pod restarts, node drains).<\/li>\n<li><strong>Production<\/strong>: requires strong operational maturity\u2014backups, recovery drills, patching cadence, monitoring, and security hardening.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic scenarios where <strong>TimesTen Database for OKE<\/strong> can fit well. For each, confirm product\/edition capabilities and the Marketplace offering details.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Real-time fraud checks at checkout<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Fraud scoring must happen in milliseconds while referencing recent user behavior.<\/li>\n<li><strong>Why this fits<\/strong>: In-memory relational access supports fast lookups and updates with transactional consistency.<\/li>\n<li><strong>Example<\/strong>: A checkout service queries recent transaction patterns stored in TimesTen and updates counters per user\/device.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) Telco online charging \/ rating<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Billing decisions must be fast and consistent for millions of events.<\/li>\n<li><strong>Why this fits<\/strong>: TimesTen is commonly used for low-latency transactional state and counters.<\/li>\n<li><strong>Example<\/strong>: A rating engine updates subscriber balances and quota counters at high throughput.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Trading pre-trade risk controls<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Orders must be validated against risk limits instantly.<\/li>\n<li><strong>Why this fits<\/strong>: In-memory tables for positions\/limits enable ultra-fast checks.<\/li>\n<li><strong>Example<\/strong>: Order service reads positions and limits from TimesTen before routing.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) Real-time inventory reservation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Avoid overselling when many users reserve items concurrently.<\/li>\n<li><strong>Why this fits<\/strong>: Relational constraints and transactions help maintain consistency with very low latency.<\/li>\n<li><strong>Example<\/strong>: Reservation service locks and updates stock counters in TimesTen, later syncing to a system of record.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Personalization feature store (serving layer)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: ML features need very fast retrieval during inference.<\/li>\n<li><strong>Why this fits<\/strong>: TimesTen can serve hot feature vectors with low latency.<\/li>\n<li><strong>Example<\/strong>: Recommendation service fetches user feature rows from TimesTen for inference requests.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Session state for microservices (stronger than a cache)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Stateless microservices still need shared session state with consistency.<\/li>\n<li><strong>Why this fits<\/strong>: In-memory DB provides fast reads\/writes and transactional updates.<\/li>\n<li><strong>Example<\/strong>: Auth\/session service stores session metadata and refresh tokens in TimesTen.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) Leaderboards with frequent updates<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Players\u2019 scores update frequently; leaderboards require fast aggregation\/query patterns.<\/li>\n<li><strong>Why this fits<\/strong>: In-memory indexing can accelerate reads; relational schema supports multiple leaderboard dimensions.<\/li>\n<li><strong>Example<\/strong>: Game service updates score rows and queries top-N per region\/mode.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) IoT device command-and-control state<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: You need a low-latency device registry and current status store.<\/li>\n<li><strong>Why this fits<\/strong>: Fast point lookups and transactional updates for device state.<\/li>\n<li><strong>Example<\/strong>: Device service updates last-seen timestamps and configuration versions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Real-time ad frequency capping<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Must track exposures and enforce caps across high-volume traffic.<\/li>\n<li><strong>Why this fits<\/strong>: Counter updates and lookups are extremely fast in memory.<\/li>\n<li><strong>Example<\/strong>: Ad server increments impression counters and checks caps before serving.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">10) Pricing engine (rule evaluation + reference tables)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Pricing must be computed quickly using multiple reference datasets and rules.<\/li>\n<li><strong>Why this fits<\/strong>: Reference tables and joins run quickly in memory for hot datasets.<\/li>\n<li><strong>Example<\/strong>: API reads customer tier, product price rules, and promotions from TimesTen.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">11) Low-latency \u201chot\u201d operational reporting<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Need near-real-time dashboards without impacting the system of record.<\/li>\n<li><strong>Why this fits<\/strong>: TimesTen can store pre-aggregated metrics updated continuously.<\/li>\n<li><strong>Example<\/strong>: Stream processor updates operational KPIs in TimesTen; dashboard queries it.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">12) API rate limiting with consistent counters<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong>: Distributed services require a consistent rate limiter store.<\/li>\n<li><strong>Why this fits<\/strong>: Atomic counter updates and low-latency reads.<\/li>\n<li><strong>Example<\/strong>: Gateway checks per-tenant counters stored in TimesTen before allowing requests.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<p>Because \u201cTimesTen Database for OKE\u201d is a deployment solution around TimesTen + OKE, features fall into two buckets: <strong>TimesTen database features<\/strong> and <strong>OKE\/Kubernetes deployment features<\/strong>. Confirm exact availability with the Marketplace listing and the TimesTen version you deploy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) In-memory relational storage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Keeps primary data structures in memory for fast access.<\/li>\n<li><strong>Why it matters<\/strong>: Avoids disk I\/O latency in the hot path.<\/li>\n<li><strong>Practical benefit<\/strong>: Consistently low response times for high-QPS workloads.<\/li>\n<li><strong>Caveats<\/strong>: Dataset sizing is critical; if your workload exceeds memory, performance and stability risks increase.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2) SQL interfaces and relational modeling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Provides relational schema, indexes, constraints, and SQL querying.<\/li>\n<li><strong>Why it matters<\/strong>: Many systems need more than key-value.<\/li>\n<li><strong>Practical benefit<\/strong>: Easier modeling of complex relationships; familiar tools\/skills.<\/li>\n<li><strong>Caveats<\/strong>: Exact SQL\/PLSQL compatibility depends on TimesTen release\u2014verify in docs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3) Durability via checkpointing\/logging to storage (configuration-dependent)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Persists changes so the DB can recover after restart.<\/li>\n<li><strong>Why it matters<\/strong>: Pure in-memory without persistence may not meet business requirements.<\/li>\n<li><strong>Practical benefit<\/strong>: Faster recovery and reduced data loss risk (RPO depends on configuration).<\/li>\n<li><strong>Caveats<\/strong>: You must properly map persistent volumes and ensure storage performance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4) High availability patterns (design-dependent)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Enables architectures that keep service available despite failures.<\/li>\n<li><strong>Why it matters<\/strong>: A single in-memory node is a single point of failure.<\/li>\n<li><strong>Practical benefit<\/strong>: Reduced downtime.<\/li>\n<li><strong>Caveats<\/strong>: HA for stateful systems on Kubernetes is non-trivial; confirm supported topologies (replication, scaleout, failover behavior).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5) Kubernetes-native deployment primitives<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Uses StatefulSets, PV\/PVC, Services, and pod scheduling.<\/li>\n<li><strong>Why it matters<\/strong>: Standard operations model for platform teams.<\/li>\n<li><strong>Practical benefit<\/strong>: Declarative deployments, consistent environments, automation.<\/li>\n<li><strong>Caveats<\/strong>: Rolling updates and node drains must be tested for DB safety.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6) Isolation and multi-tenancy controls (Kubernetes + OCI)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Namespaces, network controls, and IAM compartmentalization.<\/li>\n<li><strong>Why it matters<\/strong>: Production environments often require isolation boundaries.<\/li>\n<li><strong>Practical benefit<\/strong>: Reduce blast radius, align with org structure.<\/li>\n<li><strong>Caveats<\/strong>: Kubernetes RBAC and OCI IAM must be aligned; avoid overly broad privileges.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7) OCI storage integration (Block Volume CSI)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Dynamically provisions block volumes for persistence needs.<\/li>\n<li><strong>Why it matters<\/strong>: Durable storage is required for checkpoints\/logs and recovery.<\/li>\n<li><strong>Practical benefit<\/strong>: Repeatable PVC provisioning with StorageClasses.<\/li>\n<li><strong>Caveats<\/strong>: Performance depends on volume type, size, and tuning; verify OCI Block Volume performance characteristics.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8) Observability hooks (logs\/metrics\/events)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: You can collect Kubernetes events\/logs plus TimesTen logs\/metrics (method varies).<\/li>\n<li><strong>Why it matters<\/strong>: In-memory DB issues can be subtle (memory pressure, eviction, lock contention).<\/li>\n<li><strong>Practical benefit<\/strong>: Faster troubleshooting and capacity planning.<\/li>\n<li><strong>Caveats<\/strong>: TimesTen-specific metrics collection may require custom exporters\/agents\u2014verify official guidance.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9) Image distribution and supply chain controls<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does<\/strong>: Uses Oracle-provided images\/artifacts and your registry controls (OCIR).<\/li>\n<li><strong>Why it matters<\/strong>: Database images must be trusted and patched.<\/li>\n<li><strong>Practical benefit<\/strong>: Repeatable builds, vulnerability scanning workflows.<\/li>\n<li><strong>Caveats<\/strong>: Ensure licensing terms are accepted and images are pulled from official registries.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">High-level service architecture<\/h3>\n\n\n\n<p>At a high level, your application pods (or external clients) connect to a TimesTen service endpoint inside the cluster. TimesTen runs in one or more pods, typically stateful, backed by persistent storage for durability artifacts. Kubernetes schedules and restarts pods; OCI provides the underlying compute, network, and storage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Request\/data\/control flow<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Client<\/strong> (app pod) resolves the TimesTen Service DNS name.<\/li>\n<li>Traffic flows through kube-proxy\/IPVS to the target TimesTen pod endpoint.<\/li>\n<li>TimesTen executes SQL against in-memory structures.<\/li>\n<li>If durability is configured, TimesTen writes logs\/checkpoints to a mounted PersistentVolume (OCI Block Volume).<\/li>\n<li>Kubernetes control plane monitors pod health; restarts or reschedules pods as needed.<\/li>\n<li>OCI monitoring\/logging captures infrastructure signals; Kubernetes events provide scheduling\/health context.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Integrations with related services<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OKE<\/strong>: orchestration, scheduling, rolling updates, node pools.<\/li>\n<li><strong>OCI Block Volume + CSI<\/strong>: persistent storage for durability artifacts.<\/li>\n<li><strong>OCI Load Balancer<\/strong>: if you expose TimesTen externally (not always recommended).<\/li>\n<li><strong>OCI Vault<\/strong>: store secrets (DB credentials, registry tokens) and inject via external secrets patterns (implementation-dependent).<\/li>\n<li><strong>OCI Logging\/Monitoring<\/strong>: capture node metrics; optionally integrate container logs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Dependency services<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>VCN, subnets, route tables, security lists\/NSGs<\/li>\n<li>Worker node compute shapes sized for memory<\/li>\n<li>CSI drivers (installed by OKE typically; verify cluster add-ons)<\/li>\n<li>Container registry access (Oracle Container Registry and\/or OCIR)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/authentication model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI IAM<\/strong> controls who can create\/manage the cluster and related infrastructure.<\/li>\n<li><strong>Kubernetes RBAC<\/strong> controls who can deploy\/exec into pods and read secrets.<\/li>\n<li><strong>Database authentication<\/strong> is inside TimesTen (users\/passwords, roles).<\/li>\n<li><strong>Network security<\/strong> is enforced by VCN rules + NSGs + (optionally) Kubernetes NetworkPolicies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Networking model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OKE nodes run in OCI subnets.<\/li>\n<li>Pods communicate through CNI (OCI VCN Native Pod Networking may be used depending on cluster mode\u2014verify your cluster setup).<\/li>\n<li>TimesTen can be exposed:<\/li>\n<li>Internally (ClusterIP) for in-cluster access (recommended default)<\/li>\n<li>Externally via LoadBalancer\/Ingress for external clients (use private LB where possible)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Monitoring\/logging\/governance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use OCI compartments and tags to separate environments and allocate costs.<\/li>\n<li>Collect:<\/li>\n<li>Kubernetes events (scheduling, restarts)<\/li>\n<li>Node metrics (CPU, memory pressure)<\/li>\n<li>TimesTen logs (mounted to volume or shipped via agent)<\/li>\n<li>Establish SLOs for latency, error rate, and recovery time.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  A[App Pods on OKE] --&gt;|SQL\/TCP| S[Kubernetes Service\\n(ClusterIP)]\n  S --&gt; TT[TimesTen Pod\\n(StatefulSet)]\n  TT --&gt; PV[(PVC -&gt; OCI Block Volume\\n(checkpoints\/logs))]\n  TT --&gt; K8S[Kubernetes Control Plane\\n(OKE)]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph VCN[OCI VCN]\n    subgraph PRIV[Private Subnets]\n      subgraph OKE[OKE Cluster]\n        subgraph NP1[Node Pool - Memory Optimized]\n          TT1[TimesTen Pod-0\\nStatefulSet]\n          TT2[TimesTen Pod-1\\nStatefulSet]\n        end\n        APP[Microservices Pods]\n        SVC[K8s Service\\nInternal]\n      end\n\n      PV1[(PVC -&gt; OCI Block Volume)]\n      PV2[(PVC -&gt; OCI Block Volume)]\n    end\n\n    subgraph SEC[Security &amp; Governance]\n      IAM[OCI IAM Policies\\nCompartments\/Tags]\n      VAULT[OCI Vault\\nSecrets\/Keys]\n      AUDIT[OCI Audit]\n    end\n\n    subgraph OBS[Observability]\n      LOG[OCI Logging]\n      MON[OCI Monitoring]\n      EVT[K8s Events]\n    end\n  end\n\n  APP --&gt; SVC --&gt; TT1\n  APP --&gt; SVC --&gt; TT2\n  TT1 --&gt; PV1\n  TT2 --&gt; PV2\n  IAM --&gt; OKE\n  VAULT --&gt; OKE\n  OKE --&gt; LOG\n  OKE --&gt; MON\n  OKE --&gt; EVT\n  AUDIT --&gt; IAM\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Tenancy\/account requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An active <strong>Oracle Cloud (OCI) tenancy<\/strong><\/li>\n<li>Permission to use:<\/li>\n<li>Oracle Kubernetes Engine (OKE)<\/li>\n<li>VCN networking<\/li>\n<li>Compute instances (worker nodes)<\/li>\n<li>Block Volumes<\/li>\n<li>Load Balancer (optional)<\/li>\n<li>Oracle Cloud Marketplace (if deploying from Marketplace)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions \/ IAM roles<\/h3>\n\n\n\n<p>You need IAM policies that allow cluster and network management in the target compartment. Exact least-privilege policies vary; below is a <strong>common starting point<\/strong> (tighten for production).<\/p>\n\n\n\n<p>Example OCI IAM policy (adjust group\/compartment names):\n&#8211; <code>Allow group &lt;group-name&gt; to manage cluster-family in compartment &lt;compartment-name&gt;<\/code>\n&#8211; <code>Allow group &lt;group-name&gt; to manage virtual-network-family in compartment &lt;compartment-name&gt;<\/code>\n&#8211; <code>Allow group &lt;group-name&gt; to manage instance-family in compartment &lt;compartment-name&gt;<\/code>\n&#8211; <code>Allow group &lt;group-name&gt; to manage volume-family in compartment &lt;compartment-name&gt;<\/code>\n&#8211; <code>Allow group &lt;group-name&gt; to manage load-balancers in compartment &lt;compartment-name&gt;<\/code> (only if needed)\n&#8211; Marketplace usage may require permissions to subscribe to listings.<\/p>\n\n\n\n<p><strong>Verify required policies in official OKE docs<\/strong>:\nhttps:\/\/docs.oracle.com\/en-us\/iaas\/Content\/ContEng\/home.htm<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Billing requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A paid tenancy or credits sufficient for worker nodes, block volumes, and networking.<\/li>\n<li>TimesTen licensing:<\/li>\n<li>Could be <strong>BYOL<\/strong> (bring your own license) or <strong>license-included<\/strong> depending on Marketplace listing.<\/li>\n<li><strong>Verify in Marketplace listing and Oracle licensing docs<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">CLI\/SDK\/tools needed<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>kubectl<\/code> (Kubernetes CLI)<\/li>\n<li>OCI CLI <code>oci<\/code> (optional but helpful)<\/li>\n<li>Helm (<code>helm<\/code>) if the TimesTen OKE offering uses charts (verify)<\/li>\n<li>A workstation with network access to the cluster endpoint (public endpoint or via VPN\/Bastion depending on your design)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OKE is available in many OCI regions, but not all features are universal.<\/li>\n<li><strong>TimesTen Database for OKE availability depends on Marketplace listing availability per region<\/strong>.<\/li>\n<li>Verify in:<\/li>\n<li>OKE docs (regional availability)<\/li>\n<li>Marketplace listing page (supported regions)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<p>You may need sufficient quotas for:\n&#8211; Compute cores for worker nodes\n&#8211; Block volumes (count\/GB)\n&#8211; Load balancers\n&#8211; Kubernetes cluster limits (pods\/nodes)<\/p>\n\n\n\n<p>Check OCI service limits:\nhttps:\/\/docs.oracle.com\/en-us\/iaas\/Content\/General\/Concepts\/servicelimits.htm<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI VCN with appropriate subnets (public\/private design)<\/li>\n<li>OKE cluster with at least one node pool<\/li>\n<li>StorageClass configured (OCI CSI; usually present)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<p><strong>Important<\/strong>: Oracle pricing is region- and SKU-dependent. TimesTen licensing can be BYOL or license-included depending on how you obtain it. Do not assume a single price.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing dimensions (what you pay for)<\/h3>\n\n\n\n<p>For a typical TimesTen Database for OKE deployment, costs commonly include:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p><strong>OKE<\/strong>\n&#8211; OKE control plane pricing may be free or billed depending on current OCI policy\u2014<strong>verify on the official pricing page<\/strong>.\n&#8211; Worker nodes are billed as standard OCI Compute instances.<\/p>\n<\/li>\n<li>\n<p><strong>Compute (worker nodes)<\/strong>\n&#8211; Primary cost driver because TimesTen needs <strong>RAM<\/strong>.\n&#8211; Choose shapes appropriate for memory-intensive workloads.<\/p>\n<\/li>\n<li>\n<p><strong>Storage (Block Volumes)<\/strong>\n&#8211; PersistentVolumes for checkpoints\/logs\/backups.\n&#8211; Volume performance\/cost depends on volume type and size.<\/p>\n<\/li>\n<li>\n<p><strong>Load Balancer (optional)<\/strong>\n&#8211; If exposing TimesTen outside the cluster, you may incur LB charges.<\/p>\n<\/li>\n<li>\n<p><strong>Network egress<\/strong>\n&#8211; Data transfer out of OCI (or across regions) can incur charges.\n&#8211; Intra-VCN traffic is typically not charged, but <strong>verify current OCI network pricing<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>TimesTen software licensing<\/strong>\n&#8211; BYOL: your existing Oracle license applies; OCI still bills infrastructure.\n&#8211; License-included: Marketplace listing may add metered software charges (verify listing).<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier considerations<\/h3>\n\n\n\n<p>OCI has an Always Free tier for some services, but <strong>OKE + suitable memory-heavy nodes typically exceed free-tier capabilities<\/strong>. Treat \u201cfree\u201d as unlikely for realistic TimesTen performance testing unless you have credits or a special setup.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cost drivers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Memory size per node (largest driver)<\/li>\n<li>Number of replicas\/instances (HA\/scaleout design)<\/li>\n<li>Storage volumes and backup retention<\/li>\n<li>Load balancer type (public vs private) and bandwidth usage<\/li>\n<li>Cross-region replication\/traffic<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hidden or indirect costs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Operational overhead<\/strong>: engineering time for upgrades, backups, monitoring.<\/li>\n<li><strong>Overprovisioning<\/strong>: in-memory systems tempt teams to allocate excess RAM \u201cjust in case.\u201d<\/li>\n<li><strong>Disaster recovery<\/strong>: second region doubles infrastructure costs.<\/li>\n<li><strong>Logging retention<\/strong>: storing logs\/metrics for long periods can add up.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network\/data transfer implications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keep TimesTen close to applications (same region, same VCN where possible).<\/li>\n<li>Avoid routing hot-path traffic over public internet.<\/li>\n<li>If clients are outside OCI, consider private connectivity (VPN\/FastConnect) and account for costs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How to optimize cost<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start with a <strong>single small node pool<\/strong> and scale only after measuring.<\/li>\n<li>Use <strong>ClusterIP<\/strong> for internal access; avoid public LB unless required.<\/li>\n<li>Right-size PV capacity; avoid oversized volumes \u201cjust in case.\u201d<\/li>\n<li>Use non-production clusters with shorter retention and scheduled shutdowns where feasible.<\/li>\n<li>Separate dev\/test\/prod compartments and enforce tagging for chargeback.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (no fabricated numbers)<\/h3>\n\n\n\n<p>A small lab typically includes:\n&#8211; 1 OKE cluster\n&#8211; 1 node pool with 1\u20132 worker nodes (flex shapes)\n&#8211; 1\u20132 block volumes (tens to hundreds of GB)\n&#8211; No public load balancer\n&#8211; BYOL TimesTen (if you already have it)<\/p>\n\n\n\n<p>To estimate accurately in your region:\n&#8211; OCI Pricing page: https:\/\/www.oracle.com\/cloud\/pricing\/\n&#8211; OKE pricing (if available as a dedicated page): https:\/\/www.oracle.com\/cloud\/pricing\/containers-kubernetes-engine\/\n&#8211; Compute pricing: https:\/\/www.oracle.com\/cloud\/pricing\/compute\/\n&#8211; Block Volume pricing: https:\/\/www.oracle.com\/cloud\/pricing\/block-volume\/\n&#8211; Load Balancer pricing: https:\/\/www.oracle.com\/cloud\/pricing\/load-balancer\/\n&#8211; Pricing calculator: https:\/\/www.oracle.com\/cloud\/costestimator.html<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations<\/h3>\n\n\n\n<p>In production, plan for:\n&#8211; Multiple worker nodes for HA capacity and maintenance windows\n&#8211; Dedicated node pools (taints\/tolerations) for DB isolation\n&#8211; Backup storage and longer retention\n&#8211; Private connectivity (FastConnect) if required\n&#8211; Security tooling (Vault, scanning) and observability pipelines<\/p>\n\n\n\n<p>For TimesTen licensing, consult:\n&#8211; Oracle Technology Global Price List: https:\/\/www.oracle.com\/corporate\/pricing\/technology-price-list\/<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<p>This lab focuses on a <strong>practical, low-blast-radius<\/strong> workflow:\n&#8211; Create an OKE cluster (or reuse an existing one)\n&#8211; Deploy <strong>TimesTen Database for OKE<\/strong> via Oracle Cloud Marketplace (common delivery mechanism)\n&#8211; Validate that TimesTen pods are running and that you can connect from inside the cluster\n&#8211; Clean up resources to stop costs<\/p>\n\n\n\n<p>Because Oracle Marketplace artifacts (stack parameters, chart names, namespaces, images, ports) can change over time, the lab uses <strong>robust verification steps<\/strong> rather than hard-coding fragile names. Where exact values are required, the lab explicitly says <strong>verify in official docs<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<p>Deploy <strong>TimesTen Database for OKE<\/strong> on Oracle Cloud using OKE, then perform a basic connectivity validation (pod health + in-cluster connection), and finally clean up to avoid ongoing costs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<p>You will:\n1. Prepare OCI networking and an OKE cluster.\n2. Subscribe to and deploy the <strong>TimesTen Database for OKE<\/strong> Marketplace listing (or its provided deployment stack).\n3. Verify Kubernetes resources (namespace, pods, services, PVCs).\n4. Connect to TimesTen from inside the cluster and run a simple SQL query (method depends on the deployed image\/tooling).\n5. Troubleshoot common issues.\n6. Clean up.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Create or select an OCI compartment and network<\/h3>\n\n\n\n<p>1) In the OCI Console, create or choose a compartment for the lab, for example:\n&#8211; Compartment: <code>lab-data-management<\/code><\/p>\n\n\n\n<p>2) Create or reuse a VCN appropriate for OKE:\n&#8211; A VCN with subnets for worker nodes (often private)\n&#8211; Gateways\/routes as required (NAT for private nodes to pull images; Internet Gateway for public subnets if used)<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You have a compartment and VCN ready.\n&#8211; You know which subnets will host node pools.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; In OCI Console: Networking \u2192 Virtual Cloud Networks, confirm VCN and subnets exist.<\/p>\n\n\n\n<p><strong>Common pitfalls<\/strong>\n&#8211; Private subnets without NAT Gateway: nodes may fail to pull images.\n&#8211; Security rules too strict: cluster networking fails.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Create an OKE cluster (basic)<\/h3>\n\n\n\n<p>1) Go to <strong>Developer Services \u2192 Kubernetes Clusters (OKE)<\/strong>.\n2) Click <strong>Create cluster<\/strong>.\n3) Choose a <strong>Quick Create<\/strong> option for a lab (or Custom Create if you need private endpoint).\n4) Select:\n&#8211; Compartment\n&#8211; VCN and subnets\n&#8211; Kubernetes version (choose a currently supported version)\n&#8211; Node pool shape (choose enough memory for TimesTen; start small for lab)\n&#8211; Node count: 1\u20132 nodes for a lab<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; An OKE cluster is provisioning and becomes Active.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; In the cluster details page, status becomes <strong>Active<\/strong>.\n&#8211; A node pool is Active with nodes in <strong>Ready<\/strong> state (once you configure <code>kubectl<\/code> below).<\/p>\n\n\n\n<p><strong>Cost note<\/strong>\n&#8211; Worker nodes incur compute charges while running.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Configure kubectl access to the cluster<\/h3>\n\n\n\n<p>From the cluster details page:\n1) Click <strong>Access Cluster<\/strong> (or similar).\n2) Choose a method:\n&#8211; <strong>Cloud Shell<\/strong> (recommended for beginners)\n&#8211; Local machine<\/p>\n\n\n\n<p>Using Cloud Shell reduces local setup complexity.<\/p>\n\n\n\n<p>Typical flow includes:\n&#8211; Downloading kubeconfig to <code>~\/.kube\/config<\/code>\n&#8211; Setting the <code>KUBECONFIG<\/code> environment variable if required<\/p>\n\n\n\n<p>Then run:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get nodes\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You see 1+ nodes with <code>STATUS=Ready<\/code>.<\/p>\n\n\n\n<p><strong>Verification<\/strong><\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get nodes -o wide\nkubectl get pods -A\n<\/code><\/pre>\n\n\n\n<p><strong>Common errors and fixes<\/strong>\n&#8211; <code>Unauthorized<\/code> \/ <code>Forbidden<\/code>: your OCI user\/group policies may be missing required permissions.\n&#8211; <code>Unable to connect to the server<\/code>: cluster endpoint is private; you must use VPN\/Bastion or run from inside the VCN.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Subscribe to \u201cTimesTen Database for OKE\u201d in Oracle Cloud Marketplace<\/h3>\n\n\n\n<p>1) Go to <strong>Oracle Cloud Marketplace<\/strong>:\nhttps:\/\/cloudmarketplace.oracle.com\/<\/p>\n\n\n\n<p>2) Search for:\n&#8211; <strong>TimesTen Database for OKE<\/strong><\/p>\n\n\n\n<p>Direct search link (may vary):\nhttps:\/\/cloudmarketplace.oracle.com\/marketplace\/en_US\/search?keyword=TimesTen%20Database%20for%20OKE<\/p>\n\n\n\n<p>3) Open the listing and review:\n&#8211; Supported regions\n&#8211; Licensing model (BYOL vs license-included)\n&#8211; Deployment method (Resource Manager stack \/ Helm chart \/ operator)\n&#8211; Prerequisites (node shapes, storage classes, Kubernetes version)<\/p>\n\n\n\n<p>4) Click <strong>Get App<\/strong> (or equivalent) and accept terms.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; The listing is subscribed\/available for deployment in your tenancy.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Marketplace shows the app in \u201cMy Apps\u201d or confirms subscription.<\/p>\n\n\n\n<p><strong>Common pitfalls<\/strong>\n&#8211; Region mismatch: listing not available in your region.\n&#8211; Missing permissions to subscribe: ask an OCI admin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Deploy TimesTen Database for OKE (using the listing\u2019s supported method)<\/h3>\n\n\n\n<p>Most Marketplace Kubernetes offerings use one of these approaches:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI Resource Manager Stack<\/strong> (Terraform-managed deployment)<\/li>\n<li><strong>Helm chart<\/strong> (manual or automated)<\/li>\n<li><strong>Kubernetes operator<\/strong> (CRDs + controller)<\/li>\n<\/ul>\n\n\n\n<p>Follow the listing\u2019s \u201cDeploy\u201d instructions exactly. For a lab, Resource Manager is often easiest:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Option A (common): Deploy via OCI Resource Manager Stack<\/h4>\n\n\n\n<p>1) From the Marketplace listing, choose <strong>Launch Stack<\/strong>.\n2) In Resource Manager:\n&#8211; Select compartment\n&#8211; Provide required variables (VCN\/subnets, cluster OCID, namespace, admin password\/secret handling, storage size\/class, replica count)\n&#8211; Plan and Apply<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Kubernetes resources are created in your cluster: namespace, StatefulSet\/Deployment, Services, PVCs, Secrets.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\nRun:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get ns\nkubectl get pods -A | grep -i time || true\nkubectl get statefulsets -A | grep -i time || true\nkubectl get svc -A | grep -i time || true\nkubectl get pvc -A\n<\/code><\/pre>\n\n\n\n<p>If you don\u2019t know the namespace, list everything and locate TimesTen-related objects:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get pods -A\nkubectl get svc -A\nkubectl get secrets -A | head\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Option B: Deploy via Helm\/operator (if the listing uses it)<\/h4>\n\n\n\n<p>If the listing instructs Helm usage, follow its exact registry\/repo steps. Then verify using the same <code>kubectl get ...<\/code> commands above.<\/p>\n\n\n\n<p><strong>Common errors and fixes<\/strong>\n&#8211; Pods stuck in <code>ImagePullBackOff<\/code>: node subnet lacks NAT, registry credentials missing, or you haven\u2019t accepted image terms (common with Oracle Container Registry).\n&#8211; Pods stuck in <code>Pending<\/code>: insufficient CPU\/memory on nodes, missing StorageClass, or PVC provisioning failures.\n&#8211; PVC stuck in <code>Pending<\/code>: CSI driver issues or missing IAM permissions for volume provisioning (verify OKE CSI setup).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Validate TimesTen is running and storage is attached<\/h3>\n\n\n\n<p>1) Identify the namespace and primary workload:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get pods -A | grep -i time\nkubectl get pvc -A\nkubectl describe pod -n &lt;namespace&gt; &lt;timesten-pod-name&gt;\n<\/code><\/pre>\n\n\n\n<p>2) Confirm volumes are bound:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get pvc -n &lt;namespace&gt;\nkubectl describe pvc -n &lt;namespace&gt; &lt;pvc-name&gt;\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; TimesTen pod(s) are <code>Running<\/code> and <code>Ready<\/code>.\n&#8211; PVCs are <code>Bound<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Connect to TimesTen from inside the cluster (in-cluster smoke test)<\/h3>\n\n\n\n<p>Because the exact connection method depends on how the Marketplace deployment packages TimesTen (ports, DSNs, tools included), use this resilient approach:<\/p>\n\n\n\n<p>1) Exec into the TimesTen pod:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl exec -n &lt;namespace&gt; -it &lt;timesten-pod-name&gt; -- bash\n<\/code><\/pre>\n\n\n\n<p>2) Check whether TimesTen client tools are present:<\/p>\n\n\n\n<pre><code class=\"language-bash\">which ttIsql || which ttisql || ls -l \/usr\/bin | grep -i tt || true\n<\/code><\/pre>\n\n\n\n<p>3) Inspect environment\/config provided by the deployment:\n&#8211; ConfigMaps and Secrets often contain DSN or admin credentials.<\/p>\n\n\n\n<p>From another terminal (outside the pod):<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get configmap -n &lt;namespace&gt;\nkubectl get secret -n &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<p>Describe likely candidates:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl describe configmap -n &lt;namespace&gt; &lt;configmap-name&gt;\nkubectl describe secret -n &lt;namespace&gt; &lt;secret-name&gt;\n<\/code><\/pre>\n\n\n\n<p>If a secret contains a password, decode it (example pattern\u2014key names vary):<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get secret -n &lt;namespace&gt; &lt;secret-name&gt; -o jsonpath='{.data.password}' | base64 -d; echo\n<\/code><\/pre>\n\n\n\n<p>4) Attempt a basic query using TimesTen tooling (example pattern\u2014<strong>verify DSN\/user\/password<\/strong>):<\/p>\n\n\n\n<pre><code class=\"language-bash\"># Example only: verify the correct DSN and credentials in your deployment docs.\nttIsql -connstr \"DSN=&lt;dsnname&gt;;UID=&lt;user&gt;;PWD=&lt;password&gt;;\"\n<\/code><\/pre>\n\n\n\n<p>Then run:<\/p>\n\n\n\n<pre><code class=\"language-sql\">SELECT 1;\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You can run a simple SQL statement successfully.<\/p>\n\n\n\n<p><strong>If ttIsql is not available<\/strong>\nSome container images separate server and client tools. In that case:\n&#8211; Deploy a temporary \u201cclient\u201d pod recommended by the listing, or\n&#8211; Use an application container that includes JDBC\/ODBC client libraries as documented by Oracle.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; <code>SELECT 1;<\/code> returns a row.\n&#8211; Kubernetes service endpoints exist:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get endpoints -n &lt;namespace&gt;\nkubectl get svc -n &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: Basic restart test (pod resiliency)<\/h3>\n\n\n\n<p>1) Restart the TimesTen pod:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl delete pod -n &lt;namespace&gt; &lt;timesten-pod-name&gt;\n<\/code><\/pre>\n\n\n\n<p>2) Watch it come back:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl get pods -n &lt;namespace&gt; -w\n<\/code><\/pre>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Pod returns to <code>Running<\/code>.\n&#8211; If durability is configured, the DB should recover using persisted artifacts (verify by reconnecting and checking expected state).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use this checklist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OKE nodes are Ready:<\/li>\n<\/ul>\n\n\n\n<pre><code class=\"language-bash\">kubectl get nodes\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TimesTen resources exist:<\/li>\n<\/ul>\n\n\n\n<pre><code class=\"language-bash\">kubectl get pods -n &lt;namespace&gt;\nkubectl get svc -n &lt;namespace&gt;\nkubectl get pvc -n &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Storage is bound:<\/li>\n<\/ul>\n\n\n\n<pre><code class=\"language-bash\">kubectl get pvc -n &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You can connect and run <code>SELECT 1;<\/code> (or listing-specific health checks).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Symptom<\/th>\n<th>Likely cause<\/th>\n<th>What to do<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>ImagePullBackOff<\/code><\/td>\n<td>No NAT\/egress, registry auth missing, license not accepted<\/td>\n<td>Ensure NAT gateway, configure imagePullSecrets, accept Oracle Container Registry terms (verify listing)<\/td>\n<\/tr>\n<tr>\n<td>Pod <code>Pending<\/code><\/td>\n<td>Not enough CPU\/RAM<\/td>\n<td>Increase node pool size\/shape; set correct requests\/limits<\/td>\n<\/tr>\n<tr>\n<td>PVC <code>Pending<\/code><\/td>\n<td>StorageClass missing or CSI issues<\/td>\n<td>Check StorageClasses (<code>kubectl get sc<\/code>), verify CSI add-on, confirm IAM for volume provisioning<\/td>\n<\/tr>\n<tr>\n<td>Connection fails<\/td>\n<td>Wrong Service\/port, network policies, credentials<\/td>\n<td>Check <code>kubectl get svc\/endpoints<\/code>, decode secrets, verify ports in docs<\/td>\n<\/tr>\n<tr>\n<td>Random restarts<\/td>\n<td>Node memory pressure\/evictions<\/td>\n<td>Increase node memory, set requests\/limits correctly, isolate node pool<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p>Useful commands:<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl describe pod -n &lt;namespace&gt; &lt;pod&gt;\nkubectl logs -n &lt;namespace&gt; &lt;pod&gt; --all-containers=true\nkubectl get events -n &lt;namespace&gt; --sort-by=.lastTimestamp\nkubectl top nodes\nkubectl top pods -n &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid ongoing costs, delete resources you created:<\/p>\n\n\n\n<p>1) If deployed via Resource Manager Stack:\n&#8211; Go to Resource Manager \u2192 Stacks \u2192 <strong>Destroy<\/strong><\/p>\n\n\n\n<p>2) If deployed via Helm:<\/p>\n\n\n\n<pre><code class=\"language-bash\">helm list -n &lt;namespace&gt;\nhelm uninstall &lt;release-name&gt; -n &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<p>3) Delete namespace (only if it contains nothing else you need):<\/p>\n\n\n\n<pre><code class=\"language-bash\">kubectl delete namespace &lt;namespace&gt;\n<\/code><\/pre>\n\n\n\n<p>4) Delete OKE cluster (if lab-only):\n&#8211; OKE Console \u2192 Cluster \u2192 Delete\n&#8211; Ensure node pools are deleted<\/p>\n\n\n\n<p>5) Delete associated load balancers and block volumes that were not removed automatically:\n&#8211; OCI Console \u2192 Networking \/ Block Storage<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Keep TimesTen close to the apps<\/strong> (same region\/VCN) to minimize latency.<\/li>\n<li>Use <strong>private subnets<\/strong> for nodes and internal services; expose externally only when required.<\/li>\n<li>Use <strong>dedicated node pools<\/strong> for database workloads:<\/li>\n<li>Taints\/tolerations to prevent random workloads from landing on DB nodes<\/li>\n<li>Node labels for targeted scheduling<\/li>\n<li>Plan HA explicitly (don\u2019t assume Kubernetes restarts = HA). Define:<\/li>\n<li>Failure scenarios (pod crash, node loss, AZ\/AD loss)<\/li>\n<li>RPO\/RTO targets<\/li>\n<li>Replication\/failover approach (verify TimesTen-supported patterns)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use separate compartments for dev\/test\/prod.<\/li>\n<li>Enforce least privilege:<\/li>\n<li>Separate roles for cluster admins, deployers, and readers.<\/li>\n<li>Prefer <strong>OCI Vault<\/strong> for secrets lifecycle and rotation patterns.<\/li>\n<li>Avoid storing DB passwords in plain ConfigMaps.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Right-size memory and CPU based on benchmarks.<\/li>\n<li>Prefer internal-only Services (ClusterIP) over public LoadBalancers.<\/li>\n<li>Use shorter retention for logs in non-production.<\/li>\n<li>Tag everything: environment, owner, cost center, application.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure worker nodes have sufficient RAM headroom to avoid eviction.<\/li>\n<li>Pin database pods to high-memory nodes and avoid CPU throttling.<\/li>\n<li>Use fast block volume configuration appropriate for checkpoint\/log I\/O (verify volume performance options in OCI docs).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Test:<\/li>\n<li>Pod restarts<\/li>\n<li>Node drains\/upgrades<\/li>\n<li>Volume detach\/attach behavior<\/li>\n<li>Disaster recovery (restore from backup)<\/li>\n<li>Use PodDisruptionBudgets carefully (stateful workloads need special care).<\/li>\n<li>Use readiness\/liveness probes recommended by Oracle (verify listing).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Centralize logs and metrics.<\/li>\n<li>Define alerting:<\/li>\n<li>Pod crash loops<\/li>\n<li>PVC capacity thresholds<\/li>\n<li>Node memory pressure<\/li>\n<li>Service error\/latency SLO breaches<\/li>\n<li>Maintain upgrade runbooks:<\/li>\n<li>Kubernetes version upgrades<\/li>\n<li>Node image upgrades<\/li>\n<li>TimesTen patch upgrades (verify support matrix)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance\/tagging\/naming best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Naming:<\/li>\n<li><code>oke-&lt;env&gt;-&lt;team&gt;-cluster<\/code><\/li>\n<li><code>ns-&lt;app&gt;-&lt;env&gt;<\/code><\/li>\n<li><code>tt-&lt;app&gt;-primary<\/code><\/li>\n<li>Tagging (OCI freeform\/defined tags):<\/li>\n<li><code>Environment=dev|test|prod<\/code><\/li>\n<li><code>Owner=email\/team<\/code><\/li>\n<li><code>CostCenter=...<\/code><\/li>\n<li><code>DataClassification=confidential|restricted|public<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OCI IAM<\/strong> governs infrastructure control:<\/li>\n<li>Creating clusters, node pools, networks, volumes, load balancers<\/li>\n<li><strong>Kubernetes RBAC<\/strong> governs in-cluster actions:<\/li>\n<li>Deploying manifests, reading secrets, exec into pods<\/li>\n<li><strong>TimesTen DB authentication<\/strong> governs database access:<\/li>\n<li>Users\/roles\/passwords (and any supported enterprise auth mechanisms\u2014verify)<\/li>\n<\/ul>\n\n\n\n<p><strong>Recommendation<\/strong>\n&#8211; Separate \u201cplatform admin\u201d from \u201capp deployer\u201d roles.\n&#8211; Restrict <code>kubectl exec<\/code> in production namespaces.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>At rest<\/strong>:<\/li>\n<li>OCI Block Volumes are typically encrypted by default (verify and document your configuration).<\/li>\n<li><strong>In transit<\/strong>:<\/li>\n<li>Use TLS where supported between clients and TimesTen (verify TimesTen TLS support in your deployed configuration).<\/li>\n<li>Use private networking to reduce exposure.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prefer <strong>ClusterIP<\/strong> and private connectivity.<\/li>\n<li>If external access is required:<\/li>\n<li>Use a <strong>private load balancer<\/strong> when possible<\/li>\n<li>Restrict source CIDRs<\/li>\n<li>Use NSGs and security lists tightly<\/li>\n<li>Consider Kubernetes NetworkPolicies (if supported by your CNI mode) to restrict pod-to-pod access.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use Kubernetes Secrets minimally; treat them as sensitive.<\/li>\n<li>Prefer external secret management patterns:<\/li>\n<li>OCI Vault + CSI driver\/external secrets (implementation varies\u2014verify)<\/li>\n<li>Rotate credentials regularly; automate where feasible.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>OCI Audit<\/strong> for infrastructure API events.<\/li>\n<li>Enable\/collect Kubernetes control plane audit logs if available in your setup (verify OKE options).<\/li>\n<li>Keep a secure record of:<\/li>\n<li>Deployments\/changes (GitOps)<\/li>\n<li>Resource Manager stack history<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Data residency: keep data in-region if required.<\/li>\n<li>PII\/PCI: implement encryption, access control, logging, and least privilege.<\/li>\n<li>Change management: use Infrastructure as Code and approvals.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exposing TimesTen with a public IP without strict firewall rules.<\/li>\n<li>Storing admin passwords in plaintext manifests or Git repos.<\/li>\n<li>Allowing broad cluster-admin to developers in production.<\/li>\n<li>No resource limits \u2192 noisy neighbor risk and instability.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Private OKE cluster endpoint + private node pools<\/li>\n<li>Dedicated namespace and node pool for TimesTen<\/li>\n<li>Restrict access via RBAC + NSGs<\/li>\n<li>Use Vault for secrets and rotation<\/li>\n<li>Regular patching of node images and TimesTen software<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<p>Because this is TimesTen software running on Kubernetes (not a fully managed DB service), limitations include both product constraints and operational realities.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Known limitations (verify for your version\/edition)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Memory-bound datasets<\/strong>: performance assumes working set fits in RAM.<\/li>\n<li><strong>Complex HA<\/strong>: Kubernetes restarts are not the same as DB-level HA.<\/li>\n<li><strong>Upgrade complexity<\/strong>: stateful upgrades require careful sequencing.<\/li>\n<li><strong>Feature availability varies<\/strong> by TimesTen edition and release (Classic vs Scaleout, replication options, tooling).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI service limits for compute, volumes, LB can block scaling.<\/li>\n<li>Kubernetes limits (pods per node, IP limits) can affect scheduling.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Regional constraints<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Marketplace listing might not be available in all regions.<\/li>\n<li>Some OKE modes\/features are region-dependent.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing surprises<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Load balancers left running.<\/li>\n<li>Block volumes not deleted on namespace removal (depends on reclaim policy).<\/li>\n<li>Overprovisioned memory shapes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compatibility issues<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kubernetes version compatibility with the provided TimesTen deployment artifacts.<\/li>\n<li>CSI\/storage class behavior differences.<\/li>\n<li>Container runtime\/OS image requirements (verify support matrix).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational gotchas<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Node drains can disrupt stateful pods; plan PodDisruptionBudgets carefully.<\/li>\n<li>Evictions due to memory pressure are common if requests\/limits are wrong.<\/li>\n<li>DNS and service discovery must be stable; StatefulSets help but require careful config.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Migration challenges<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Schema and SQL compatibility must be tested.<\/li>\n<li>Data loading into TimesTen needs a plan (bulk load, CDC, replication, app dual-write).<\/li>\n<li>DR requires a well-defined replication\/backup strategy.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Vendor-specific nuances<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Oracle licensing and Marketplace license models can be complex\u2014engage procurement\/licensing experts.<\/li>\n<li>Support boundaries:<\/li>\n<li>Oracle supports TimesTen product behavior per contract.<\/li>\n<li>Kubernetes platform issues may involve OCI support + your platform team.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<p>TimesTen Database for OKE is a specific fit: <strong>in-memory relational<\/strong> + <strong>Kubernetes deployment<\/strong> on Oracle Cloud. Alternatives vary by whether you want managed services, caching, or different data models.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comparison table<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>TimesTen Database for OKE (Oracle Cloud)<\/strong><\/td>\n<td>Ultra-low latency relational workloads on Kubernetes<\/td>\n<td>In-memory RDBMS performance; SQL\/relational modeling; runs on OKE<\/td>\n<td>Self-managed ops; HA\/DR complexity; licensing complexity<\/td>\n<td>When you need in-memory relational speed and accept Kubernetes-based DB operations<\/td>\n<\/tr>\n<tr>\n<td>Oracle Autonomous Database (OCI)<\/td>\n<td>Managed OLTP\/analytics<\/td>\n<td>Fully managed; backups\/patching; strong HA<\/td>\n<td>Not in-memory-first; higher latency than in-memory tier for hot path<\/td>\n<td>When you want minimal ops and a general-purpose DB<\/td>\n<\/tr>\n<tr>\n<td>Oracle Database In-Memory (Oracle DB feature)<\/td>\n<td>Accelerating analytics within Oracle DB<\/td>\n<td>Integrated with Oracle DB; no separate DB tier<\/td>\n<td>Not the same as an in-memory transactional tier; licensing<\/td>\n<td>When you already run Oracle DB and need in-memory columnar acceleration<\/td>\n<\/tr>\n<tr>\n<td>MySQL HeatWave (OCI)<\/td>\n<td>Analytics acceleration for MySQL<\/td>\n<td>Managed analytics engine; strong performance for analytics<\/td>\n<td>Different use case than ultra-low-latency transactional state<\/td>\n<td>When the goal is fast analytics on MySQL datasets<\/td>\n<\/tr>\n<tr>\n<td>Redis (self-managed on OKE)<\/td>\n<td>Caching, simple state, pub\/sub<\/td>\n<td>Simple; great latency; huge ecosystem<\/td>\n<td>Not relational; persistence\/consistency patterns vary<\/td>\n<td>When key-value is sufficient and you want cache semantics<\/td>\n<\/tr>\n<tr>\n<td>Memcached (self-managed)<\/td>\n<td>Stateless caching<\/td>\n<td>Very simple; fast<\/td>\n<td>No persistence; limited features<\/td>\n<td>When you only need ephemeral caching<\/td>\n<\/tr>\n<tr>\n<td>Amazon ElastiCache \/ Google Memorystore \/ Azure Cache for Redis<\/td>\n<td>Managed Redis<\/td>\n<td>Low ops; managed patching<\/td>\n<td>Not relational; cross-cloud<\/td>\n<td>When you prefer managed cache and are in those clouds<\/td>\n<\/tr>\n<tr>\n<td>PostgreSQL\/MySQL on OKE<\/td>\n<td>General relational workloads on Kubernetes<\/td>\n<td>Familiar; open-source<\/td>\n<td>Not optimized for in-memory-first; ops burden<\/td>\n<td>When you want open-source RDBMS and accept Kubernetes ops<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example: Telco real-time charging and quota enforcement<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong><\/li>\n<li>Millions of events per minute require low-latency updates to subscriber balances and quotas.<\/li>\n<li>The system of record database is too slow for the hot path.<\/li>\n<li><strong>Proposed architecture<\/strong><\/li>\n<li>OKE cluster in private subnets<\/li>\n<li>Dedicated node pool sized for memory<\/li>\n<li>TimesTen Database for OKE deployed as a stateful tier<\/li>\n<li>Charging microservices read\/update counters in TimesTen<\/li>\n<li>Periodic sync (or CDC\/replication) to a durable system of record (e.g., Oracle Database\/Autonomous Database)<\/li>\n<li>OCI Vault for credentials; OCI Logging\/Monitoring for observability<\/li>\n<li><strong>Why this service was chosen<\/strong><\/li>\n<li>In-memory relational performance and transactional semantics fit quota counters and consistency needs.<\/li>\n<li>Kubernetes standardization aligns with platform strategy.<\/li>\n<li><strong>Expected outcomes<\/strong><\/li>\n<li>Lower request latency under peak load<\/li>\n<li>Higher throughput with predictable performance<\/li>\n<li>Reduced load on the system of record<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example: Gaming leaderboard and matchmaking state<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem<\/strong><\/li>\n<li>Need fast updates and queries for leaderboards; scale spikes during events.<\/li>\n<li>Simple cache isn\u2019t enough due to relational querying needs (multiple leaderboards, regions, modes).<\/li>\n<li><strong>Proposed architecture<\/strong><\/li>\n<li>Single OKE cluster<\/li>\n<li>TimesTen Database for OKE as an in-memory relational store<\/li>\n<li>Game services connect via internal ClusterIP<\/li>\n<li>Nightly snapshots\/backups; export aggregates to object storage (implementation-specific\u2014verify)<\/li>\n<li><strong>Why this service was chosen<\/strong><\/li>\n<li>Very fast reads\/writes; relational schema supports multiple query patterns.<\/li>\n<li><strong>Expected outcomes<\/strong><\/li>\n<li>Faster player experience<\/li>\n<li>Simple operational model for a Kubernetes-first team (still requires discipline)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<p>1) <strong>Is TimesTen Database for OKE a fully managed database service?<\/strong><br\/>\nNo. It typically means deploying TimesTen software on OKE using Oracle-provided deployment assets. You manage DB operations (upgrades, backups, HA design).<\/p>\n\n\n\n<p>2) <strong>Where do I find the official TimesTen Database for OKE package?<\/strong><br\/>\nUsually in <strong>Oracle Cloud Marketplace<\/strong>. Search for \u201cTimesTen Database for OKE\u201d and follow the listing documentation: https:\/\/cloudmarketplace.oracle.com\/<\/p>\n\n\n\n<p>3) <strong>Do I pay separately for TimesTen licensing?<\/strong><br\/>\nPossibly. It depends on whether the Marketplace listing is <strong>BYOL<\/strong> or <strong>license-included<\/strong>. Verify the listing terms and Oracle licensing pages.<\/p>\n\n\n\n<p>4) <strong>What OCI services will I pay for even if TimesTen is BYOL?<\/strong><br\/>\nOKE worker node compute, block volumes, load balancers (if used), and any network egress.<\/p>\n\n\n\n<p>5) <strong>What Kubernetes controller is best for TimesTen: Deployment or StatefulSet?<\/strong><br\/>\nTypically <strong>StatefulSet<\/strong> for databases due to stable identities and volume attachment behavior. Follow the official Oracle guidance for the offering you deploy.<\/p>\n\n\n\n<p>6) <strong>Can I run TimesTen in multiple replicas for HA?<\/strong><br\/>\nKubernetes replicas alone don\u2019t guarantee DB-level HA. You need a tested design (replication\/scaleout\/failover) supported by TimesTen and the OKE offering\u2014verify in docs.<\/p>\n\n\n\n<p>7) <strong>Can I expose TimesTen to the public internet?<\/strong><br\/>\nIt\u2019s possible but generally risky. Prefer private connectivity and strict firewalling. If you must expose it, use a private LB + allowlist + TLS (verify support).<\/p>\n\n\n\n<p>8) <strong>How do I back up TimesTen on OKE?<\/strong><br\/>\nApproaches vary (volume snapshots, logical export, product tooling). Use Oracle\u2019s TimesTen backup guidance and test restores regularly.<\/p>\n\n\n\n<p>9) <strong>What storage should I use for durability artifacts?<\/strong><br\/>\nUsually <strong>OCI Block Volume<\/strong> via Kubernetes PVCs. Ensure performance characteristics match checkpoint\/log needs.<\/p>\n\n\n\n<p>10) <strong>What\u2019s the biggest sizing rule?<\/strong><br\/>\nRAM. Ensure the dataset fits in memory with headroom for peak usage, indexes, and operational overhead.<\/p>\n\n\n\n<p>11) <strong>Will node autoscaling help?<\/strong><br\/>\nAutoscaling can help with stateless workloads. For stateful databases, scaling requires careful planning and might not be automatic. Treat autoscaling cautiously.<\/p>\n\n\n\n<p>12) <strong>How do I monitor TimesTen on OKE?<\/strong><br\/>\nMonitor nodes\/pods with Kubernetes metrics and OCI Monitoring; collect TimesTen logs and any supported DB metrics. You may need custom exporters\u2014verify official guidance.<\/p>\n\n\n\n<p>13) <strong>Can I connect from Autonomous Database to TimesTen?<\/strong><br\/>\nIntegration depends on your application and connectivity patterns. Typically, apps connect to both rather than DB-to-DB direct connections.<\/p>\n\n\n\n<p>14) <strong>Is TimesTen a replacement for Redis?<\/strong><br\/>\nNot directly. Redis is a key-value store with different semantics; TimesTen is relational. Choose based on data model, consistency needs, and operational requirements.<\/p>\n\n\n\n<p>15) <strong>What\u2019s the quickest way to validate a deployment?<\/strong><br\/>\nConfirm pods are Running, PVCs are Bound, Services have endpoints, and run a basic SQL query from inside the cluster.<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn TimesTen Database for OKE<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official docs<\/td>\n<td>Oracle TimesTen In-Memory Database documentation<\/td>\n<td>Authoritative product concepts, administration, SQL\/tooling reference (choose your version) \u2014 https:\/\/docs.oracle.com\/en\/database\/other-databases\/timesten\/<\/td>\n<\/tr>\n<tr>\n<td>Official docs<\/td>\n<td>Oracle Kubernetes Engine (OKE) documentation<\/td>\n<td>Cluster creation, networking, storage, IAM patterns \u2014 https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/ContEng\/home.htm<\/td>\n<\/tr>\n<tr>\n<td>Marketplace<\/td>\n<td>Oracle Cloud Marketplace search: TimesTen Database for OKE<\/td>\n<td>Find the current listing, regions, deployment assets, and terms \u2014 https:\/\/cloudmarketplace.oracle.com\/marketplace\/en_US\/search?keyword=TimesTen%20Database%20for%20OKE<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>Oracle Cloud Pricing overview<\/td>\n<td>Starting point for all OCI service pricing \u2014 https:\/\/www.oracle.com\/cloud\/pricing\/<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>OCI Cost Estimator<\/td>\n<td>Build region-accurate estimates \u2014 https:\/\/www.oracle.com\/cloud\/costestimator.html<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>Compute pricing<\/td>\n<td>Worker node cost driver \u2014 https:\/\/www.oracle.com\/cloud\/pricing\/compute\/<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>Block Volume pricing<\/td>\n<td>PVC-backed storage costs \u2014 https:\/\/www.oracle.com\/cloud\/pricing\/block-volume\/<\/td>\n<\/tr>\n<tr>\n<td>Official docs<\/td>\n<td>OCI Service Limits<\/td>\n<td>Quotas and limits planning \u2014 https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/General\/Concepts\/servicelimits.htm<\/td>\n<\/tr>\n<tr>\n<td>Official docs<\/td>\n<td>OCI IAM documentation<\/td>\n<td>Policies, compartments, and governance \u2014 https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/Identity\/home.htm<\/td>\n<\/tr>\n<tr>\n<td>Official docs<\/td>\n<td>OCI Vault documentation<\/td>\n<td>Secrets management best practices \u2014 https:\/\/docs.oracle.com\/en-us\/iaas\/Content\/KeyManagement\/home.htm<\/td>\n<\/tr>\n<tr>\n<td>Official resource<\/td>\n<td>Oracle Technology Global Price List page<\/td>\n<td>Licensing reference starting point (verify latest) \u2014 https:\/\/www.oracle.com\/corporate\/pricing\/technology-price-list\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<p>The following institutes are listed as training providers\/resources. Verify course syllabi, instructors, and delivery modes directly on their websites.<\/p>\n\n\n\n<p>1) <strong>DevOpsSchool.com<\/strong><br\/>\n&#8211; <strong>Suitable audience<\/strong>: DevOps engineers, SREs, platform teams, cloud engineers<br\/>\n&#8211; <strong>Likely learning focus<\/strong>: Kubernetes, DevOps pipelines, cloud operations, possibly OCI\/OKE workshops (check website)<br\/>\n&#8211; <strong>Mode<\/strong>: Check website<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.devopsschool.com\/<\/p>\n\n\n\n<p>2) <strong>ScmGalaxy.com<\/strong><br\/>\n&#8211; <strong>Suitable audience<\/strong>: Beginners to intermediate DevOps\/SCM learners<br\/>\n&#8211; <strong>Likely learning focus<\/strong>: SCM, DevOps fundamentals, CI\/CD, tooling (check website)<br\/>\n&#8211; <strong>Mode<\/strong>: Check website<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.scmgalaxy.com\/<\/p>\n\n\n\n<p>3) <strong>CLoudOpsNow.in<\/strong><br\/>\n&#8211; <strong>Suitable audience<\/strong>: Cloud operations and platform operations practitioners<br\/>\n&#8211; <strong>Likely learning focus<\/strong>: CloudOps practices, operations, monitoring, automation (check website)<br\/>\n&#8211; <strong>Mode<\/strong>: Check website<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.cloudopsnow.in\/<\/p>\n\n\n\n<p>4) <strong>SreSchool.com<\/strong><br\/>\n&#8211; <strong>Suitable audience<\/strong>: SREs, operations engineers, platform teams<br\/>\n&#8211; <strong>Likely learning focus<\/strong>: Reliability engineering, incident response, SLOs, Kubernetes ops (check website)<br\/>\n&#8211; <strong>Mode<\/strong>: Check website<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.sreschool.com\/<\/p>\n\n\n\n<p>5) <strong>AiOpsSchool.com<\/strong><br\/>\n&#8211; <strong>Suitable audience<\/strong>: Ops and SRE teams exploring AIOps<br\/>\n&#8211; <strong>Likely learning focus<\/strong>: Observability, AIOps concepts, automation (check website)<br\/>\n&#8211; <strong>Mode<\/strong>: Check website<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.aiopsschool.com\/<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<p>These are trainer-related sites\/platforms to explore for Kubernetes\/DevOps\/cloud training. Verify the exact coverage for <strong>Oracle Cloud, OKE, and TimesTen Database for OKE<\/strong> on each site.<\/p>\n\n\n\n<p>1) <strong>RajeshKumar.xyz<\/strong><br\/>\n&#8211; <strong>Likely specialization<\/strong>: DevOps\/Kubernetes\/cloud coaching (verify)<br\/>\n&#8211; <strong>Suitable audience<\/strong>: Engineers seeking guided training and mentoring<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/rajeshkumar.xyz\/<\/p>\n\n\n\n<p>2) <strong>devopstrainer.in<\/strong><br\/>\n&#8211; <strong>Likely specialization<\/strong>: DevOps and Kubernetes training (verify)<br\/>\n&#8211; <strong>Suitable audience<\/strong>: Beginners to intermediate DevOps practitioners<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.devopstrainer.in\/<\/p>\n\n\n\n<p>3) <strong>devopsfreelancer.com<\/strong><br\/>\n&#8211; <strong>Likely specialization<\/strong>: DevOps consulting\/training resources (verify)<br\/>\n&#8211; <strong>Suitable audience<\/strong>: Teams looking for flexible help or coaching<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.devopsfreelancer.com\/<\/p>\n\n\n\n<p>4) <strong>devopssupport.in<\/strong><br\/>\n&#8211; <strong>Likely specialization<\/strong>: DevOps support and training (verify)<br\/>\n&#8211; <strong>Suitable audience<\/strong>: Ops teams needing hands-on support resources<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.devopssupport.in\/<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<p>These companies are listed as consulting resources. Verify services, references, and delivery capabilities directly.<\/p>\n\n\n\n<p>1) <strong>cotocus.com<\/strong><br\/>\n&#8211; <strong>Likely service area<\/strong>: Cloud\/DevOps consulting (verify)<br\/>\n&#8211; <strong>Where they may help<\/strong>: Platform engineering, Kubernetes operations, deployment automation<br\/>\n&#8211; <strong>Consulting use case examples<\/strong>: OKE cluster setup, CI\/CD pipelines, observability baseline<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/cotocus.com\/<\/p>\n\n\n\n<p>2) <strong>DevOpsSchool.com<\/strong><br\/>\n&#8211; <strong>Likely service area<\/strong>: DevOps consulting and training services (verify)<br\/>\n&#8211; <strong>Where they may help<\/strong>: Kubernetes adoption, CI\/CD, SRE practices<br\/>\n&#8211; <strong>Consulting use case examples<\/strong>: Kubernetes platform rollout, production readiness reviews, incident response process setup<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.devopsschool.com\/<\/p>\n\n\n\n<p>3) <strong>DEVOPSCONSULTING.IN<\/strong><br\/>\n&#8211; <strong>Likely service area<\/strong>: DevOps consulting (verify)<br\/>\n&#8211; <strong>Where they may help<\/strong>: DevOps transformation, automation, reliability practices<br\/>\n&#8211; <strong>Consulting use case examples<\/strong>: GitOps workflows, monitoring\/logging stack integration, cloud migration planning<br\/>\n&#8211; <strong>Website<\/strong>: https:\/\/www.devopsconsulting.in\/<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before this service<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI fundamentals:<\/li>\n<li>Compartments, IAM policies, networking (VCN, subnets, NSGs)<\/li>\n<li>Kubernetes fundamentals:<\/li>\n<li>Pods, Deployments, StatefulSets<\/li>\n<li>Services, Ingress<\/li>\n<li>PVC\/PV, StorageClasses<\/li>\n<li>RBAC, namespaces<\/li>\n<li>Database fundamentals:<\/li>\n<li>SQL, indexing, transactions<\/li>\n<li>Backup\/restore concepts<\/li>\n<li>HA\/DR basics<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after this service<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Advanced OKE operations:<\/li>\n<li>Private clusters, upgrades, node pool strategies<\/li>\n<li>CSI storage performance and tuning<\/li>\n<li>Observability engineering:<\/li>\n<li>Metrics pipelines, alerting, log aggregation<\/li>\n<li>Security hardening:<\/li>\n<li>NetworkPolicy, Pod Security, image scanning, secret rotation<\/li>\n<li>Data synchronization patterns:<\/li>\n<li>CDC, event sourcing, dual writes (and their pitfalls)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use it<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud engineer (OCI)<\/li>\n<li>Kubernetes platform engineer<\/li>\n<li>SRE \/ production operations engineer<\/li>\n<li>Solutions architect<\/li>\n<li>Database engineer \/ DBA (with Kubernetes skills)<\/li>\n<li>Backend engineer working on low-latency services<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path if available<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OCI certifications can validate baseline cloud knowledge (verify current tracks):<br\/>\n  https:\/\/education.oracle.com\/oracle-cloud-infrastructure-certification<\/li>\n<\/ul>\n\n\n\n<p>TimesTen-specific certification availability varies over time\u2014<strong>verify in Oracle University<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<p>1) Deploy TimesTen Database for OKE in a private cluster and expose only to an app namespace.\n2) Build a low-latency API (Go\/Java) that writes\/reads hot state from TimesTen and load test it.\n3) Implement backup\/restore runbook and run quarterly recovery drills.\n4) Add dashboards\/alerts for:\n   &#8211; pod restarts\n   &#8211; node memory pressure\n   &#8211; query latency (app-side)\n5) Implement GitOps deployment for TimesTen manifests (with secrets managed via Vault).<\/p>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OKE (Oracle Kubernetes Engine)<\/strong>: Oracle Cloud\u2019s managed Kubernetes service.<\/li>\n<li><strong>TimesTen<\/strong>: Oracle TimesTen In-Memory Database, an in-memory relational database.<\/li>\n<li><strong>StatefulSet<\/strong>: Kubernetes controller for stateful apps requiring stable identity and storage.<\/li>\n<li><strong>PVC (PersistentVolumeClaim)<\/strong>: Kubernetes request for storage.<\/li>\n<li><strong>PV (PersistentVolume)<\/strong>: Provisioned storage resource used by pods.<\/li>\n<li><strong>CSI (Container Storage Interface)<\/strong>: Standard for storage provisioning in Kubernetes; OCI provides CSI drivers for Block Volume.<\/li>\n<li><strong>VCN (Virtual Cloud Network)<\/strong>: OCI\u2019s virtual network construct.<\/li>\n<li><strong>NSG (Network Security Group)<\/strong>: OCI virtual firewall rules applied to VNICs.<\/li>\n<li><strong>ClusterIP<\/strong>: Kubernetes Service type accessible only within the cluster.<\/li>\n<li><strong>LoadBalancer Service<\/strong>: Kubernetes Service type that provisions a cloud load balancer (OCI LB).<\/li>\n<li><strong>RPO\/RTO<\/strong>: Recovery Point Objective \/ Recovery Time Objective for DR planning.<\/li>\n<li><strong>BYOL<\/strong>: Bring Your Own License\u2014use your existing Oracle license entitlements.<\/li>\n<li><strong>License-included<\/strong>: Software cost is metered and charged as part of cloud usage (where offered).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p><strong>TimesTen Database for OKE<\/strong> is a <strong>Data Management<\/strong> solution on <strong>Oracle Cloud<\/strong> that deploys <strong>Oracle TimesTen In-Memory Database<\/strong> onto <strong>Oracle Kubernetes Engine (OKE)<\/strong>. It\u2019s designed for <strong>ultra-low-latency<\/strong> relational workloads where the hot dataset fits in memory and where teams want a Kubernetes-based operational model.<\/p>\n\n\n\n<p>Key takeaways:\n&#8211; It\u2019s typically <strong>not a fully managed database<\/strong>; you operate it like a serious stateful system on Kubernetes.\n&#8211; Cost is mainly driven by <strong>worker node memory\/compute<\/strong>, plus <strong>block volumes<\/strong>, optional <strong>load balancers<\/strong>, and possibly <strong>TimesTen licensing<\/strong> depending on BYOL vs license-included.\n&#8211; Security and reliability depend on disciplined design: private networking, least-privilege IAM\/RBAC, secrets management, and tested HA\/backup\/restore procedures.<\/p>\n\n\n\n<p>Next step: open the <strong>Oracle Cloud Marketplace<\/strong> listing for <strong>TimesTen Database for OKE<\/strong>, confirm its current deployment method and prerequisites, and run the lab workflow above in a non-production compartment.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data Management<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68,62],"tags":[],"class_list":["post-899","post","type-post","status-publish","format-standard","hentry","category-data-management","category-oracle-cloud"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=899"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/899\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}