Wednesday Apr 20, 2016

Playing around with the Oracle Storage Cloud Service

As part of my work to bring Oracle Solaris into the Oracle Cloud Compute Service, I've had the opportunity to spend a little time playing around with the Oracle Storage Cloud Service. Put simply, this service provides secure, scalable object storage similar to other storage services out there such as Amazon S3 or Dropbox.

The documentation is pretty useful. Like most storage services, there's support for a variety of different interfaces - from a REST API, to a Java client library, and a number of 3rd party tools like OpenStack Swift.

In the rest of the blog, I'll demonstrate some of the basic operations you can do - for convience I'll log into a VM running Oracle Solaris in the Oracle Cloud:

$ ssh opc@X.X.X.X
Last login: Tue Mar 22 01:27:35 2016 from 121-73-133-192.
Oracle Corporation      SunOS 5.11      11.3    December 2015
opc@fa922d:~$ uname -a
SunOS fa922d 5.11 11.3 i86pc i386 i86pc
opc@fa922d:~$ virtinfo
NAME            CLASS     
xen             current   
non-global-zone supported 
opc@fa922d:~$ pkg info entire
          Name: entire
       Summary: entire incorporation including Support Repository Update (Oracle Solaris
   Description: This package constrains system package versions to the same
                build.  WARNING: Proper system update and correct package
                selection depend on the presence of this incorporation.
                Removing this package will result in an unsupported system.  For
                more information see:
      Category: Meta Packages/Incorporations
         State: Installed
     Publisher: solaris
       Version: 0.5.11 (Oracle Solaris
 Build Release: 5.11
Packaging Date: January 14, 2016 09:32:35 PM 
          Size: 5.46 kB
          FMRI: pkg://solaris/entire@0.5.11,5.11-

We'll start by using the REST API. To find the service endpoint, we can log into the web portal and look at the REST Endpoint field as shown in the image below:

This gets us something like (which will include the identity domain that you're assoicated with). Once we have this, we can make a calls to the API based on a variation of this URL. We'll need to authenticate with the service first and get back a token that we'll use in subsequent REST calls. For that we'll need to set two headers: X-Storage-User and X-Storage-Pass, that is a combination of our identity domain, username, and password. In my case my identity domain is compute-pm and username is Let's start by using curl with the verbose flags and defaulting to HTTP 1.0 (scroll the entries below to see the full content):

opc@fa922d:~$ curl -v -O -H "X-Storage-User:" -H "X-Storage-Pass: XXXXXXXX"
*   Trying
* Failed to set TCP_KEEPALIVE on fd 4
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to ( port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/openssl/certs
* TLSv1.2, TLS handshake, Client hello (1):
} [174 bytes data]
* TLSv1.2, TLS handshake, Server hello (2):
{ [85 bytes data]
* TLSv1.2, TLS handshake, CERT (11):
{ [2861 bytes data]
* TLSv1.2, TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2, TLS handshake, Client key exchange (16):
} [262 bytes data]
* TLSv1.2, TLS change cipher, Client hello (1):
} [1 bytes data]
* TLSv1.2, TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2, TLS change cipher, Client hello (1):
{ [1 bytes data]
* TLSv1.2, TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / AES128-SHA
* Server certificate:
*        subject: C=US; ST=California; L=Redwood Shores; O=Oracle Corporation; CN=*
*        start date: 2015-08-07 00:00:00 GMT
*        expire date: 2016-10-05 23:59:59 GMT
*        subjectAltName: matched
*        issuer: C=US; O=VeriSign, Inc.; OU=VeriSign Trust Network; OU=Terms of use at (c)10; CN=VeriSign Class 3 Secure Server CA - G3
*        SSL certificate verify ok.
> GET /auth/v1.0 HTTP/1.1
> User-Agent: curl/7.40.0
> Host:
> Accept: */*
> X-Storage-User:
> X-Storage-Pass: XXXXXXXX
< HTTP/1.1 200 OK
< Date: Tue, 22 Mar 2016 02:31:44 GMT
< X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331
< X-Storage-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331
< X-Storage-Url:
< Content-Length: 0
< Server: Oracle-Storage-Cloud-Service
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host left intact

We can see that we've successfully completed the authentication and the service has passed by a token indicated by the X-Auth-Token response header.

Within the storage service, we have a heirarchy of containers and objects. Containers is a user created resource and can hold any number of objects. An object is created typically when a file is uploaded to the service. Containers cannot be nested, but meta-data can be attached to both containers and objects to make searching and managing easier. To list the containers associated with my identity domain we call another API as follows:

opc@fa922d:~$ curl -0 -X GET -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331"

We can list objects in the container by specifying the container we would like to query:

opc@fa922d:~$ curl -0 -X GET -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331"

Let's try and download this Oracle Solaris image as follows:

opc@fa922d:~$ curl -O -X GET -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331" > s11_3_4_5_0-System.img.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1395M  100 1395M    0     0  88146      0  4:36:43  4:36:43 --:--:--  203k

Let's create a new container:

opc@fa922d:~$ curl -0 -X PUT -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331"
opc@fa922d:~$ curl -0 -X GET -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331"

Let's push a new file into this container and verify it's there:

opc@fa922d:~$ curl -O -X PUT -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1626    0     0  100  1626      0   3504 --:--:-- --:--:-- --:--:--  8424
opc@fa922d:~$ curl -0 -X GET -H "X-Auth-Token: AUTH_tk04c63cb4928e2aacb26f4506d6c9a331"

So rather than a raw set of HTTP requests, let's use something a little nicer. The Oracle Storage Cloud Service is compatible with the OpenStack Swift service, and so we can use the Python based swift client. We'll first need to install it into our VM:

opc@fa922d:~$ su -
Oracle Corporation      SunOS 5.11      11.3    December 2015
root@fa922d:~# pkg install swiftclient
           Packages to install: 84
       Create boot environment: No
Create backup boot environment: No

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                              84/84     9622/9622    39.2/39.2  943k/s

PHASE                                          ITEMS
Installing new actions                   11229/11229
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Updating package cache                           1/1
root@fa922d:~# exit
opc@fa922d:~# which swift

To use the client, we'll need to set some environmental variables. Rather than setting the OS_* variables, we'll have to use the legacy ST_* ones for the 1.0 versioned API as follows:

opc@fa922d:~$ export ST_AUTH=
opc@fa922d:~$ export
opc@fa922d:~$ export ST_KEY=XXXXXXXX

Now let's list the containers:

opc@fa922d:~$ swift list

And list the objects of new-container:

opc@fa922d:~$ swift list new-container

We can get information about our file:

opc@fa922d:~$ swift stat new-container new-file
                  Account: Storage-computepm
                Container: new-container
                   Object: new-file
             Content Type: application/octet-stream;charset=UTF-8
           Content Length: 1626
            Last Modified: Tue, 22 Mar 2016 03:07:45 GMT
                     ETag: c3eaad86f6572bf9e52a9b0c16aa905c
            Accept-Ranges: bytes
                   Server: Oracle-Storage-Cloud-Service
               Connection: keep-alive
              X-Timestamp: 1458616064.51712
               X-Trans-Id: tx1f7a06307a7744909fe6a-0056f0b9b1ga
X-Last-Modified-Timestamp: 1458616064.51712

We can download a file as follows:

opc@fa922d:~$ swift download new-container new-file
new-file [auth 0.118s, headers 0.181s, total 0.181s, 0.026 MB/s]

Or upload a file into our container:

opc@fa922d:~$ swift upload new-container another-new-file
opc@fa922d:~$ swift list new-container

And finally, delete our container:

opc@fa922d:~$ swift delete new-container
opc@fa922d:~$ swift list

Attaching and Detaching Storage Volumes in Oracle Cloud Compute Service

If you haven't spent much time on Oracle Solaris in the past few years you may be completely unaware that it has a completely different file system and volume manager. Gone are the days of struggling with disk configuration and setting up file systems. We have ZFS now and it's *amazing*. ZFS is a complete file system and volume manager with integrated data services such as encryption, compression and software RAID. It designed for the next generation data requirements such as big data in the cloud.

If you've signed up to the Oracle Cloud Compute Service you'll now be able to launch Oracle Solaris based VMs in this environment - an enterprise platform on demand. At some stage you'll probably want to create new storage volumes and attach them into your running instances. This is incredibly simple using ZFS, but to help you with the basics I've recorded two screencasts that might be of use.

Attaching Storage Volumes to Oracle Solaris VMs in Oracle Cloud Compute Service

Attaching and detaching storage volumes in Oracle Solaris VMs in Oracle Cloud Compute Service

So take an Oracle Solaris VM for a spin and let us know how you get on!

Monday May 26, 2014

Oracle Solaris at the OpenStack Summit in Atlanta

I had the fortune of attending my 2nd OpenStack summit in Atlanta a few weeks ago and it turned out to be a really excellent event. Oracle had many folks there this time around across a variety of different engineering teams - Oracle Solaris, Oracle ZFSSA, Oracle Linux, Oracle VM and more. Really great to see continuing momentum behind the project and we're very happy to be involved.

Here's a list of the highlights that I had during the summit:

  • The operators track was a really excellent addition, with a chance for users/administrators to voice their opinions based on experiences. Really good to hear how OpenStack is making businesses more agile, but also equally good to hear about some of the continuing frustrations they have (fortunately many of them are new and being addressed). Seeing this discussion morph into a "Win the enterprise" working group is also very pleasing.
  • Enjoyed Troy Toman's keynote (Rackspace) about designing a planet scale cloud OS and the interoperability challenges ahead of us. I've been following some of the discussion around DefCore for a bit and while I have some concerns, I think it's mostly heading in the right direction. Certainly seems like there's a balance to strike to ensure that this effects the OpenStack vendors in such a way as to avoid negatively impacting our end users.
  • Also enjoyed Toby Ford's keynote (AT&T) about his desire for a NVF (Network Function Virtualization) architecture. What really resonated was also his desire for OpenStack to start addressing the typical enterprise workload, being less like cattle and more like pets.
  • The design summit was, as per usual, pretty intense for - definitely would get more value from these if I knew the code base a little better. Nevertheless, attended some really great sessions and got a better feeling of the roadmap for Juno.
  • Markus Flierl gave a great presentation (see below) at the demo theatre for what we're doing with OpenStack on Oracle Solaris (and more widely at Oracle across different products). Based on the discussions that we had at the Oracle booth, there's a huge amount of interest there and we talked to some great customers during the week about their thoughts and directions in this respect.
  • Undoubtedly Atlanta had some really good food. Highlights were the smoked ribs and brisket and the SweetWater brewing company. That said, I also loved the fried chicken, fried green tomatoes and collared greens, and wonderful hosting of "big momma" at Pitty Pat's Porch. Couldn't quite bring myself to eat biscuits and gravy in the morning though.
  • Visiting the World of Coca-Cola just before flying out. A total brain washing exercise, but very enjoyable. And very much liked Beverly (contrary to many other opinions on the internet) - but then again, I'd happily drink tonic water every day of the year...

Looking forward to Paris in November!

Wednesday Apr 30, 2014

Oracle Solaris 11.2 Announced

This morning in New York City, we announced Oracle Solaris 11.2 with Mark Hurd, John Fowler and Markus Flierl all taking the stage. I think many will probably completely fail to appreciate the amount of work that's gone into this release and some of the ground breaking technologies that have been included. They've been trying to bury us for years with the 'Solaris is dead' moniker. But here we still are, continuously engineering and steadily delivering - much like our SPARC processor and system roadmap.

If you had to sum up this release, I think the tagline for the release is pretty true to form. Engineered for cloud. It's the one driving force that's always been there since the start of Solaris development - our engineers always deliver a truly engineered system that's been architected from really solid foundations. Oracle Solaris 11 brings a number of new features that I think will be really game changing:

  • Unified Archives - Unified Archives are a replacement for Solaris Flash Archives that were available in Oracle Solaris 10. It's essentially a new archive format that's built on the OVF compliant format, but taking advantage of ZFS streams. Unified Archives provide you with the ability to capture environments of a running system either for cloning within a cloud environment or for backup and disaster recovery purposes. Unlike your standard golden image that you've been used to, Unified Archives provide an ability to capture both bare-metal and virtualized environments (or a combination of both) and deploy to either bare metal or virtual with powerful image transforms. This is especially useful in a typical development, test and product lifecycle where you want to be able to capture and quickly deploy a golden image as you go through that process. But how many developers have access to a SPARC M6 system? With Unified Archives you don't need to, and developers can capture a SPARC T5 system but deploy to a larger system when it really matters.
  • Kernel Zones - Kernel Zones are a feature of Oracle Solaris Zones to allow you to have a completely independent and isolated virtual environment with a standalone kernel. Our customers have been asking for this for a while, and with the rise of highly tenanted cloud environments, the ability to run different kernel versions side by side is crucially important. This allows administrators to easily migrate workloads for system maintenance or re-balance them completely unconstrained by the version of the global zone.
  • Compliance - We've been hearing this from our customer base for a while. Compliance requirements aren't going away anytime soon, and in fact they're getting harder and harder with multiple different software versions to manage in a virtualized, cloud computing world. With Oracle Solaris 11.1 we integrated support for the industry standard SCAP. Now we're taking this a step further by providing a set of tools to automatically monitor and report compliance with a number of built-in policies to help our customers through that pain.
  • Software Defined Networking - Oracle Solaris 11 has included a number of network virtualization capabilities for quite some time. The addition of virtual network interfaces (VNICs) has led to an unprecedented level of flexibility in network topology construction, and resource management them seamlessly within software. With Oracle Solaris 11.2 we're continuing to expand, and deliver, on Software Defined Networking (SDN) with the introduction of Elastic Virtual Switch. Elastic Virtual Switch provides administrators with the ability to seamlessly manage a series of virtual switches across multiple nodes in cloud from a single source. A new socket level API provides developers the ability to write purpose built application level flows to resource manage network traffic from the VM directly through to the network hardware and backend storage.
  • OpenStack - And finally, but not least, we've adopted the industry standard cloud computing infrastructure software, OpenStack. Oracle Solaris 11.2 is a full OpenStack distribution, and we've integrated the foundations of Oracle Solaris into the various OpenStack services - Nova compute virtualization, Neutron networking, Cinder and Swift block and object level storage, Glance image management, Keystone identity management, and of course that unified management interface Horizon that provides our customers with the ability to manage a heterogenous set of data center resources. We've been hearing from more and more customers interested in deploying OpenStack in their enterprise and we're very excited at being interoperable in this space and providing infrastructure such as a OpenStack Unified Archive to really help our customers get started in shifting their business to cloud computing.

But this list is just the start. Take a read of the Oracle Solaris 11.2 What's New Guide and see the vast array of other new integrations including extended Oracle Solaris support for Puppet, read-only root environments Immutable Global Zones, 3rd party configuration management with SMF stencils, seamless IPS repository mirroring, and secure end-to-end deployment using Automated Installer.

If you're one of the people who has dismissed Oracle Solaris, do take a look at Oracle Solaris 11.2. We've come a long, long way. These are enterprise ready technologies that you won't have seen before, and we really can do a lot better to manage your business IT needs.

Wednesday Dec 11, 2013

Oracle joins OpenStack Foundation

Oracle is now joining the OpenStack Foundation and planning on using the OpenStack technology in a wide variety of its products, including Oracle Solaris. This is pretty exciting generally and I think that OpenStack shows a huge amount of promise and ties together functionality that customers have been looking to have for quite some time. While we've had the concept of a unified compute, storage and networking layer for a while now when you provision Oracle Solaris Zones, being able to do this at scale across multiple nodes with both a management interface, and set of CLI and RESTful APIs is very appealing - and having Oracle Solaris as a rock solid OS foundation we're looking forward to adding a lot of value there. We're looking forward to contributing upstream (on Nova, Cinder and Neutron drivers initially, and then in other areas where we can help out).

I was fortunate enough to attend the OpenStack Summit in Hong Kong. It was an eye opening summit in many ways, mostly from the sheer volume of different technical projects and approach to solving problems in the data center. Not only that, it was also great to be able to catch up with friends of communities past.

Update: Already some folks are asking 'where's the code?' Oracle, as many can imagine, has policies and procedures around open source community contribution - especially when they involve contributor agreements. Needless to say, it's taken a bit of time to get this approved internally. Hopefully we'll see some Oracle folks more involved in the community at some stage in the short term.


Wednesday Oct 09, 2013

Session content from Oracle OpenWorld 2013

Oracle OpenWorld 2013 has wrapped up for another year. This year was very successful for Oracle Solaris, with a number of really important announcements. In case you haven't already, take a look at Markus Flierl's blog, VP of Oracle Solaris engineering, who nicely summarizes the conference. We also have a great set of videos to have a watch of that summarize some of the key announcements and a few interviews with the team.

From a personal perspective, I was pretty happy with the session I did with Bart, and you can download the slides from the content catalog (along with the other sessions up until March 2014) or below.

I also ran a couple of successful Hands on Labs - "Oracle Solaris 11 for Red Hat Enterprise Linux Users" and "Oracle Solaris 11 Packaging for Administrators". We'll be making those labs available on our Oracle Solaris 11 OTN page in the next couple of weeks - stayed tuned!

Friday Aug 23, 2013

Top Oracle Solaris Picks at Oracle Open World 2013

With a few weeks to go until Oracle Open World, I thought it would be good to provide my top Oracle Solaris picks at the event once again. These are the sessions that you wouldn't want to miss! This year all the Oracle Solaris sessions are over in the Westin hotel, a few blocks away from Moscone (it's our turn!).

General Session: Oracle Solaris Strategy, Engineering Insights, and Roadmap - Markus Flierl, Michael Montemorano (Verizon)This general session, hosted by Markus Flierl, head of Oracle Solaris Core Engineering, goes through the strategy and roadmap for Oracle Solaris. It covers how Oracle Solaris 11 is being deployed in cloud computing and the unique optimizations in Oracle Solaris 11 for the Oracle stack. The session also offers a sneak peak at the latest technology under development in Oracle Solaris and what customers can expect to see in the coming updates. Flierl is joined by a key customer executive who shares the benefits and value experienced with Oracle Solaris and the business challenges solved.
Oracle Solaris Panel: Insights and Directions from Oracle Solaris Engineering - Darren Moffat, Liane Praza, Nicolas Droux, Bart SmaaldersThis session, featuring a panel of core engineers responsible for a wide range of key Oracle Solaris technologies, covers the current state of Oracle Solaris 11 and gives insights into the future direction of Oracle Solaris technologies and products. Come learn how Oracle Solaris can benefit your environment today and what will continue to make Oracle Solaris the best platform for deploying enterprise applications going forward, with even more features for performance, serviceability, cloud computing, deep Oracle stack optimizations, and ease of administration. The session also provides insights from customers deploying Oracle Solaris 11 in a range of data center environments.
Why Oracle Software Runs Best on Oracle’s SPARC Hardware - Brad CarlileLearn proven best practices for running high-performance, secure, mission-critical databases and applications on Oracle’s new SPARC T5 and SPARC M5 servers running Oracle Solaris. This session displays techniques for increasing system availability, server utilization, virtualization efficiency, and security for both online and batch processing for a wide variety of applications.
Ten Key Solaris Zones Differentiators Enhancing Cloud Platforms - Duncan Hardie, Karoly Vegh, Adrian Saul (AAPT)Oracle Solaris 11 is the first cloud OS. Its Oracle Solaris Zones feature—no-cost, zero-overhead virtualization technology built in to Oracle Solaris 11—has been serving customers for nearly a decade now. Customers value its manageability, lack of performance overhead, and network separation. Oracle Solaris Zones comes with a rich set of additional features that are key differentiators for cloud platforms too. In this session, you’ll learn about availability options, advanced manageability features, performance-guaranteeing possibilities, and delegated configurations of Oracle Solaris Zones.
Why Oracle Solaris Is the Best UNIX for Oracle Database and Oracle WebLogic - Isaac RozenfeldCome learn why IBM and HP customers are moving to Oracle Solaris on SPARC for running Oracle Database and Oracle WebLogic. This session discusses the unique optimizations in Oracle Solaris 11 for the Oracle stack that have led to 18 world records on real-world benchmarks for Oracle’s SPARC T5 processor and Oracle Solaris. Learn about the most-efficient and most cost-effective way to virtualize Oracle Database or Oracle WebLogic. See how easy it is to update and manage multitenant environments. The session also discusses how Oracle Solaris simplifies private cloud deployments of your software.
Oracle Solaris 11 Best Practices for Software Lifecycle Management - Bart Smaalders, Glynn FosterLearn how improvements to software lifecycle management in Oracle Solaris 11 provide administrators with a significant reduction in complexity and system downtime while they are patching systems. This session provides an overview of the new packaging technology and covers best practices for updating systems by using Oracle Solaris’ new network-based package management system, Image Packaging System. It discusses how to create and manage local software repository mirrors, deploy custom applications through the packaging system, and troubleshoot system updates.
Compliance and Security: Least Complexity, Lowest Risk with Oracle Solaris - Alex Barclay, Kavitha MariappanLearn how Oracle Solaris 11 security and compliance features work together to protect data, centrally manage and restrict users, and apply fine-grained security policies to applications, users, and virtual machines. This session provides an overview of key Oracle Solaris security technologies, with a focus on how to combine them to reduce and report on risks.

We also have a great line up of Hands on Lab sessions over at the Mariott hotel, another short walk from the Moscone. This year we've opted for slightly longer 2 hour sessions to give participants a better chance at completing the labs - check them out:

Oracle Solaris for RedHat Linux usersIn this Hands-on-Lab we will introduce the basics of administration of Oracle Solaris for administrators experienced with RedHat Linux. We will walk through system configuration including users and roles, automatic and manual networking, managing storage with the ZFS file system, creating virtualized application isolation with Oracle Solaris Zones and management of services with the Service Management Framework (SMF). We will also cover the software lifecycle and how administrators can install and update software using the Image Packaging System (IPS) with failsafe update using ZFS boot environments. We will draw comparisons to how things are done in Red Hat Enterprise Linux and identify the unique differentiators of Oracle Solaris 11.
Oracle Solaris in the cloudIn this Hands-on-Lab we'll deploy a cloud infrastructure, leveraging the intrinsic features of Oracle Solaris. We'll use the Oracle Solaris ZFS file system to set up storage for our application and introduce participants to Oracle Solaris Zones as our primary virtualization environment for our cloud layers. We will also use network virtualization to create virtualized network interfaces and switches to communicate between our virtualized environments. We will show how to rapidly deploy the environment and how our application can easily be secured and protected using the built-in features of Oracle Solaris Zones.
Oracle Solaris Packaging for AdministratorsIn this Hands-on-Lab we'll learn to take advantage of the new network based package management to integrate your application and show the unique benefits to the application lifecycle management. We'll first learn how to use the Image Packaging System (IPS) to search, install and update packages and create your own local package repository. Next we'll create a package for your application and publish it to your repository. We will also show how to better integrate your application into the Oracle Solaris operating system, helping to improve application resiliency with service management and use access control technologies to restrict administrative user behavior.

Of course there are a lot of other Oracle Solaris related sessions. Check them out on the content builder and start planning your trip to Oracle Open World today!


To learn more about Oracle Solaris 11, check out an extensive list of resources including technical articles, cheat sheets and screencasts on Oracle Technology Network


« June 2016